符号表达式中变量的隔离

2024-10-06 11:17:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个把符号拉格朗日方程转换成哈密顿方程的函数。我遇到的一个问题是用动量项代替质量*速度项

我有一行代码返回所有动量项:

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。我很好奇是否有办法隔离符号项或者去掉符号项前面的常量


Tags: 函数代码示例质量符号单位矩阵动量
1条回答
网友
1楼 · 发布于 2024-10-06 11:17:29

当你说“去掉常数”时,我想你的意思是你想让1.0消失。一种方法是在矩阵上使用nsimplify

>>> m
Matrix([[1.0*m*v**2]])
>>> nsimplify(m, rational=True)
Matrix([[m*v**2]])

相关问题 更多 >