ode45 with an input
Show older comments
I'd like to integrate a function with a variable that is taken from the user. For example, to integrate the function below:
function dydt = test(t,y)
dydt = -t*y/sqrt(2-y^2);
,I would call it with something like [t,y] = ode45('test',[0:0.1:5],1), but if I want to integrate dydt = -ty/sqrt(2-y^2)*b, where b is taken from the user, how would I do that?
Here's what I've tried:
function dydt = test(t,y,b)
dydt = -ty/sqrt(2-y^2)*b;
,and calling it with [t,y] = ode45('test',[0:0.1:5],1,3), where b = 3 in the call, but it's giving me an error. Is there a way to integrate a function with a variable that is taken from the user?
Answers (2)
Azzi Abdelmalek
on 6 May 2013
tspan=[0:0.1:5]
[T,Y] = ode45(@(t,y),test(t,y,b),tspan,y0)
1 Comment
Some tiny modifications:
tspan = 0:0.1:5; % This is a vector already
b = 23.4; % Define b as wanted
[T,Y] = ode45(@(t,y) test(t,y,b), tspan, y0); % One comma removed
Jan
on 6 May 2013
0 votes
Categories
Find more on Programming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!