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

时间:2018-04-20 03:23:15

标签: matlab convex-optimization fminsearch

我试图在matlab中使用fminunc函数来解决无约束的最小化问题。此函数的格式为

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

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

[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);

然而,它有错误说'输入参数不够'。有没有人对为什么会这样发生任何想法?

1 个答案:

答案 0 :(得分:1)

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

您应该通过以下方式替换您的函数定义:

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

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