首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为fmincon提供Hessian

为fmincon提供Hessian
EN

Stack Overflow用户
提问于 2015-03-11 20:58:52
回答 1查看 1.3K关注 0票数 1

我试图通过提供梯度向量和Hessian矩阵来帮助fmincon更快地收敛。我正在使用内点算法,我意识到在这种情况下,我必须使用对另一个函数的调用来提供Hessian,该函数被分配给我的OPTIOINS的HessFcn。我还意识到fmincon的黑森函数是拉格朗日函数的二阶导数,如方程14-1中描述的here。在计算hessian函数时,我应该使用以下函数定义来访问我的拟合参数和lambda

代码语言:javascript
复制
hessian = hessianfcn(x, lambda)

从这一点上来说,我有一些困难来弄清楚程序。虽然我的问题有线性约束和上下限,但lambda结构是空的,即每当我试图从hessianfcn访问它时,它都会返回:

代码语言:javascript
复制
lambda = 
        eqnonlin: [0x1 double]
      ineqnonlin: [0x1 double]

你知道怎么解决这个问题吗?

附注:我正在按照here给出的说明进行操作,直到我故意用一些随机的线性约束替换非线性约束,然后我又会遇到同样的问题(空的λ结构)。

EN

回答 1

Stack Overflow用户

发布于 2015-07-12 18:12:20

lambda不是一个直接的值,而是一种可以访问许多信息的结构。Matlab告诉你,当前在lambda中有两个值。通过以下方式选择您需要的

代码语言:javascript
复制
lambda.eqnonlin(1)
lambda.ineqnonlin(1)

Here是使用用户提供的hessian的一个示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28987238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档