How to solve this system of ODE's

2 ビュー (過去 30 日間)
Danny Helwegen
Danny Helwegen 2019 年 2 月 6 日
コメント済み: Star Strider 2019 年 2 月 7 日
Hi i have a rather simple question, I need to solve a system of ode's of the form Ax = b with given A and timespan and interval.
A = [-199 -198; 99 98]
To solve this i wrote the following code:
function dxdt = System()
dxdt = zeros (2,2);
dxdt(1) = -199*x(1) - 198*x(2);
dxdt(2) = 99*x(1) + 98*x(2);
dxdt = dxdt';
end
And:
[t,x] = ode45(@System, [0 2.5], [1 1])
plot(t,x)
The error that i get is:
Error using System
Too many input arguments
Does someone see where i went wrong?

採用された回答

Star Strider
Star Strider 2019 年 2 月 6 日
Your ODE funciton has to have your independent and dependent variables (here ‘t’ and ‘x’) as arguments.
Try this:
function dxdt = System(t,x)
dxdt = zeros (2,1);
dxdt(1) = -199*x(1) - 198*x(2);
dxdt(2) = 99*x(1) + 98*x(2);
end
[t,x] = ode45(@System, [0 2.5], [1 1]);
plot(t,x)
  2 件のコメント
Danny Helwegen
Danny Helwegen 2019 年 2 月 7 日
Thanks, I completly forgot about them
Star Strider
Star Strider 2019 年 2 月 7 日
As always, my pleasure.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by