一个函数,变量和参数作为 fminunc 函数的参数



我正在尝试在matlab中使用fminunc函数来解决一个不受约束的最小化问题。此函数具有以下格式

[x,f] = fminunc (@fun,x0);

在这里,定义的乐趣是fminunc作为目标函数的输入。但是,我的有趣函数的格式如下

[fval] = fun (x1,x2,a,b,c)

其中 $x 1$ 和 $x 2$ 是要求解的向量变量,$a$,$b$ 和 $c$ 只是参数。我编写了如下代码来解决这个问题,

L = @(x1,x2)fun(x1,x2,a,b,c)
x0 = [x10; x20];
[x,f] = fminunc(L,x0);

但是,它收到错误说"输入参数不够"。有没有人知道为什么会这样?

你的实现不起作用,因为你应该提交一个依赖于向量x的函数,而不是一堆变量 x1、x2。

应将函数定义替换为以下内容:

 L = @(x)fun(x,a,b,c)

在函数定义中使用 x(1( 和 x(2( 而不是 x1 和 x2。

相关内容

  • 没有找到相关文章

最新更新