フィルターのクリア

Too many input arguments: error in ODE45

3 ビュー (過去 30 日間)
Shreshtha Chaturvedi
Shreshtha Chaturvedi 2022 年 12 月 18 日
コメント済み: Shreshtha Chaturvedi 2022 年 12 月 18 日
I have the following coefficient matrix my_Xi:
my_Xi =
0 0 0 0 0 0
0 0 0 0 0 0
0 11.3936 0 0 0 0
0 0 0 0 0 0
0 15.7629 0 0 0 0
0 -15.4752 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 49.6849 0 -27.7503 17.9319 10.0351
0 0 0 0 0 0
0 0 0 0 0 0
0 -18.1205 12.0592 28.3871 0 0
0 0 0 0 0 0
0 0 0 -39.3697 0 0
0 55.9200 0 0 26.7242 0
0 0 -19.7125 -43.3555 0 0
0 0 0 80.7743 0 0
0 0 0 0 0 0
0 0 0 17.6067 0 0
0 -15.4446 -23.2459 0 0 0
0 -42.8207 0 0 -21.9576 0
0 20.2546 0 -39.3216 0 0
0 64.4836 0 -22.1828 16.8531 0
0 -23.5016 32.6644 60.2232 0 0
0 45.2034 20.2962 0 18.9374 0
0 0 0 -43.7764 0 0
0 0 0 0 0 0
0 -21.5528 0 23.3698 0 0
I am trying to solve a system of odes with 6 variables:
my_n = 6
my_x0 = [-0.4999;0.2927;-1.8887;-0.8495;-0.4719;-1.4219]
fun = @(x) my_Xi.'* [1, x(1), x(2), x(3), x(4), x(5), x(6), x(1)*x(1), x(1)*x(2), x(1)*x(3), x(1)*x(4), x(1)*x(5), x(1)*x(6), x(2)*x(2), x(2)*x(3), x(2)*x(4), x(2)*x(5), x(2)*x(6), x(3)*x(3), x(3)*x(4), x(3)*x(5), x(3)*x(6), x(4)*x(4), x(4)*x(5), x(4)*x(6), x(5)*x(5),x(5)*x(6), x(6)*x(6)]
options = odeset('RelTol',1e-12,'AbsTol',1e-12*ones(1,my_n));
my_dt = 0.0083;
my_tspan=[.01:my_dt:(1133)*my_dt];
[t,x]=ode45(fun, my_tspan, my_x0, options);
However, this code gives me the error: "Too many input arguments." Can someone please help?

採用された回答

Paul
Paul 2022 年 12 月 18 日
Hi Shreshtha,
The function handle input to ode45 needs to take two arguments: t and x. Also, the matrix multiply defined in fun won't work, I'm guessing the vector needs to be transposed to make it compatible wity my_Xi.'.
Code below runs without error.
my_Xi = [
0 0 0 0 0 0
0 0 0 0 0 0
0 11.3936 0 0 0 0
0 0 0 0 0 0
0 15.7629 0 0 0 0
0 -15.4752 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 49.6849 0 -27.7503 17.9319 10.0351
0 0 0 0 0 0
0 0 0 0 0 0
0 -18.1205 12.0592 28.3871 0 0
0 0 0 0 0 0
0 0 0 -39.3697 0 0
0 55.9200 0 0 26.7242 0
0 0 -19.7125 -43.3555 0 0
0 0 0 80.7743 0 0
0 0 0 0 0 0
0 0 0 17.6067 0 0
0 -15.4446 -23.2459 0 0 0
0 -42.8207 0 0 -21.9576 0
0 20.2546 0 -39.3216 0 0
0 64.4836 0 -22.1828 16.8531 0
0 -23.5016 32.6644 60.2232 0 0
0 45.2034 20.2962 0 18.9374 0
0 0 0 -43.7764 0 0
0 0 0 0 0 0
0 -21.5528 0 23.3698 0 0];
my_n = 6;
my_x0 = [-0.4999;0.2927;-1.8887;-0.8495;-0.4719;-1.4219];
% two corrections here
fun = @(t,x) my_Xi.'* [1, x(1), x(2), x(3), x(4), x(5), x(6), x(1)*x(1), x(1)*x(2), x(1)*x(3), x(1)*x(4), x(1)*x(5), x(1)*x(6), x(2)*x(2), x(2)*x(3), x(2)*x(4), x(2)*x(5), x(2)*x(6), x(3)*x(3), x(3)*x(4), x(3)*x(5), x(3)*x(6), x(4)*x(4), x(4)*x(5), x(4)*x(6), x(5)*x(5),x(5)*x(6), x(6)*x(6)].';
options = odeset('RelTol',1e-12,'AbsTol',1e-12*ones(1,my_n));
my_dt = 0.0083;
my_tspan=[.01:my_dt:(1133)*my_dt];
[t,x]=ode45(fun, my_tspan, my_x0, options);
  1 件のコメント
Shreshtha Chaturvedi
Shreshtha Chaturvedi 2022 年 12 月 18 日
Hi, thank you! I am unable to accept your answer as it says: "Unable to complete the action because of changes made to the page. Reload the page to see its updated state", even after reloading. I will try again after some time :)

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by