0

Mathematica のNDSolve関数について質問があります. 次の 2 つの式で定義されたオシレーターがあります。

x' = v
v' = -x - u*v^3

ここで、u は定数です。

これを解決する NDSolve を作成するには? 次のコードを試しました(時間に依存する必要があります)が、機能しません:

eq1 = x'[t] == v;
eq2 = v' == -x[t] - u*v^3;
eq3 = x[0] == 2;

(初期変位は 2m)。

s = NDSolve[{eq1, eq2, eq3}, x, {t, 0, 30}]

どうもありがとうございました...

4

2 に答える 2

1

の数値uと の初期条件を指定する必要がありv[t]ます。

u=1.0;
solution=NDSolve[{x'[t]==v[t], v'[t]==-x[t]-u v[t]^3,x[0]==2,v[0]==-1},{x,v},{t,0,1}]

Plot[{solution[[1,1,2]][t],solution[[1,2,2]][t]},{t,0,1}]

ここに画像の説明を入力

于 2012-04-29T18:07:16.680 に答える
1

について一度微分した最初の方程式をt使用して を代用できることに注意する必要がありv[t]ます。しかし、2 番目の方程式は 2 次の ODE になり、別の追加の初期条件を指定する必要があります。あげます

v[0]==x'[0]==some number

次に、この ODE を解いてx回復できるようにした後、幾何学的に状況が明確になるようv[t]==x'[t] に、a の観点から解を示します。Manipulate

(* First equation *)
v[t] = x'[t];
(* 
   Differentiate this equation once and substitute 
   for v[t] in the second equation
*)
Manipulate[
With[{u = Constant, der = derval}, 
     res = NDSolve[{x''[t] == -x[t] - u*x'[t]^3, x[0.] == 2,x'[0.] == der},
     x, {t, 0., 30.}] // First; 
     Plot[Evaluate[{x[t], v[t]} /. res], {t, 0, 30}, PlotRange -> All,
     Frame -> True,Axes -> None, ImageSize -> 600]
   ],
{{Constant, 0.,TraditionalForm@(u)}, 0.,3, .1},
{{derval, -3., TraditionalForm@(v[0] == x'[0])}, -3, 3, .1}
]

ここに画像の説明を入力

これがお役に立てば幸いですが、次回質問する前に、まず理論をブラッシュアップする必要があります。あなたが質問した質問は、Mathematica プログラミングではなく、非常に基本的で初歩的な数学に関するものであることがわかります。幸運を!!

于 2012-04-29T18:28:46.423 に答える