2016-10-23 4 views
1

私のコードでは、sin(g(t))の式をg(t)に代入する必要があります(これはタイトな角度近似です)これは私が罪(F(T))と罪(2 * t)との両方を置き換える必要があり、私は私のコードSympyを使ってパターンを代用する方法

-29.4*sin(2*t) - 19.6*sin(f(t)) + 4.0*Derivative(f(t), t)**2 

から何を得るのサンプルだけではなく、そのうちの一つと罪(2 * t)が変化します、[sin(f(t))は常に同じです]。罪の中にあるもののために余分な変数を追加するより簡単な方法がありますか、そこにはありませんか?

答えて

3

これはあなたがやろうとしていることですか?

import sympy as sp 

t = sp.symbols('t') 
f = sp.Function('f') 

expr_v1 = -29.4*sp.sin(2*t) - 19.6*sp.sin(f(t)) + 4.0*sp.Derivative(f(t), t)**2 
print('expr_v1 = ', expr_v1) 

expr_v2 = expr_v1.replace(sp.sin, lambda *args: args[0]) 
print('expr_v2 = ', expr_v2) 
expr_v1 = -29.4*sin(2*t) - 19.6*sin(f(t)) + 4.0*Derivative(f(t),t)**2 
expr_v2 = -58.8*t - 19.6*f(t) + 4.0*Derivative(f(t), t)**2 
関連する問題