loop inside ode45 solver

7 次查看(过去 30 天)
Fayeza Fayeza
Fayeza Fayeza 2017-10-24
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 个评论
Fayeza Fayeza
Fayeza Fayeza 2017-10-27
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!

请先登录,再进行评论。

回答(1 个)

KSSV
KSSV 2017-10-24
编辑:KSSV 2017-10-24
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 个评论
KSSV
KSSV 2017-10-24
Edited..is that you are looking for?
Fayeza Fayeza
Fayeza Fayeza 2017-10-24
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by