У меня есть этот код:
import sympy as *
from sympy.abc import t
init_printing(pretty_print=False)
theta = Function('theta')(t)
A = Matrix([theta, 1, cos(theta)])
A.diff().subs([(theta, 1), (theta.diff(), 2)])
Я ожидал, что выходной сигнал будет
>>> Matrix([
[ 2],
[ 0],
[-sin(1/2)]])
Вместо этого он был
>>> Matrix([
[ Derivative(1, t)],
[ 0],
[-sin(1/2)*Derivative(1, t)/2]])
Однако вывод указан что Derivative(theta, t)
было заменено на Derivative(1, t)
, что очень странно. Что еще интереснее, если я заменю последнюю строку на A.diff().subs(theta.diff(), 2).subs(theta, 1)
, вывод будет правильным. Подстановка должна быть в этом порядке, чтобы получить желаемый результат. Почему я не смог использовать первоначальный подход и есть ли лучший обходной путь?