• No se han encontrado resultados

Ecuaciones Diferenciales Ordinarias I

N/A
N/A
Protected

Academic year: 2021

Share "Ecuaciones Diferenciales Ordinarias I"

Copied!
22
0
0

Texto completo

(1)

Ecuaciones Diferenciales Ordinarias I

Uso de Maxima y wxMaxima Primeros Pasos

Jos´e Luis Alonzo Vel´azquez

Universidad de Guanajuato

(2)

Primeras Operaciones

Maxima es un programa que funciona como una calculadora cient´ıfica. Las operaciones aritm´eticas elementales son las habituales: + suma, − resta, ∗ multiplicaci´on, / division, ∧ potencias: (%i1) 2+2; 3-3; 2*3; 5/10; 3^3; ( %o1) 4 ( %o2) 0 ( %o3) 6 ( %o4) 1 2 ( %o5) 27 Nota:

Normalmente para que Maxima calcule es necesario apretar al mismo tiempo las teclas “Schift” o “Ctrl” y “Enter”.

(3)

La notaci´on que usa Maxima es ( %in) y ( %om) para indicar la entrada (inchar o input) n-´esima y la salida (outchar u output) m-´esima. Usando, por ejemplo, las ordenes inchar: “input”; y outchar: “output”; podemos cambiar las ( %in) y ( %om) por ( %inputn) y ( %outputm), respectivamente.

Dado que Maxima es un programa de calculo simb´olico, trabaja con variables definidas por letras:

(%i6) e; ( %o6) e

(4)

Las funciones (comandos) tienen el argumento (o los argumentos) que van entre par´entesis, como por ejemplo el comando float(x) que nos da como resultado el valor num´erico de la variable x.

En este ejemplo e representa una variable que no tiene ning´un argumento asignado: (%i7) float(e); ( %o7) e (%i8) pi; ( %o8) π (%i9) float(pi); ( %o9) π

(5)

por lo que su respuesta es la propia variable. Notes que si escribimos “pi”, (o π, lo que se puede conseguir con la combinaci´on “Esc” p “Esc”) el resultado es pi.

Para los valores num´ericos de las constantes e o π Maxima usa una notaci´on distinta:

(%i10) %e; ( %o10)e

(%i11) float(%e); ( %o11)2.718281828459045

(6)

Precisi´on en Maxima

Si no se le dice lo contrario, Maxima trabaja en precisi´on simple, i.e., con 16 d´ıgitos. Dado que es un programa simb´olico, podemos definirle con cuantas cifras queremos trabajar. Para ello hay que definir la variable fpprec. Para asignar valores a las variables dadas se usan los “dos puntos”. Por ejemplo si escribimos e: %e habremos definido la variable e con el valor de la base de los logaritmos naturales(neperianos). Vamos a definir el grado de precisi´on en 50 cifras significativas:

Ajustar el n´umero de decimales a considerar (%i12) fpprec:50;

(7)

Comprobamos pidiendo a Maxima que nos de los valores de e y π con 50 cifras, para lo cual hay que usar el comando bfloat:

(%i13) bfloat(%e); bfloat(%pi);

( %o13)2.7182818284590452353602874713526624977572470937b0

( %o14)3.1415926535897932384626433832795028841971693993751b0

(8)

Calculemos ahora e7 y pidamos a Maxima que escriba los valores num´ericos del mismo:

(%i15) float(%e^7); ( %o15)1096.633158428459 (%i16) bfloat(%e^7); ( %o16)1.0966331584284585992637202382881214324422191348336b3 (%i17) %e^7; ( %o17)e7

As´ı si escribimos %e∧7 la salida es simplemente e7 pues Maxima, como hemos dicho, trabaja simb´olicamente. Si usamos float, la salida es en precisi´on normal, y solo si usamos bfloat nos devuelve el resultado en la precisi´on definida previamente de 50 cifras.

(9)

El orden de realizaci´on de las operaciones es el habitual. As´ı en la expresi´on

(%i18) (2+3^2)^3*(5+2^2); ( %o18)11979

primero calcula las potencias dentro de cada par´entesis, luego las sumas, luego las potencias externas y finalmente la multiplicaci´on.

(10)

Como hemos mencionado, para definir los valores de las variables se usan los dos puntos.

En la secuencia que aparece a continuaci´on se definen la x y la y para que valgan 123 y 321, respectivamente, dej´andose la z libre.

(%i19) x:123; y:321; x*y; x/y; x-y; ( %o19)123 ( %o20)321 ( %o21)39483 ( %o22) 41 107 ( %o23) − 198 (%i24) 123*321; ( %o24)39483 (%i25) x; ( %o25)123

(11)

(%i26) z=2; ( %o26)z = 2 (%i27) z; ( %o27)z (%i28) x; ( %o28)123 (%i29) y; ( %o29)321 (%i30) x*y; ( %o30)39483 (%i31) x+z;

(12)

En resumen:

Del resultado se sigue, que, por ejemplo, al realizar la divisi´on x /y , Maxima simplifica al m´aximo el resultado. N´otese tambi´en que el resultado de la multiplicaci´on de x ∗ y es precisamente el valor de 123 ∗ 321. Como vemos en la salida ( %o26) la expresi´on z = 2 no asigna el valor 2 a la variable z, ya que en realidad z = 2 es una ecuaci´on (como veremos m´as adelante).

Es importante destacar que hay que escribir el s´ımbolo de cada multiplicaci´on pues, si por ejemplo escribimos x y en vez de x ∗ y obtenemos un mensaje de error:

(%i32) x y;

(13)

