私は簡単な問題を抱えていますが、かなり簡単な解決策があることを願っています。次のような関数があります。
function [dx] = myFunction(x)
x
は、システムの構成 (位置と運動量) を含む 4 つの要素をもつ列ベクトルです。ode45
次のように、この構成空間でいくつかの粒子を数値的に統合するために使用しようとしています。
[Tout,Yout] = ode45(@(x,t)myFunction(x),[t0 tfinal],x0);
これを試すたびに失敗し、次のエラーが表示されます。
Index exceeds matrix dimensions
Error in myFunction (line 9)
x2 = x(2);
ode45
は、期待される 4 つの要素のベクトルではなく、1 つの要素x=0
をに渡しています。これがインデックスエラーの原因です。なぜこれが起こっているのですか、どうすれば修正できますか? どうも使い方が間違っているようです。myFunction
myFunction
ode45