У меня есть функция, которая преобразует символические уравнения Лагранжа в гамильтоновы уравнения.Один из аспектов, с которым у меня возникают проблемы, - это замена члена массы * скорости на член импульса.
У меня есть строка кода, которая возвращает все члены импульса:
momentum = lagrangian.jacobian(velocity)
, которая возвращает символическую матрицу с ячейками массы * пример скорости:
>>> momentum
Matrix([[0, 0, 1.0*m_1*xd2, 1.0*m_1*yd2, 1.0*m_2*td1, 1.0*m_2*td2]])
Когда я пытаюсь заменить импульсное символическое «p» для каждого члена, функция sympy.subs не идентифицирует ни одно из массовых * скоростей.Я считаю, что это из-за константы 1,0 в выражении.Мне было любопытно, есть ли способ выделить символические термины или удалить константу перед символическими терминами.