【发布时间】:2020-11-26 00:04:58
【问题描述】:
我有一个这样的 3D 旋转矩阵:
R = sp.Matrix([
[ sp.cos(q1 + q2), -sp.sin(q1 + q2), 0],
[-sp.sin(q1 + q2), sp.cos(q1 + q2), 0],
[ 0, 0, 1]
])
其中 q1 和 q2 是角度。其中之一,q2(t) 是时间的函数,它会发生变化。我怎么能说同情呢?
我想随着时间的推移区分该矩阵,但我不知道该怎么做。
这就是我宣布一切的方式:
q1, q2, t = sp.symbols('q1 q2 t', real=True)
R = sp.Matrix([
[ sp.cos(q1 + q2), -sp.sin(q1 + q2), 0],
[-sp.sin(q1 + q2), sp.cos(q1 + q2), 0],
[ 0, 0, 1]
])
sp.diff(R, t)
这是我从sp.diff(R, t) 得到的输出:
我手动计算了与 R(按 t)的差异,因此我想在 SymPy 中得到类似的东西:
【问题讨论】:
-
您可以定义
q2 = sp.Function("q2", real=True)(t),而无需对您的代码进行其他更改。您还可以定义支持牛顿符号的q2 = sp.physics.vector.dynamicsymbols("q2", real=True);有关打印详细信息,请参阅此答案:stackoverflow.com/questions/25346132/…
标签: python sympy linear-algebra