¿Matlab más rapido que Octave?

Imagen de cid690
0 puntos

Hola a todos.

Hace tiempo instale ubuntu 8.04 en mi pc y me va de las mil maravillas . Soy un entusiasta del software libre entre otras cosas porque estudio ciencias fisicas y se que en la ciencia hay que optimizar recursos al maximo ya que los gobiernos no sueltan tan fácil el dinero para proyectos, y los sitemas linux son una forma de optimizar recursos economicos, además de su eficiencia.

Pero hace dias me lleve una desagradable sorpresa. En mi pc tengo los dos sistemas, ubuntu y windows xp. En el primero tengo instlado octave 3.0 y en el segundo matlab 6. Hice la prueba corriente para calcular el numero de operaciones por segundo (flops) que realiza matlab u octave (que encontre en el manual "aprenda matlab como si estuviera en primero" que se halla facilmente en google):

>> n=1000;a=rand(n);b=rand(n);c=zeros(n);
>> tinicial=clock; c = a*b; tfinal = clock; mflops = (2*n^3)/1000000;
>> mflops/etime(tfinal,tinicial)

Y lo lleve a cabo tanto en matlab (en windows) como en octave (en ubuntu). Y me resulto que el primero alcanza una velocidad de 334 megaflops mientras que el segundo solo 26 megaflops. ¿Es probable que este haciendo algo mal? ¿O de plano matlab es mas rapido que octave? Ojalá que alguien pudiera aclararme este punto. Tal vez se deba a la configuracion en que tengo ubuntu o algo asi.

Gracias de antemano y saludos.

Imagen de patagonian18
+1
0
-1

En algunas cosas Matlab es más rápido que Octave. También hay que tomar en cuenta que Octave tiene algunas funciones sólo por compatibilidad con Matlab, pero que posee una batería de funciones propias bastante potentes.

Por otro lado, un programa numérico no se mide sólo por megaflops más o megaflops menos. También cuentan las soluciones encontradas, manejo de errores, convergencia a una solución, etc.A mí me pasaba que si hacía un programa en que después de varias operaciones tenía que calcular valores singulares de una matriz, Mathcad me daba cuatro soluciones y Matlab 5. Por teorema, tenían que ser cinco. A mi parecer ese tipo de cosas es más relevante que los megaflops.

-------------------------------------------------------

mi blog: www.patagonianuser.blogspot.com

Ad augusta per angusta

+1
0
-1

 

mi blog: www.patagonianuser.blogspot.com

Ad augusta per angusta

Imagen de cid690
+1
0
-1

Hola. Muchas gracias por responderme.

Pues veo que tienes razón. No solo importa la velocidad, también importa la calidad. Admito que apenas estoy aprendiendo a usar el lenguaje de matlab y octave, pero por lo que me dices veo que hay diferencias, es decir, que no debo usar octave unicamente como clon de matlab sino que hay que aprender a usar sus funciones propias.

Por otro lado, en tu comentario comparas a mathcad con matlab haciedo ver que este ultimo es mas potente. Yo recuerdo que un profesor de mi facultad que se dedica a la fisica nuclear (es investigador con doctorado) , dice que para los calculos muy complicados usa subrutinas en maple, que es software propietario (y cuya licencia no tiene un precio precisamente barato: 1,245.00 USD, version academica). Otra persona (que es investigador de inteligencia artificial) me dijo que para publicar una investigacion que haya empleado cierto algoritmo en un programa de calculo numerico o algebraico hay que contar con una licencia de dicho programa, o haber usado software libre, no estoy seguro de si esto ultimo es cierto. Un tercer profesor, este del area de electronica, me dijo que él de hecho utilizaba solo matlab sin licencia original tanto en windows como en linux y que no habia oido hablar de octave, que no le preocupaba porque el de hecho no publica.

Veo que este asunto de los programas de calculo numerico y algebraico en software libre y propietario es mas profundo e interesante de lo que habia pensando en un principio.

Nuevamente, gracias por contestarme.
Saludos.

+1
0
-1