0

更新リンクLE で指定されたリアプノフ指数を見つけようとしています。私の場合、次の式を使用して、それを理解し、理解しようとしています。これらは一連の常微分方程式です (これらは cos と sin を ODE として扱う方法をテストするためのものです)

f(1)=ALPHA*(y-x);
f(2)=x*(R-z)-y;
f(3) = 10*cos(x);

x=X(1); y=X(2); cos(y)=X(3);

f1 はdx/dt;f2dy/dtを意味し、この場合の f3 は になります-10sinx。ただし、x=X(1);y=X(2); と表現する場合、cos をどのように表現すればよいかわかりません。 cos、sin などの項を別の変数の関数として。

ode45 を使用してこれらの方程式を解く場合

[T,Res]=sol(3,@test_eq,@ode45,0,0.01,20,[7 2 100 ],10);

次のエラーがスローされます

??? (2) にアクセスしようとしました。index は正の整数または論理値でなければなりません。

Error in ==> Eq at 19
x=X(1); y=X(2); cos(x)=X(3); 
  1. 私の代理はx=X(1); y=X(2); cos(y)=X(3);大丈夫ですか?
  2. エラーを解決するには?ありがとうございました
4

1 に答える 1

1

いいえ、あなたの表現は完全に間違っています。この方法で値を設定することはできません! まず、関数X(3)に値を代入しようとしています。

まず、あなたが違いを理解しているかどうかわかりません

x=4

4=x

全く違う意味です。これを理解すれば、 を使用して代入できないことがわかりますcos(x)=X(3)

2 番目: 呼び出している関数は何sol()ですか? あなたはそれを定義しましたか?

3 番目に、matlab で使用する必要がある ODEdevalまたはsolve関数を解決または評価します。ヘルプ ファイルに例が示されているはずです。

于 2012-06-29T08:33:30.177 に答える