python - 如何告诉 SymPy 变量是时间的函数?
问题描述
我有一个这样的 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 中得到类似的东西:
解决方案
您需要将q1
and声明q2
为未定义的函数,然后R
在点计算的矩阵中使用它们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)
推荐阅读
- python - PyQt5 QMainWindow,QDockWidget,根据屏幕尺寸调整自动尺寸
- python - 无法将值附加到 Python 中 Leetcode 上不同函数的列表中
- python - 字段留空时出错:以 10 为基数的 int() 的文字无效
- android - 如何将持有人项目值放入新数组?
- python-3.x - 如何从 items.py 获取/导入 Scrapy 项目列表到 pipelines.py?
- linux - 如何阻止 sed 插入换行符?
- spring-mvc - 在 Spring Boot 应用程序中使用 JSP 和 Thymeleaf 视图
- java - 用于查找两个字符串之间的最短路径的数据结构
- java - 按 n 小时的数据包分组
- python - 从linkedin添加连接的Python脚本