如果输入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 ]