我正在尝试使用MATLAB来查找
的关键值f(x,y) = (y-2)ln(xy)
diff(f,x) = (y - 2)/x = 0
diff(f,y) = log(x*y) + (y - 2)/y = 0
手动求解上述2个方程和2个未知数,得到x = 1/2和y = 2.但是如何让MATLAB得到这个结果呢?
答案 0 :(得分:1)
如果你真的想用fsolve解决这个问题,你可以这样做:
o = optimoptions('fsolve','MaxFunEvals',1e5,'MaxIter',1e5);
x0 = [.9;2.1]; % Note this IS SENSITIVE to the starting location!
f = @(x) [(x(2) - 2) / x(1); log(x(2)) + log(x(1)) + 1 - 2/x(2)];
x = fsolve(f,x0, o)