【问题标题】:Python insert values for sympy.Function inside a matrixPython 在矩阵中插入 sympy.Function 的值
【发布时间】:2020-02-07 09:41:20
【问题描述】:

你好,

我已经定义了多个带有时间相关角的 sympy 矩阵。

import sympy as sym
R1xI = sym.Matrix([ [1,0,0],
                    [0,sym.cos(sym.Function('phiSA')(t)),-sym.sin(sym.Function('phiSA')(t))],
                    [0,sym.sin(sym.Function('phiSA')(t)),sym.cos(sym.Function('phiSA')(t))]]);

R1yI = sym.Matrix([ [sym.cos(sym.Function('phiSE')(t)),0,sym.sin(sym.Function('phiSE')(t))],
                    [0,1,0],
                    [-sym.sin(sym.Function('phiSE')(t)),0,sym.cos(sym.Function('phiSE')(t))]]);

R1zI = sym.Matrix([ [sym.cos(sym.Function('phiSR')(t)),-sym.sin(sym.Function('phiSR')(t)),0],
                    [sym.sin(sym.Function('phiSR')(t)),sym.cos(sym.Function('phiSR')(t)),0],
                    [0,0,1]]);

#       Combine the 3 rotations
R1I=np.asmatrix(np.dot(np.dot(R1xI,R1yI),R1zI));

我使用 sympy 是因为这个矩阵有多个计算步骤,我想以代数方式执行(乘法、时间推导,因此角度必须取决于时间)。

现在我已经完成了代数计算,想为这个角度插入实数值。

有没有一种可能的方法来插入它们,或者有没有比使用 sym.Function 更好的方法来根据变量执行推导?

感谢您的建议

【问题讨论】:

  • 我已从 sym.Function 更改为 sympy.physics.mechanics 的 dynamicsymbols 但仍然无法插入值

标签: python-3.x matrix sympy derivative


【解决方案1】:

也许留在 SymPy 而不是转换为 numpy:R1I = R1xI.dot(R1yI).dot(R1zI),然后使用 R1I.subs(old, new),其中 old 是您要替换的值,new 是您希望它具有的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多