我有一个这样的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)是时间的函数,它随时间变化。我该如何告诉sympy?
我想随时间区分该矩阵,但我不知道该怎么做。
那就是我宣布一切的方式:
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中获得如下信息:
您需要将q1
和声明q2
为未定义函数,然后将其用于R
在point计算的矩阵中t
。
import sympy as sp
t = sp.symbols('t', real=True)
q1 = sp.Function('q_1')
q2 = sp.Function('q_2')
R = sp.Matrix([
[ sp.cos(q1(t) + q2(t)), -sp.sin(q1(t) + q2(t)), 0],
[-sp.sin(q1(t) + q2(t)), sp.cos(q1(t) + q2(t)), 0],
[ 0, 0, 1]
])
sp.diff(R, t)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句