我在Matlab中有以下功能:
f = @(x)[x(1,:)+2*x(2,:)+x(3,:);x(1,:).^3+x(2,:).^2+3*x(3,:)]
如何在Matlab中找到该函数的雅可比矩阵?
我尝试过使用jacobian函数,但是我没有让它适用于这个特定的函数。有人可以用正确的论据帮助我吗?
答案 0 :(得分:2)
正如@dasdingonesin已经写过的那样,你需要使用这样的符号工具箱:
syms x y z;
f = [x+2*y+z, x^3+y^2+3*z];
gradf = jacobian(f, [x,y,z])
这导致:
gradf =
[ 1, 2, 1]
[ 3*x^2, 2*y, 3]
顺便说一下:如果你需要求解器中的jacobian,你可以使用matlabFunction
将该符号函数转换回常规MATLAB函数。关于这个主题available还有一个很好的教程。