Код: Выделить всё
cos(x**2 + pi)
< /code>
Это, к сожалению, упрощается до -cos (x ** 2), если только оценка = false не используется в определении (см. Ниже). Тем не менее, когда я это делаю, я не могу получить правильную производную композитной функции: < /p>
Рассмотрим код ниже, который определяет две функции, а затем стремится вычислять производную вложенной функции в другом порядке < /p>
import sympy as sym
x = sym.symbols('x')
fx = x**2 + sym.pi
gx = sym.cos(x)
f_gx = gx**2 + sym.pi
print(f' f_gx = {f_gx} ')
g_fx = sym.cos( x**2 + sym.pi, evaluate = False)
print(f' g_fx= {g_fx} ')
f_gx_der = sym.diff(f_gx, x)
print(f'the composite function {f_gx} has a derivative {f_gx_der }')
g_fx_der = sym.diff(g_fx, x)
print(f' the composite function {g_fx} has a derivative {g_fx_der }')
. Я на самом деле получил помощь в аргументе «Оценка» в функции, чтобы Sympy не упростила G_FX в первую очередь, но она все еще не заботится и использует упрощенную версию на вычислении производной < /p>
Код: Выделить всё
expected derivative of g_fx_der = -2*x*sin(x**2 + pi)
actual derivative returned g_fx_der = 2*x*sin(x**2)
< /code>
Что здесь происходит? Как я могу избежать этой проблемы с расчетом производной, игнорирующего PI в тригонометрической функции и упростить ее до -cos (x ** 2)
Подробнее здесь: https://stackoverflow.com/questions/795 ... calculatin