以变量和参数作为 fminunc 函数参数的函数
A function with variables and parameters as arguments of fminunc function
我正在尝试在 matlab 中使用 fminunc 函数来解决无约束最小化问题。此函数的格式为
[x,f] = fminunc (@fun,x0);
这里,定义的 fun 是 fminunc 作为 objective 函数的输入。但是,我的有趣函数的格式如下
[fval] = fun (x1,x2,a,b,c)
其中 $x1$ 和 $x2$ 是要求解的向量变量,$a$、$b$ 和 $c$ 只是参数。我写了如下代码来解决这个问题,
L = @(x1,x2)fun(x1,x2,a,b,c)
x0 = [x10; x20];
[x,f] = fminunc(L,x0);
但是,出现错误 'The input arguments are not enough'。有人知道为什么会这样吗?
您的实现不起作用,因为您应该提交一个依赖向量 x
的函数,而不是一堆变量 x1、x2。
您应该用以下内容替换您的函数定义:
L = @(x)fun(x,a,b,c)
在函数定义中使用 x(1) 和 x(2) 而不是 x1 和 x2。
我正在尝试在 matlab 中使用 fminunc 函数来解决无约束最小化问题。此函数的格式为
[x,f] = fminunc (@fun,x0);
这里,定义的 fun 是 fminunc 作为 objective 函数的输入。但是,我的有趣函数的格式如下
[fval] = fun (x1,x2,a,b,c)
其中 $x1$ 和 $x2$ 是要求解的向量变量,$a$、$b$ 和 $c$ 只是参数。我写了如下代码来解决这个问题,
L = @(x1,x2)fun(x1,x2,a,b,c)
x0 = [x10; x20];
[x,f] = fminunc(L,x0);
但是,出现错误 'The input arguments are not enough'。有人知道为什么会这样吗?
您的实现不起作用,因为您应该提交一个依赖向量 x
的函数,而不是一堆变量 x1、x2。
您应该用以下内容替换您的函数定义:
L = @(x)fun(x,a,b,c)
在函数定义中使用 x(1) 和 x(2) 而不是 x1 和 x2。