Not enough input arguments ode45
10 ビュー (過去 30 日間)
古いコメントを表示
Vipin Padinjarath
2016 年 10 月 6 日
編集済み: Vipin Padinjarath
2016 年 10 月 6 日
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 件のコメント
採用された回答
Massimo Zanetti
2016 年 10 月 6 日
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?
4 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!