Programacion matematica, opiniones-consejos
Necesito un par de opiniones/consejos respecto a programación matemática cualitativa y cuantitatva en ingeniería.
Estaba estudiando una par de software para el mismo, como maxima (wxmaxima), octave (qtoctave), scilab y freemat (se dice que es el más parecido a matlab, pero no lo usé aún).
Lo que observo es que las sentencias de los comandos son diferentes en un software respecto a otro, y eso a veces genera confusión. Quiero estudiar/aprender uno de ellos en forma más completa, y no que de todas las aplicaciones saber un poco ...
Cual de estos programas me conviene estudiarlo de manera más profunda
- octave
- scilab
- maxima
- freemat
- otro
Me gustaría también conocer opiniones respecto de hasta donde puedo o no llegar con una aplicación, y que ventajas y/o desventajas hay respecto de uno con otro.
Saludos
- Inicie sesión o regístrese para enviar comentarios
- 929 lecturas


Si quieres compatibilidad con matlab, octave
Si quieres ademas algo similar al simulink de matlab, scilab (aunque este no es libre)
Máxima es potente en calculo simbolico, vamos, como Mathematica
Freemat no lo conozco
Si quieres otra opción sage: http://www.sagemath.org/
No uso ninguno así que no puedo dar más detalles
Yo uso la combinación python + scipy + matplotlib, que es programación pura, lo cual le da un potencial casi infinito
Máxima es potente en calculo simbolico, vamos, como Mathematica
El primero que aprendí a usar es maxima, y es correcta tu observación de que es muy potente con cálculo simbólico ...
Si quieres compatibilidad con matlab, octave
Pero luego despues de maxima empezé a usar un poco octave y observé mayor potencia, habia cosas que podía hacer en octave que en síntesis sí eran posibles hacerlas con maxima, pero era un poco mas dificil ...
Si quieres además algo similar al simulink de matlab, scilab (aunque este no es libre)
Hace un par de semanas que empezé a usar scilab y me agradó mucho ... aunque no sabia que no era libre ...
Freemat no lo conozco
Yo tampoco, aunque en unos manuales que baje, estaba esa opcion y lo veo muy parecido a matlab ... ademas esta en los repositorios ...
Yo uso la combinación python + scipy + matplotlib, que es programación pura, lo cual le da un potencial casi infinito
Estoy observando opcion ... http://www.scipy.org/ y me parece bastante buena ...
Si quieres otra opción sage: http://www.sagemath.org/
Voy a observar esta opción ...
No uso ninguno así que no puedo dar más detalles
Muchísimas gracias por tu información ...
Saludos
Solo una cosa Rodrigo...
. Así como esta he visto que muchas otras funciones no tiene. Por tanto no lo veo como una alternativa a matlab (OJO, como potente), simplemente un entorno para hacer ciertos gráficos simples y cosas así (simples).
Lo importante es saber que utilidad le darás, por ejemplo, si es para realizar gráficos con datos numéricos no tendrás problemas con octave (y/o scilab), pero si quieres herramientas simbolicas, veo un poco mejor a scilab, aunque no es potente como matlab. FreeMat, esta bueno en la interfas, es muy liviano, pero muy muy limitado, te aconsejo que lo instales de todas formas (además del otro scilab/octave), porque su nomenclatura es simples.
Yo personalmente, he hecho unas transformaciones de los scripts de control, de matlab a octave, y la diferencia principal es que en matlab se puede usar por ejemplo: s=tf('s') con lo cual después se puede definir cualquier función de transferencia haciendo: exprecion en s sobre expresión en s... pero en octave tf no soporta esta definición, solo la clásica tf(numerador,denominador). Cuando escuche lo de mfreemat, lo primero que hice fue ver si podía correr los scripts, y baya que no, ya que no tiene la función "tf"
Saludos
Yo he usado scipy y da muy buenos resultados, desde mi punto de vista la mejor de las opciones (más que nada por los problemas de portabilidad que te podrían surgir con las otras opciones, si quieres compartir algo de lo que has hecho); también he usado octave y la verdad es que es bastante compatible con matlab, la mayoría de las cosas que he hecho en matlab me han funcionado sin casi ninguna modificación en octave.
Solo una cosa Rodrigo...
Lo importante es saber que utilidad le darás, por ejemplo, si es para realizar gráficos con datos numéricos no tendrás problemas con octave (y/o scilab), pero si quieres herramientas simbolicas, veo un poco mejor a scilab, aunque no es potente como matlab. FreeMat, esta bueno en la interfas, es muy liviano, pero muy muy limitado, te aconsejo que lo instales de todas formas (además del otro scilab/octave), porque su nomenclatura es simples.
Yo personalmente, he hecho unas transformaciones de los scripts de control, de matlab a octave, y la diferencia principal es que en matlab se puede usar por ejemplo: s=tf('s') con lo cual después se puede definir cualquier función de transferencia haciendo: expresion en s sobre expresión en s... pero en octave tf no soporta esta definición, solo la clásica tf(numerador,denominador). Cuando escuche lo de mfreemat, lo primero que hice fue ver si podía correr los scripts, y baya que no, ya que no tiene la función "tf"
. Así como esta he visto que muchas otras funciones no tiene. Por tanto no lo veo como una alternativa a matlab (OJO, como potente), simplemente un entorno para hacer ciertos gráficos simples y cosas así (simples).
Saludos
Comento que casi nunca eh usado matlab ... tan solo en la universidad que te enseñan ese software ... es muy interesante lo que comentas sobre la expresion tf y lo que esa pasar de matlab a ocatve.
Con respecto a los gráficos simples uso kmplot, kig (geometría) y los más complejos lo hago con "wxmaxima + gnuplot" ...
Con respecto a freemat, muchas gracias por esa informacion, no sabia de sus limitaciones, y que en sintesis para hacer cosas sencillas uso maxima
Gracias por tu comentario Damiam
Saludos ...
Yo he usado scipy y da muy buenos resultados, desde mi punto de vista la mejor de las opciones (más que nada por los problemas de portabilidad que te podrían surgir con las otras opciones, si quieres compartir algo de lo que has hecho); también he usado octave y la verdad es que es bastante compatible con matlab, la mayoría de las cosas que he hecho en matlab me han funcionado sin casi ninguna modificación en octave.
Estaba observando scipy pero el inconveniente que tengo es mi limitado conocimiento respecto a phyton, pero parece ser una muy buena alternativa tal cual también lo dijo jjgomera.
Respecto al análisis probalilístico, hasta el momento no lo había tenido en cuenta y tampoco realizé un análisis de ese tipo.
Pero sí eh realisado algunos analisis estadisticos como "aproximacion de minimos cuadrados" (regresión y correlación estadistica", y con respecto a eso me parecio más fácil octave, en segundo lugar scilab (debo tener en cuenta lo poco que sé sobre scilab) y un poco mas engorroso con maxima.
Creo que segun lo que estoy leyendo hasta ahora, segun mi punto de vista esta entre estudiar octave y scilab, ya dejando de lado un poco a freemat.
A maxima ahora lo estoy considerando solo para lo que es cálculo simbólico, pero no para programar (aunque se puede hacer)
Respecto a scipy creo que tendría que aprender más de phyton ...
Gracias por tu opinión ..
Saludos Mose
Lo primero,aclarar para qué quiero tal o cual programa.
Para programación:
Octave: diseñado como lenguaje de programación para hacer cálculo numérico.Es magnífico.Apenas esta semana conocí qtoctave,lo instalé y probé y me pareció de maravilla.No solo por la interfaz gráfica,sino principalmente por su herramienta de "administración de complementos",parecidísima a synaptic.Se tiene la gran ventaja de acceder a mucho de lo ya programado, y evitas repetir un programa ("Descubrir el agua tibia").
Para cálculo simbólico:
Las herramientas de Sistema de Algebra por Computadora (Cas, por sus siglas en inglés),han sido diseñadas para resolver problemas literalmente (en letras,no en números.Para eso está el cálculo numérico).
Existen diversas herraminetas aquí: Mathomatic,Xcas,Maxima,Euler (este es completo),...Todas son libres.Algunas desarrolladas para solventar ciertas limitaciones de Maxima.
Para representación gráfica:
Por su importancia práctica, han sido desarrolladas muchas herramientas.La característica que tienen es que su curva de aprendizaje es un poco lenta (ejemplo,gnuplot),pero una vez que avanzas,su poder es inmenso.
Hay muchas,muchísimas: gnuplot,octave puede "llamar" a gnuplot, lo mismo maxima. Euler,mathplotlib,octaviz,...
Te recomiendo que entres al synaptic,click en Secciones---matemáticas---y revisas todo lo que hay.
Lo primero,aclarar para qué quiero tal o cual programa.
Para programación:
Octave: diseñado como lenguaje de programación para hacer cálculo numérico.Es magnífico.Apenas esta semana conocí qtoctave,lo instalé y probé y me pareció de maravilla.No solo por la interfaz gráfica,sino principalmente por su herramienta de "administración de complementos",parecidísima a synaptic.Se tiene la gran ventaja de acceder a mucho de lo ya programado, y evitas repetir un programa ("Descubrir el agua tibia").
Ese tipo de ventajas observé en qtoctave (administracion de complementos), ademas de tener mucho acceso a funciones preestablecidas.
Para cálculo simbólico:
Las herramientas de Sistema de Algebra por Computadora (Cas, por sus siglas en inglés),han sido diseñadas para resolver problemas literalmente (en letras,no en números.Para eso está el cálculo numérico).
Existen diversas herraminetas aquí: Mathomatic,Xcas,Maxima,Euler (este es completo),...Todas son libres.Algunas desarrolladas para solventar ciertas limitaciones de Maxima.
La ví en su momento a algunas de ellas, pero me quedo con maxima en este sentido.
Para representación gráfica:
Por su importancia práctica, han sido desarrolladas muchas herramientas.La característica que tienen es que su curva de aprendizaje es un poco lenta (ejemplo,gnuplot),pero una vez que avanzas,su poder es inmenso.
Hay muchas,muchísimas: gnuplot,octave puede "llamar" a gnuplot, lo mismo maxima. Euler,mathplotlib,octaviz,...
Para representacion grafica el paquete principal creo que es gnuplot, lo demas llaman a ese programa para dibujar
Te recomiendo que entres al synaptic,click en Secciones---matemáticas---y revisas todo lo que hay.
Revisé bastante esa sección de synaptic, y en síntesis los programas que nombré son los que más me gustaron y mayor cantidad de manuales pude encontrar.
Debo considerar algo que no tenía en cuenta, y a medida que leo los comentarios es que existen programas específicos para la programación matemática y otro para el cálculo simbolico, en otras palabras; es que se debe separar lo que es cálculo simbólico con la programación matemática, este es el concepto que me está quedando en claro ...
Gracias por tu aporte caralfre ... ;)
Saludos
Yo utilizo octave (desde hace varios años) y sagemath (desde hace unos meses).
Octave es un clon total de matlab. De hecho, si programas en matlab traducir tu programilla/script a octave es en la mayoría de casos una tarea trivial. Lo mismo en sentido contrario. Claro que cada uno tiene sus cosillas que los diferencian, pero la compatibilidad es extremadamente alta.
Si quieres otra opción sage: http://www.sagemath.org/
Voy a observar esta opción ...
Yo también creo que Sage es una excelente opción. De todas formas, deberías concretar un poquito más. Octave es un software "numérico", maxima es "simbólico". Sage es de todo, puesto que puedes integrar entre otras cosas maxima y octave dentro de sage.
Lo que me encanta de Sage, entre otras muchas cosas es el formato servidor/cliente web, y su relación tan profunda con LaTeX, hasta el punto que desde un documento LaTeX puedes hacer llamadas a Sage para que este te saque su salida en el propio documento (gráficas, operaciones con matrices, soluciones de ecuaciones diferenciales, lo que tú quieras) con una sintaxis la mar de cómoda. Eso es una auténtica gozada para los que usamos LaTeX.
Sage desapareció de los repositorios de Debian hace tiempo, pero su instalación es tan fácil como bajarse el tarball, descomprimirlo (por ejemplo en /usr/local) y a funcionar. De todas formas, como scipy, está fuertemente basado/inspirado en python. Algo de python por tanto te vendría bien (aunque yo sin tener ni idea más o menos me las arreglo).
PD. Eso de saber de todas las aplicaciones un poco, que tu lo ves como una desventaja, yo no lo veo como tal. Cada aplicación tiene sus objetivos, y en lo que uno flaquea otra puede ser superior. A mí me parece la mar de interesante saber defenderte en varias. Si luego dominas alguna, tanto mejor. Pero vaya, yo tengo muy claro que para algunas cosas por ejemplo en octave me las voy a apañar mejor que en sage, para otras (cálculos rápidos) incluso wolframalpha me viene mejor que sage. Y para otras, sage le pega mil patadas a las otras dos. Todo depende.
Yo utilizo octave (desde hace varios años) y sagemath (desde hace unos meses).
Octave es un clon total de matlab. De hecho, si programas en matlab traducir tu programilla/script a octave es en la mayoría de casos una tarea trivial. Lo mismo en sentido contrario. Claro que cada uno tiene sus cosillas que los diferencian, pero la compatibilidad es extremadamente alta.
Creo que cada vez me convence más el uso de octave respecto a scilab u otros ...
Si quieres otra opción sage: http://www.sagemath.org/
Voy a observar esta opción ...
Yo también creo que Sage es una excelente opción. De todas formas, deberías concretar un poquito más. Octave es un software "numérico", maxima es "simbólico". Sage es de todo, puesto que puedes integrar entre otras cosas maxima y octave dentro de sage.
Lo que me encanta de Sage, entre otras muchas cosas es el formato servidor/cliente web, y su relación tan profunda con LaTeX, hasta el punto que desde un documento LaTeX puedes hacer llamadas a Sage para que este te saque su salida en el propio documento (gráficas, operaciones con matrices, soluciones de ecuaciones diferenciales, lo que tú quieras) con una sintaxis la mar de cómoda. Eso es una auténtica gozada para los que usamos LaTeX.
Me sorprendió mucho esta respuesta, no tenía ni idea que se podía llamar a Sage desde LaTeX, eso me parece algo fantástico
Sage desapareció de los repositorios de Debian hace tiempo, pero su instalación es tan fácil como bajarse el tarball, descomprimirlo (por ejemplo en /usr/local) y a funcionar. De todas formas, como scipy, está fuertemente basado/inspirado en python. Algo de python por tanto te vendría bien (aunque yo sin tener ni idea más o menos me las arreglo)
Es una lastima, yo lo busque en los repositorios pero no lo encontré, aunque es como tú dice, su instalación no parece ser ningún problema.
De cierta manera me estoy inclinando más aun por octave respecto a los otros.
Gracias por la información ...
Saludos Minaya