matlab里实现求sin(theta)对时间t的导数/求机构中的雅各比矩阵

如果输入diff(sin(theta)),则返回cos(theta),若输入diff(sin(theta), t),则返回0,而实际的结果却应该是cos(theta)*theta’。请问怎样设置才能出现这个结果呢?

syms theta(t)
diff(sin(theta))

返回的结果

ans(t) = cos(theta(t))*diff(theta(t), t)

MATLAB中jacobian是用来计算Jacobi矩阵的函数。

syms r l f

x=r*cos(l)*cos(f);

y=r*cos(l)*sin(f);

z=r*sin(l);

J=jacobian([x;y;z],[r l f])

结果:

J =

[ cos(l)*cos(f), -r*sin(l)*cos(f), -r*cos(l)*sin(f)]

[ cos(l)*sin(f), -r*sin(l)*sin(f), r*cos(l)*cos(f)]

[ sin(l), r*cos(l), 0 ]

Guess you like

Origin blog.csdn.net/Aristotle__/article/details/121093963