我被要求在MatLab中做Jacobian来解决f(x)的最高值的坐标以及同一函数的最大值。
我必须使用的功能是:f(x; y) = (x^3y + 5x^2y^2)/ e^(x^2+3y^4)
所以到目前为止我所取得的成就:
function [j1,j2]=J(x)
[3*x(1)^2+20*x(1)*x(2)-36*x(1)^2*x(2)^4-120*x(1)*x(2)^5,10*x(1)^2-48*x(1)^3*x(2)^3-300*x(1)^2*x(2)^4;6*x(1)*x(2)+10*x(2)^2-8*x(1)^3*x(2)-30*x(1)^2*x(2)^2,3*x(1)^2+20*x(1)*x(2)-2*x(1)^4-20*x(1)^3*x(2)]
end
我相信这是一个矩阵,包括f(x)
的所有四个导数。 Nut现在我不知道如何解决我的两个问题。
答案 0 :(得分:0)
答案已经在评论中给出,以确保问题不会无法解决,我将在此发布:
首先我把jocobian matris写成
function A = J(x) j11 = 6*x(1)*x(2)+10*x(2)^2-8*x(1)^3*x(2)-30*x(1)^2*x(2)^2;
j12 = 3*x(1)^2+20*x(1)*x(2)-2*x(1)^4-20*x(1)^3*x(2);
j21 = 3*x(1)^2+20*x(1)*x(2)-36*x(1)^2*x(2)^4-120*x(1)*x(2)^5;
j22 = 10*x(1)^2-48*x(1)^3*x(2)^3-300*x(1)^2*x(2)^4; A = [j11, j12;j21, j22];
end
然后我用这个函数来估计关键点
function xnp1 = NewtonMultyVar(x0,N);
xn = x0;
for n = 1:N
xnp1 = xn - inv(J(xn))*z(xn);
xn = xnp1;
end
end
其中x0
是近似点而N
代表数字符号。