我需要为非线性问题计算雅可比行列式,f(x)= 0,其中f(x)是这些非线性方程组的系统:
x^5 + y^3*z^4 + 1;
x^2*y*z;
z^4-1;
我需要在Matlab2009中为这个非线性方程组计算雅可比J(x)。使用这些命令后:
syms x y z
jacobian([x^5 + y^3*z^4 + 1 ; x^2*y*z ; z^4-1 ;],[x; y; z])
我明白了:
ans =
[ 5*x^4, 3*y^2*z^4, 4*y^3*z^3]
[ 2*xyz, x^2*z, x^2*y]
[ 0, 0, 4*z^3]
我该如何评估?关于这个例子的注释是(注意,对于z = 0,雅可比矩阵是奇异的)...我该怎么做?
答案 0 :(得分:1)
好吧,你可以自己编写jacobian的代码:
J = @(x,y,z) [ 5*x.^4, 3*y.^2.*z.^4, 4*y.^3*z.^3; ...
2*x.*y.*z, x.^2.*z, x.^2.*y; ...
0, 0, 4*z.^3];
或使用matlabFunction
syms x y z;
J = matlabFunction(jacobian([x^5 + y^3*z^4 + 1 ; x^2*y*z ; z^4-1 ;],[x; y; z]));
然后,您可以通过J(1,2,3)
评估它。