ode45 with an input
Afficher commentaires plus anciens
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?
Réponses (2)
Azzi Abdelmalek
le 6 Mai 2013
tspan=[0:0.1:5]
[T,Y] = ode45(@(t,y),test(t,y,b),tspan,y0)
1 commentaire
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
le 6 Mai 2013
0 votes
Catégories
En savoir plus sur Programming dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!