matlab中jacobian矩阵计算是符号矩阵,再如何对里面的符号变量赋数值?
matlab中jacobian矩阵计算后的结果似乎表示成符号矩阵,但是我用jacobian函数的目的是得到数值矩阵,如何对里面的符号变量赋数值?比如输入symsxyz;J...
matlab中jacobian矩阵计算后的结果似乎表示成符号矩阵,但是我用jacobian函数的目的是得到数值矩阵,如何对里面的符号变量赋数值?
比如输入syms x y z;
J=jacobian([3*x;2*y+3*z;x*z],[x y z])
matlab就给出结果
J =
[ 3, 0, 0]
[ 0, 2, 3]
[ z, 0, x]
但是我希望将上面这个矩阵的字母变量赋值,如令x=1,z=2,从而成为数值矩阵,如何处理? 展开
比如输入syms x y z;
J=jacobian([3*x;2*y+3*z;x*z],[x y z])
matlab就给出结果
J =
[ 3, 0, 0]
[ 0, 2, 3]
[ z, 0, x]
但是我希望将上面这个矩阵的字母变量赋值,如令x=1,z=2,从而成为数值矩阵,如何处理? 展开
2个回答
展开全部
方法:
syms x y z;
J=jacobian([3*x;2*y+3*z;x*z],[x y z])
subs(J,{x,z},{1,2})
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 ]
syms x y z;
J=jacobian([3*x;2*y+3*z;x*z],[x y z])
subs(J,{x,z},{1,2})
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 ]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询