如何在Matlab中评估雅可比3x3矩阵?

时间:2015-02-03 14:09:08

标签: matlab

我需要为非线性问题计算雅可比行列式,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,雅可比矩阵是奇异的)...我该怎么做?

1 个答案:

答案 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)评估它。