2016-11-26 13 views
0

最終状態が与えられたシステムの初期状態と、システムのさまざまな側面の変化率を表す非線形微分方程式系を解くことは可能ですか?例えば常微分方程式の非線形システム

V_x' = n * cos(b) 
V_y' = (n * sin(b)) - (g_0 * (r_0/r)^2) 
b' = ((g_0 * (r_0/r)^2) * cos(b))/||V|| 

b_final = 0 
V_y_final = 0 
V_x_final = √((G×M)/r^2) 
  • V_xが水平速度
  • V_y推力/重量比
  • 地平線
  • n上記角度垂直速度
  • bさでありますr_0は惑星の半径
+1

これは、[math.stackexchange.com](http://math.stackexchange.com/)に適しています。 – qxz

+0

これは完全なシステムであると確信していますか?正しい 'r(t)'を得るためには、位置も必要です。そして、おそらくあなたは惑星表面上で始める条件を課すでしょう。問題は**境界値問題(BVP)**になります。また、目標の高さを含める場合は、時間間隔を可変にする必要があります。時間間隔はBVPに変換できます。 – LutzL

+0

Hmmm ...だから、r '(t)はv * sin(beta)に等しい垂直速度です。目標の高さは、例えば200kmです。惑星の半径は3,840 km、g_0 = 9.81 m/s2です。 –

答えて

1

はい、前方への積分と同じくらい簡単です。実際には、与えられたy(tf)=yft in [t0,tf]y'=f(t,y)のために、あなたは

  1. )正式に負のステップサイズを採用)を微分方程式z'(s)=-f(tf-s,z(s))、または

  2. を満たすz(s)=y(tf-s)を考慮することにより、時間方向を変更することができ、ほとんどの標準インテグレータでは、サンプリング時間のリストを降順で(例えば、T, Z = ode45(odefunc, [tf, t0], yf))渡すことで実現できます。私がドキュメントで見つけた唯一の制限は、時間リストがすべて一方向になければならず、リスト内で反転しないことです。

+0

Hmmm ...これを行うPythonコードの例を教えてください。 –