2016-11-01 8 views
1

は、我々はこのODEを持っているとしましょう:Sympy、何らかの形でODEの解を得るためにどのよう

19.6f(t) + 8.0\frac{d^2}{dt^2}f(t)=0

この方程式の解は、通常

f(t)=C_1sin(7\sqrt{5}t/10)+C_2cos(7\sqrt{5}t/10)

どれsympyが私に明らかに与えるものですが、代わりにこの形式で解決策が必要です。

f(t)=Acos(7\sqrt{5}t/10 + \phi)

定数をA、\phiとする。

この目標は、問題のシステムのディフェージングを調べることです。最後に

答えて

0

C_1C_2がちょうど幾何学的な問題であり、知られている場合

C_1*sin(x)+C_2cos(x) = A*cos(x + \phi)

を解決します。

cos(x) = sin(x+\frac{\pi}{2})で始まります。

https://mathoverflow.net/でこの質問をすることをお勧めします。あなたが尋ねるなら、ここに質問をリンクしてください。私は答えに不思議です。

1

この場合、C1 = -A*sin(phi)C2 = A*cos(phi)(これは身分証明書cos(x + y) = -sin(x)*sin(y) + cos(x)*cos(y)を調べることで解決できます)。だから、単純化を行う定数を交換する

In [19]: A, C1, C2, phi = symbols('A C1 C2 phi') 

In [20]: dsolve(9.6*f(t) + 8.0*f(t).diff(t, t), f(t)) 
Out[20]: 
      ⎛√30⋅t⎞   ⎛√30⋅t⎞ 
f(t) = C₁⋅sin⎜─────⎟ + C₂⋅cos⎜─────⎟ 
      ⎝ 5 ⎠   ⎝ 5 ⎠ 

In [21]: dsolve(9.6*f(t) + 8.0*f(t).diff(t, t), f(t)).subs({C1: -A*sin(phi), C2: A*cos(phi)}) 
Out[21]: 
        ⎛√30⋅t⎞    ⎛√30⋅t⎞ 
f(t) = - A⋅sin(φ)⋅sin⎜─────⎟ + A⋅cos(φ)⋅cos⎜─────⎟ 
        ⎝ 5 ⎠    ⎝ 5 ⎠ 

In [22]: trigsimp(dsolve(9.6*f(t) + 8.0*f(t).diff(t, t), f(t)).subs({C1: -A*sin(phi), C2: A*cos(phi)})) 
Out[22]: 
      ⎛ √30⋅t⎞ 
f(t) = A⋅cos⎜φ + ─────⎟ 
      ⎝  5 ⎠