2017-10-30 8 views
1
q1 = Function('q1')(t) 
f=cos(q1).diff(t) 
f.subs(q1,pi/2) 

私にはfunction f = -sin(q1)*q1'があります。q1=pi/2と評価したいと思います。私は答えを得ることを期待する: - (q1) 'しかし、代わりに私は得る:-0。 q1は現在定数になっているので、パラメータq1は代入されるだけでなく、時間微係数もゼロになります。 ここで間違った方法を使用していますか?sympy不正な置換による置換

答えて

0

この例では、定数関数であるq1(t) = pi/2を置換しようとしているため、Sympyの置換は正解を与えています。したがって、その導関数は0にバインドされています。答え-Derivative(q1(t),t)は、q1q1'がばら積みのように互いに独立している場合にのみ正しいです。その場合は、q1の場合とq1'の場合の2つの異なる変数を使用する方がよいでしょう。我々はすでに機能fを知っているのであれば、q1q1'は相互に独立している場合は代用する正しい方法でなければなりません

p, q, t = symbols('p, q, t') 
f = -sin(p)*q  
f.subs(p, pi/2) 

このようにそれを導出しようとするよりも、直接ではなく、それを定義することをお勧めします。

+0

私は最初に「q1」を置き換えて、「q1」を置き換えることができることを知りました。私は関数を直接定義することはできません。なぜなら、sympyによって導かれていて、それは面倒なものだからです。 –

+0

はい。変動型計算の計算では、このアプローチが効果的です。 –

関連する問題