Dibujar Campo Vectorial De Una E.D.O

por | 3 septiembre, 2009

Hola, llevo ya meses intentando ver cómo podía dibujar el campo vectorial de una ecuación diferencial ordinaria (E.D.O.). Primero probé con la función quiver que implementan tanto Octave como Matplotlib, pero no entiendo muy bien el significado de la función en sus 3ª y 4ª componentes (U y V), y al dibujarlo me cambiaba la orientación de los vectores en los cuadrante 2º y 3º. Hoy me he decidido a probar con Scilab y lo he conseguido utilizando la función fchamp, desgraciadamente esta función no viene definida ni en Octave ni en Matplotlib; y el caso es que es una función definida con el único propósito de dibujar el campo vectorial de una E.D.O., no lo es así con la función quiver.

Bueno veamos un ejemplo de ello:

Queremos dibujar el campo vectorial de la E.D.O. lineal y\prime = x+y con la variable x variando entre -6 y 6; y la y variando entre -10 y 10. Lo único que hay que hacer es definir la función, los intervalos de las variables y ejecutar fchamp. El código es:

  1. function ydot=f(x,y),ydot=x+y,endfunction
  2. x=-6:1:6;
  3. y=-10:1:10;
  4. fchamp(f,0,x,y)

Y el resultado lo podéis apreciar en la siguiente imagen.
Image Hosted by ImageShack.us

Como se ve el resultado es más que óptimo, el código es claro y sencillo. Ahora sólo falta averiguar cómo hacerlo en Octave o en Matplotlib.

Saludos

2 pensamientos en “Dibujar Campo Vectorial De Una E.D.O

  1. Cristobal

    Jorge muchas gracias, probado y funciona perfecto
    Sí que es un poco más engorroso, pero era de esperar, ahora ya esta claro que en quiver las 2 últimas componentes deben ser vectores, con lo que una e.d.o escalar hay que pasarla a sistema. Y además también he averiguado que meshgrid no funciona como se espera en estas E.D.O.

    Lo dicho, muchas gracias

Los comentarios están cerrados.