From: Jaime V. <vi...@fe...> - 2011-03-28 23:10:48
|
On Mon, 2011-03-28 at 23:30 +0200, bienvenido cano saorin wrote: > Sigo con lo mismo, he escrito lo siguiente: > > load(dynamics); > ode1:'diff(x1,t);ode2:'diff(x2,t);ode3:'diff(x3,t);/*...*/oden:'diff(xn,t); > sist: > rk([ode1,ode2,ode3,/*...*/oden],[x1,x2,x3,/*...*/xn],[1,1,1,/*...*/1],[t,0,2,.1]); Maxima no calcula nada que tu mismo no puedas calcular! Imagina que tu fueras a usar el método de Runge Kutta para resolver un sistema de ecuaciones diferenciales. Comenzarias por calcular las derivadas de las n variables de estado en el instante inicial t=0. Eso es lo que Maxima está intentado hacer, pero al substituir t=0 y x1=1 en diff(x1,t) queda diff(1,0) que no dá nada que pueda ser calculado. En vez de diff(x1,t) deverias tener algo que al substituir t=0, x1=1, x2=1 y xn=1 te diera un número. Otra cosa: /*...*/ es un comentario en Maxima. Para que estás metiendo comentarios dentro de los parámetros de entrada a rk? Ya alguna vez has resuelto algún problema de ecuaciones diferenciales por métodos numéricos usando apenas calculadora? Seria un buen ejercício para entender de que se trata el método numérico. Saludos, Jaime |