Matlab 无约束优化

Matlab 无约束优化,matlab,optimization,Matlab,Optimization,您能帮我运行代码吗?将f转换为函数句柄 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,exitfl

您能帮我运行代码吗?

f
转换为函数句柄

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
然后用

fun = @(x) exp(x(1)) * (4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + 1);

作为旁注,永远不要从目标函数中调用
fminunc

是否尝试运行代码?如果是,那么你在哪里被卡住了,不得不把问题贴出来?我陷入了错误“输入参数x未定义”Thnx,在objfun之外定义fiminunc时,我在[x,fval,exitflag,output]=fminunc(@objfun,x0,options),此语句不在任何函数内。请应用我编写的更改并将代码作为脚本运行。更正后,我发现此错误“此语句不在任何函数内”。我无法重现您的问题。在清除所有后,尝试从工作区运行它(与作为脚本运行相同)。好的,也许我得到了它。不能在脚本中定义函数,因此如果要将目标函数保持为单独的函数,必须将其声明为嵌套函数。
[x,fval,exitflag,output] = fminunc(fun,x0,options);