Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/02/2003, 13:58
Avatar de lical
lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 4 meses
Puntos: 0
Matemáticas en Linux

Hola a todos.

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:
plot [x0:x1] [y0:y1] log(x)/sqrt(x*x*x+3)
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].

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:
3x+2y-7z = 2
5x-3y+4z = 1
x-y+z = 6
En octave escribiremos la matriz de los coeficientes (a) y la matriz de los términos independientes (b):
Código:
a = [ 3, 2, -7; 5, -3, 4; 1, -1, 1 ]
// Octave responde ordenando la matriz
b = [2; 1; 6]
Como el sistema se puede expresar matricialmente como AX=B, basta hacer para resolverlo:
Código:
a \ b
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

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:
function y = f (x)
y = x * exp(x) - 1;
endfunction
format long
fsolve("f", 0)
// Octave nos devuelve:
ans = 0.567143290409784
También hace cosillas con polinomios, por ejemplo x3 - 2x2 + 7x + 3, lo representamos en octave por el vector de sus coeficientes:
Código:
p = [ 1 -2 7 3 ]
Algunas cosas que Octave puede hacer son: derivarlo, integrarlo, hayar sus raices, evaluarlo para un valor de x concreto (3):
Código:
polyderiv(p)
polyinteg(p)
roots(p)
polyval(p, 3)
Maxima
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:
f: log(x^3 - 3*x + 2)/sqrt(abs(x-3));
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:
Código:
// Derivada:
g: diff (f, x);
// Simplificamos la derivada:
factor(g);
Hay muchas más cosas que estos programas pueden hacer, si alguien quiere comentar algo, que lo haga


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico