Not enough input arguments ode45
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Vipin Padinjarath
am 6 Okt. 2016
Bearbeitet: Vipin Padinjarath
am 6 Okt. 2016
Hi all, I have been trying to understand the use of ode solvers in MATLAB. In the process, I started with first order equations and all went well. The moment I started trying out second order systems, the trouble started. When I run the code, it shows 'not enough input arguments'. I thought that it may the problem with my code and then I started trying codes given as example in text books (Otto&Denier etc.). For every code, every time I run, the same issue pops up. And the code seems to be correct. Please help me to sort it out. I have attached the screenshot of the error message.

">> lorenz Error using lorenz (line 5) Not enough input arguments." This was a code I chose from a text book.
if true
% code
function dx=lorenz(t,x)
sigma=10;
rho=28;
beta=8/3;
dx=[sigma*(x(2)-x(1));x(1)*(rho-x(3)-x(2));x(1)*x(2)-beta*x(3)];
x0=[0 1 1.05];
tspan=[0,20];
[t,x]=ode45(@lorenz,tspan,x0);
plot(x(:,1),x(:,3))
end
0 Kommentare
Akzeptierte Antwort
Massimo Zanetti
am 6 Okt. 2016
Separate the funciton from the rest
function dx=lorenz(t,x)
sigma=10;
rho=28;
beta=8/3;
dx=[sigma*(x(2)-x(1));x(1)*(rho-x(3)-x(2));x(1)*x(2)-beta*x(3)];
end
and invoke ode45 correctly
x0=[0 1 1.05];
tspan=[0,20];
[t,x]=ode45(@(t,x) lorenz(t,x),tspan,x0);
plot(x(:,1),x(:,3))
Does it work now?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!