Ecuaciones Diferenciales en Octave, ejemplos.

Octave tiene funciones integradas que permiten resolver ecuaciones diferenciales, Octave utiliza la función lsode, ver Livermore Solver for Ordinary Differential Equations, descrita en A. C. Hindmarsh

 

Ejemplo 1.

En el siguiente ejemplo m = dy/dx,

dy/dx = 2x

∫ dy = ∫2x dx +c, y= x^2 +c

Dichas ecuaciones deben ser de la forma,( con el programa escribir como se indica ):

function m=f(y,x)                  

m=2*x;                     

endfunction

>> y=lsode("f",0,(x=linspace(0,5,1000)'));                                        

plot(x,y)

 

 

: : : : : http://82.166.171.228:8080/publicaciones/octave_ec_dif/1.PNG

Se indica que lsode toma como parámetros, primero la función que declaramos, después el valor que le dimos de y=0 y por ùltimo la variable x, que contiene el vector de los intervalos en que queremos resolver la ecuación. En la expresion escrita se define el valor inicial y=0 y el eje de las x entre 0 y 5 con una representacion de 1000 puntos entre estos extremos.

 

En el siguiente ejemplo el valor inicial y = 4,

 

y=lsode("f",4,(x=linspace(0,5,1000)'));

 

: : : http://82.166.171.228:8080/publicaciones/octave_ec_dif/2.PNG

 

Ejemplo 2.

 

Dada la siguiente funcion,

y = √x , dy/dx = 1 / 2 √x

 

x=1:0.01:10;

>> y=sqrt(x);

>> plot(x,y)

 

 

: : http://82.166.171.228:8080/publicaciones/octave_ec_dif/4.PNG

Resolviendo la ecuacion diferencial dy/dx= 1/(2*sqrt(x)) , con Octave

 

function m=f(y,x)

m=1/(2*sqrt(x));

 

endfunction

>> y=lsode("f",1,(x=linspace(1,10,1000)'));

>> plot(x,y)

 

: http://82.166.171.228:8080/publicaciones/octave_ec_dif/5.PNG

y= √x

 

 

 

Eduardo Ghershman, 30.3.2016