2017-05-21 6 views
1

を返しますので、私はすなわち単振動の非常に単純なケースを解決するためにsympyのdsolve機能を使用しようとしました:は単振動のためsympy dsolveを使用すると、間違った解決策

私のようなので、これをしなかった:

:私が行うと
w = sympy.symbols('ω', real = True, positive=True, nonzero=True) 
t = sympy.symbols('t', real = True) 
x = sympy.symbols('x') 

eq = sympy.diff(sympy.diff(x(t), t), t) + w**2*x 

sympy.pprint(sympy.dsolve(eq, x(t))) 

は、私は、次の解決策を得ます

私は期待通りにまたはの代わりに。

これはなぜですか?

答えて

2

d.e.を定義していません。正しく。それはあなたがより読み.diff方法、それを解決し

eq = x(t).diff(t,2) + w**2*x(t) 
+0

おかげで、使用することができます

eq = sympy.diff(sympy.diff(x(t), t), t) + w**2*x(t) 

注意する必要があります。 – SomeRandomPhysicist

+0

私はそれを操作することができるように、それ自身のソリューションをどのように抽出するのですか?私はxの解の方程式を分離することはできません。 – SomeRandomPhysicist

+1

@SomeRandomPhysicist 'sympy.dsolve'の出力を' sol'とします。 'sol'はsympyオブジェクトです。平等の右辺を抽出するには、 'sol.args [1]'を使います。 ' – Stelios

関連する問題