#python #sympy #symbolic-math
#python #sympy #символьный-математический
Вопрос:
В моем коде мне нужно заменить ВСЕ выражения из sin(g(t))
( g
являющиеся непрерывной функцией) на g(t)
(это приближение с ограниченным углом наклона). Это пример того, что я получаю из своего кода:
-29.4*sin(2*t) - 19.6*sin(f(t)) 4.0*Derivative(f(t), t)**2
Мне нужно заменить оба sin(f(t))
и sin(2*t)
. Не только один из них и sin(2*t)
меняется, ( sin(f(t))
всегда один и тот же). Есть ли более простой способ, чем добавление дополнительной переменной для того, что находится внутри sin
или ее там нет?
Ответ №1:
Это то, что вы пытаетесь сделать?
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