Matlab - ode45 Tiempo, ayuda!

   
Vista:

ode45 Tiempo, ayuda!

Publicado por Maria (27 intervenciones) el 27/11/2015 11:10:21
Hola!! Necesito ayuda que me estoy haciendo un lio.
Quiero resolver una ode45, entonces la cosa es que quiero que el tiempo en vez de ser un vector tipo tspan=[o,tf], tengo un bucle for con pasos de tiempo y quiero que en cada paso de tiempo la ode45 se resuelva.
for t=0:0,5:100

ode45()....

end

entonces una solucion de la ode45 por cada pasito de tiempo. No se como decirle a la ode45 lo del tiempo..el tspan no se como debo ponerlo teniendo en cuenta el bucle.
Ayuda porfavor!!
Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO

ode45 Tiempo, ayuda!

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 27/11/2015 13:37:23
Si quieres en cada paso aplicar ode45, entonces para la iteración n-esima necesitas tomar como condición inicial el ultimo elemento de la iteración (n-1) y de esa manera ir haciendo ode45 en cada iteración. He estado revisando tu historial de preguntas y ya haz hecho pregunta sobre este tema ded45 e inclusive te he contestado, revisa ese código, estudialo.

http://www.lawebdelprogramador.com/foros/Matlab/1497604-Ecuaciones-diferenciales-ODE45.html



Saludos .
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
Servicios de programación matlab
jjcc94@hotmail.com
skype: josejeremiascaballero
Estimado Usuario, el correo es para servicios de cursos, asesoría y programación. Toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

ode45 Tiempo, ayuda!

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 27/11/2015 13:58:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function ode45ecuaciones1(W1,W2,tf)
close all
global w1 w2
w1=W1;
w2=W2;
 figure(1)
[T,Y] = ode45(@ecua_osciladores,[0 0.5],[0 1]);
plot(T,Y(:,1),'-',T,Y(:,2),'-.')
pause(0.5)
f=2;
for t=0.5:0.5:tf-0.5
 figure(f)
[T,Y] = ode45(@ecua_osciladores,[t,t+0.5],[ Y(end,1)  Y(end,2)  ]);
plot(T,Y(:,1),'-',T,Y(:,2),'-.')
pause(0.5)
f=f+1;
end
 
function dx=ecua_osciladores(t,x)
global w1 w2 k
dx=zeros(2,1);
dx(1)=w1+(k/2)*sin(x(2)-x(1));
 dx(2)= w2+(k/2)*sin(x(1)-x(2));


1
>> ode45ecuaciones1(1,2,2)



Saludos .
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
Servicios de programación matlab
jjcc94@hotmail.com
Estimado Usuario, el correo es para servicios de cursos, asesoría y programación.
Toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar