loop inside ode45 solver

Hello, I am using loop inside ode45 solver with shooting method ,and want to store data from each iteration. My code only save the last iteration. Please help.
function F=solver(x)
m=-2:1:-1;
u1=zeros(length(m));
for k=1:length(m);
[t{k},u{k}]=ode45(@(t,u)equation(t,u,m(k)),[0 10],init1,options);
s=length(t{k});
F=[u{k}(s,2)-1,u{k}(s,4)];
u1(k)=u{k}(1,3);
end
end
for k=1:length(m);
Final=[m(k),u1(k)]
end

1 comentario

Fayeza Fayeza
Fayeza Fayeza el 27 de Oct. de 2017
I am still wondering why this loop saved only the last iteration? or I should call ode45 solver many times? but this is useless if there are many values for a parameter m. Please help!

Iniciar sesión para comentar.

Respuestas (1)

KSSV
KSSV el 24 de Oct. de 2017
Editada: KSSV el 24 de Oct. de 2017

0 votos

function F=solver(x)
m=-2:1:-1;
u1=zeros(length(m));
S = cell(length(m),1) ;
for k=1:length(m);
[t,u]=ode45(@(t,u)equation(t,u,m(k)),[0 10],init1,options);
S{k} = u(:,3) ;
s=length(t{k});
F=[u{k}(s,2)-1,u{k}(s,4)];
u1(k)=u{k}(1,3);
end
end
for k=1:length(m);
Final=[m(k),u1(k)]
end

3 comentarios

Fayeza Fayeza
Fayeza Fayeza el 24 de Oct. de 2017
Sadly, this still not solved my problem. I want u(1,3) for each k.
KSSV
KSSV el 24 de Oct. de 2017
Edited..is that you are looking for?
Fayeza Fayeza
Fayeza Fayeza el 24 de Oct. de 2017
yes. After calling ode45 solver I got u with 5 columns u(n,5) with n=1 to 10. I want to edit only u(1,3) for different parameters m. Because of that I am using k loop.

Iniciar sesión para comentar.

Preguntada:

el 24 de Oct. de 2017

Comentada:

el 27 de Oct. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by