Resulta que en clase estaban muy cansinos con Derive (un programa de hacer cosillas de matemáticas para windows), así que a mi me dio por investigar en Linux cosillas similares, y aunque me ha costado, he encontrado varios programas que hacen lo mismo e incluso mejor. Por si a alguien le interesa, me sobra algo de tiempo y voy a comentaros cómo me fue.
El software en cuestión es:
-gnuplot: http://www.gnuplot.info/
-octave: http://www.octave.org/
-maxima: http://maxima.sourceforge.net/
GNUPlot
Este software nos permite representar gráficamente funciones matemáticas:
Código:
En GNUPlot, ese comando nos representaría gráficamente la función "neperiano de x partido por la raíz cuadrada de x al cubo más tres", en el intervalo de abscisas [x0,x1] y el de ordenadas [y0:y1].plot [x0:x1] [y0:y1] log(x)/sqrt(x*x*x+3)
Octave
Ocatve hace cálculos numéricos principalmente, matriciales, resuelve ecuaciones no lineales, trabaja con polinomios, vectores... Veamos alguna muestra. Resolveremos el sistema lineal:
Código:
En octave escribiremos la matriz de los coeficientes (a) y la matriz de los términos independientes (b):3x+2y-7z = 2 5x-3y+4z = 1 x-y+z = 6
Código:
Como el sistema se puede expresar matricialmente como AX=B, basta hacer para resolverlo:a = [ 3, 2, -7; 5, -3, 4; 1, -1, 1 ] // Octave responde ordenando la matriz b = [2; 1; 6]
Código:
Octave responderá con la solución al sistema. Pero si escribimos "format long" y volvemos a poner "a \ b", mostrará al menos 15 decimales de las soluciones, y si ponemos "format bit" y volvemos a poner "a \ b" nos dará las soluciones en binario a \ b
Veamos alguna cosa más, por ejemplo la resolución de una ecuación no lineal, como "x por e elevado a x, menos uno igual a cero":
Código:
También hace cosillas con polinomios, por ejemplo x3 - 2x2 + 7x + 3, lo representamos en octave por el vector de sus coeficientes:function y = f (x) y = x * exp(x) - 1; endfunction format long fsolve("f", 0) // Octave nos devuelve: ans = 0.567143290409784
Código:
Algunas cosas que Octave puede hacer son: derivarlo, integrarlo, hayar sus raices, evaluarlo para un valor de x concreto (3):p = [ 1 -2 7 3 ]
Código:
Maximapolyderiv(p) polyinteg(p) roots(p) polyval(p, 3)
Este programa hace cálculos simbólicos (y muuchas cosas más), es un CAS (Computer Algebra System) libre. Veamos alguna cosilla, definimos una función:
Código:
Esto es, "neperiano de (x elevado a tres menos 3 x más dos) entre (raíz cuadrada(valor absoluto(x - 3))". Pongámoslo a trabajar:f: log(x^3 - 3*x + 2)/sqrt(abs(x-3));
Código:
Hay muchas más cosas que estos programas pueden hacer, si alguien quiere comentar algo, que lo haga // Derivada: g: diff (f, x); // Simplificamos la derivada: factor(g);
Un saludo,