Dx=y
Dy=-k*y-x^3+9.8*cos(t)
inits=('x(0)=0,y(0)=0')
これらは、私がプロットしたかった微分方程式です。
まず、微分方程式を解いてグラフをプロットしてみました。
Dsolve('Dx=y','Dy=-k*y-x^3+9.8*cos(t)', inits)
このように、しかし、このシステムには明確な解決策はありませんでした。
今私は立ち往生しています:(
方程式を解かずに、このシステムをどのようにプロットできますか?
Dx=y
Dy=-k*y-x^3+9.8*cos(t)
inits=('x(0)=0,y(0)=0')
これらは、私がプロットしたかった微分方程式です。
まず、微分方程式を解いてグラフをプロットしてみました。
Dsolve('Dx=y','Dy=-k*y-x^3+9.8*cos(t)', inits)
このように、しかし、このシステムには明確な解決策はありませんでした。
今私は立ち往生しています:(
方程式を解かずに、このシステムをどのようにプロットできますか?
まず、解きたい微分方程式を定義します。t
現在の時刻と現在の位置の 2 つの引数を取りx
、列ベクトルを返す関数である必要があります。x と y の代わりに and を使用x(1)
しx(2)
ます。
k = 1;
f = @(t,x) [x(2); -k * x(2) - x(1)^3 + 9.8 * cos(t)];
解決するタイムスパンと初期条件を定義します。
tspan = [0, 10];
xinit = [0, 0];
を使用して方程式を数値的に解きますode45
。
ode45(f, tspan, xinit)
これにより、次のプロットが得られます。
ある時点での解の値を取得したい場合は、いくつかの出力引数を求めるだけです。
[t, y] = ode45(f, tspan, xinit);
次のようにして、 yに対する位相の肖像xをプロットできます。
plot(y(:,1), y(:,2)), xlabel('x'), ylabel('y'), grid
これにより、次のプロットが得られます