funci´on de lo queramos hacer. La m´as sencilla es mediante la secuencia := (%i32) f(x):= x^2 -x + 1; ( %o32)f (x ) := x2− x + 1 (%i33) f(%pi); ( %o33)π2− π + 1 (%i34) float(%); ( %o34)7.728011747499565 (%i35) float(f(%pi)); ( %o35)7.728011747499565

(14)

Ayuda ?

Otro detalle interesante a tener en cuenta es que Maxima contiene una ayuda completa que puede ser invocada desde la propia l´ınea de comandos. Para ello preguntamos a Maxima con ?? delante del comando desconocido.

La respuesta es una lista de opciones de funciones de Maxima que contienen las letras del comando y el programa se queda esperando que elijamos una opci´on. Al elegirla nos da una explicaci´on

detallada de la sintaxis y de lo que hace dicho comando y, en muchos casos.

Si no existe ning´un comando con ese nombre la respuesta es false (en caso contrario, al final de las explicaciones, la salida es true).

(15)

GNUPLOT

Otra de las interesantes opciones de Maxima es su potencia gr´afica. Para hacer las gr´aficas Maxima usa Gnuplot, un potente paquete gr´afico GNU. El comando m´as sencillo de usar es plot2d. Ahora bien, para usar ese comando tenemos que ser muy

cuidadosos. Si hacemos en nuestro caso

(%i36) wxplot2d([f(x)], [x,-5,5]);

plotting: range must be of the form [variable, min, max];

found: [123,-5,5] – an error. To debug this try: debugmode(true); obtenemos un error, que simplemente, leyendo nos indica que la

(16)

Eso se resuelve cambiando la variable por otra no usada o, usando una variable muda, es decir una variable que solo se use dentro del propio comando wxplot.

Estas variables se definen colocando delante de la misma el signo ’, por ejemplo, en vez de x usamos ’x que nos saca en el propio entorno de xwMaxima la gr´afica.

(%i37) wxplot2d([f(’x)], [’x,-5,5])$; ( %t37) (%i37) wxplot2d([f(r)], [r,-5,5])$; ( %t37) 2 2

Tambi´en podemos usar plot que saca el resultado en una pantalla aparte (de Gnuplot).

(17)

Podemos representar varias gr´aficas al mismo tiempo

Para ello creamos una lista6 de funciones de la siguiente forma [f (x ), g (x ), ..., h(x )]. En el ejemplo representamos las funciones f (x ), sin(2x )yarctan(x ):

(%i37) wxplot2d([f(r),2*sin(r),atan(r)], [r,-2,2])$ ( %t37)

(18)

Maxima tambi´en dispone de una gran cantidad de funciones elementales, exponencial, logaritmo, trigonom´etricas, etc. Adem´as las trata de forma simb´olica como se puede ver en la secuencia que sigue. N´otese que la funci´on log denota a los logaritmos neperianos (probar con la funci´on ln).

(19)

¿Por qu´e pasa esto?

(%i38) factor(x^2+x+6); ( %o38)2 3 2543

(20)

Limpiar el valor de una variable, para lo cual usamos el comando kill: (%i39) kill(x); x; ( %o39)done ( %o40)x 3 3

Si queremos limpiar todas las variables de nuestra sesi´on debemos usar el comando kill(all)

(21)

Maxima cuenta con varios comandos para resolver anal´ıticamente las ecuaciones diferenciales ordinarias (EDOs).

Comencemos comentando la orden desolve que resuelve sistemas de EDO’s mediante la transformada de Laplace. Su sintaxis es

desolve([eq1, eq2, ..., eqn], [y 1, y 2, ..., yn])

donde eq1, ..., eqn denota las ecuaciones diferenciales (lineales) e y 1, ..., yn las funciones desconocidas. Para definir la ecuaci´on debemos usar la sintaxis correcta. Por ejemplo la ecuaci´on y 0(x ) = y la escribimos de la siguiente forma:

(22)

Ecuaciones Diferenciales, Zill D.G. 6ed (1997).

Introducci´on a las ecuaciones diferenciales. Nueva editorial interamericana S.A. de C.V. Shepley L. Ross (1983). http://maxima.sourceforge.net/

http://www.singular.uni-kl.de/ http://www.r-project.org/

Referencias

Documento similar

En este trabajo se revisarán los procedimientos principales para estimar los parámetros de un sistema de ecuaciones diferenciales ordinarias a partir de una muestra de

¿Qué método emplearía para resolver la ecuación dinámica o sistema de ecuaciones diferenciales resultante.. ¿Cuál es tu estrategia para la toma de

Uno de los métodos más utilizados para resolver numéricamente problemas de ecuaciones diferenciales ordinarias con condiciones iniciales es el método de Runge- Kutta de cuarto

ecuaci on lineal no homog enea pasa por encontrar un sistema fundamental de soluciones.. de la ecuaci on homog enea y despu es una soluci on particular de

Por otro lado, si comparamos los cocientes de ambas extrapolaciones no lineales, la extrapolaci´ on polin´ omica rec´ıproca tiene un mejor compor- tamiento que la extrapolaci´

En el cap´ıtulo 4, titulado “Din´ amica hamiltoniana de un gir´ ostato en interacci´ on newtoniana con un s´ olido r´ıgido esf´ erico”, se plantea la formulaci´ on

Las ecuaciones de Lotka-Volterra[27][14] son un sistema de ecuaciones diferenciales no lineales de primer orden en las cuales se estudia la dinámica poblacional entre varias

Iniciamos el estudio de los métodos de solución de Ecuaciones Diferenciales Ordinarias (EDO) con la resolución de ecuaciones separables por simple integración de la expresión