16 jul 2010

Otra broma del Mathematica

Después de más de tres meses de estar depurando código empecé a sospechar de que mi problema de Excepción de coma flotante (Floating point exception) tenía más que ver con el Mathematica 7.0.1 que con mi propio código.
Decidí hacer una prueba desde el shell:

math
Mathematica 7.0 for Linux x86 (64-bit) kernel (shell):

In[1]:= f[x_,y_]:=Sin[x^2]-Cos[y]^2

In[2]:= FindMinimum[f[a,b],{{a,1},{b,3}}]

-12
Out[2]= {-1., {a -> -2.0165 10 , b -> 3.14159}}

In[3]:= FindMinimum[{f[a,b],0.0001<a<1,3<b<4},{{a,1},{b,3}}]

El resultado en las máquinas Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz que hay en la universidad fue:

Excepción de coma flotante (Floating point exception)

Después de mucho luchar contra mi código, decidí intentarlo con una computadora más vieja, una Intel(R) Pentium(R) D CPU 3.40GHz obteniendo un resultado mucho más decente:

Out[3]= {-0.999999, {a -> 0.00112815, b -> 3.14159}}

Ahora sabía que el problema no era mío sino del Mathematica. Pero lo que me llevó a escribir esta nota fue la indignación de saber que los de la Wolfram ya sabían de este problema y no lo anunciaban para los usuarios de este tipo de máquinas. Gracias a ellos he perdido valiosos meses de mi último año de doctorado (léase tesis).

El problema lo plantean aquí:
http://support.wolfram.com/technotes/IntelCorei7.html

Lo presentan como una "mejora", y ni siquiera te dan el enlace sino que debes pedirla al servicio técnico. Si no quieres esperar y decides saltar ese paso, el apaño te lo puedes bajar de aquí:
http://download.wolfram.com/?key=QNQKNV

Eso si, bien escondidito para que nadie vea el apaño, que por cierto pesa casi 800Mb. Y a juzgar por lo que tardó la instalación, se mete con todos los ficheros del Mathematica. Mi madre me lo dijo, no confíes en las personas que no sean transparentes, y eso llevado al campo de la informática solo quiere decir una cosa: No confíes en nada que no sea SOFTWARE LIBRE!

No hay comentarios.:

Mi camino recorrido