1

我是 MATLAB 新手,我正在尝试运行优化工具箱。在运行代码时,

function f = objfun(x)
f = exp(x(1))*(4*(x(1)^2)+2*x(2)^2);

x0 = [-1,1];
options = optimset('LargeScale','off');
[x,fval,exitflag,output] = fminunc(@objfun,x0,options);

我收到以下错误,

???输入参数“x”未定义。

==> 平方在 2 处的错误
f = exp(x(1)) (4 (x(1)^2)+2*x(2)^2);

请帮我指出我所缺少的..

提前谢谢了 !

4

1 回答 1

2

我无法重现该错误。也许它与您设置代码或将其写入函数的方式有关?

当我将以下内容放入文件并将其保存为“testJugeshOptimization.m”时:

function x = testJugeshOptimization

x0 = [-1,1];
options = optimset('LargeScale','off');
[x,fval,exitflag,output] = fminunc(@objfun,x0,options);

%% subfunction objfun
function f = objfun(x)
f = exp(x(1))*(4*(x(1)^2)+2*x(2)^2);

并将函数运行为

x = testJugeshOptimization

我得到结果

Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.

<stopping criteria details>


ans =

   1.0e-07 *

   -0.1679    0.0773
于 2012-12-31T04:04:10.990 回答