function f = objfun(x)
f = exp(x(1)) * (4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + 1);
x0=[-1,1];
options = optimoptions(@fminunc,'Algorithm','quasi-newton');
[x,fval,exitflag,output] = fminunc(@objfun,x0,options);
x,fval,exitflag,output
end
你可以帮我运行代码吗?
答案 0 :(得分:2)
将f
转换为函数句柄
fun = @(x) exp(x(1)) * (4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + 1);
然后使用
调用fminunc
[x,fval,exitflag,output] = fminunc(fun,x0,options);
作为旁注,请不要永远从目标函数中调用fminunc
。