I can run this function with 2 z values but when I try to add another z value I get an error. Do you know how to run this function for 3 z values?
Error: Index exceeds matrix dimensions.
function dxdy = TY3(t,z)
dxdy = [z(3); 1*z(3)+2*z(2)+3*z(1)];
[t,z] = ode23(@TY3,[0 30],[1 0 ]);
plot(t,z(:,1),'k','LineWidth',2);

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 20 日

0 投票

You have 3 variables z(1),z(2) and z3, you need to write 3 equations dydx(1),dydx(2) and dydx(3), for example
dxdy = [z(3); 1*z(3)+2*z(2)+3*z(1);0]
and call ode23 with 1x3 array representing initial conditions
[t,z] = ode23(@TY3,[0 30],[1 0 1 ]);
plot(t,z(:,1),'k','LineWidth',2);

3 件のコメント

WhatIsMatlab-
WhatIsMatlab- 2016 年 4 月 20 日
編集済み: WhatIsMatlab- 2016 年 4 月 20 日
Well that allows it run. Thank you. It didn't produce what I expected but at least it does now run. That's progress.
Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 20 日
I just gave an example, you have to provide the third equation and the initial conditions
WhatIsMatlab-
WhatIsMatlab- 2016 年 4 月 20 日
編集済み: WhatIsMatlab- 2016 年 4 月 20 日
Ok thanks!! I got it working.

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

その他の回答 (0 件)

カテゴリ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by