using ode45

1 view (last 30 days)
Walt
Walt on 9 May 2011
I have used successfully used ode45 on several occasions. Now I am trying to "improve" my utilization. Previously I had something like ---
for i = 1 : dx
[t,y] = ode45( 'ffssl' , [0,xinit(i)], yinit ) ;
fprintf ( fp , ' %f\t%f\n' , xinit(i) , y(end) ) ;
end ;
I would like to use something such as the following ---
for i = 1 : dx
[t,y] = ode45 ( 'ffssl' , [xinit(i),xinit(i+1)], <yinit> ) ;
fprintf ( fp , ' %f\t%f\n' , xinit(i+1) , <y(end)> ) ;
end ;
Is this even possible? If so, I do not know how do provide the proper y initial value yinit or the y calculated value y(end). Any suggestions would be appreciated. Thanks very much in advance.
  1 Comment
Matt Tearle
Matt Tearle on 9 May 2011
Can you explain what you're trying to achieve? It looks like you're writing out the solution at some given times (x values). But you wouldn't need a loop for that.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 9 May 2011
At first glance it appears you could use
xi = [0, xinit];
for i = 1 : length(xi)-1
[t,y] = ode45 ( 'ffssl', [xi(i),xi(i+1)], yinit(i) ) ;
fprintf( fp, ' %f\t%f\n', xi(i+1), y(end) );
end
but I have no idea what your proper yinit values should be if they are not to be constant.

Tags

Products

Community Treasure Hunt

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

Start Hunting!