Error using fmincon (line 816), Hessian option set to 'on' but no Hessian function provided in optio

Error using fmincon (line 816), Hessian option set to 'on' but no Hessian function provided in options HessFcn nor in HessMult


解决方案在options = optimset('GradObj','on', 'Hessian','on');前面加上'Algorithm','trust-region-reflective' 

options = optimset('Algorithm','trust-region-reflective' ,'GradObj','on', 'Hessian','on');亲测可用


http://www.mathworks.com/matlabcentral/answers/154689-fmincon-in-matlab-2014a

### FMINCON 初始目标函数评估失败解决方案 当遇到 `FMINCON` 的初始目标函数评估失败时,这通常意味着所提供的起始点无法满足约束条件或是存在其他输入错误。为了有效处理此类问题并找到合适的解法,可以采取以下措施: #### 1. 验证输入参数的有效性 确保传递给 `FMINCON` 函数的所有变量都具有合理的数值范围,并且这些值确实存在于定义域内[^1]。 ```matlab % 定义边界和其他必要选项前先验证数据有效性 if ~isfinite(x0) || any(~isfinite(lb)) || any(~isfinite(ub)) error('Input parameters must be finite.'); end ``` #### 2. 调整初值设置 如果可能的话,尝试改变初始化猜测向量 `x0` 来避开可能导致计算不稳定性的区域;也可以考虑缩小上下限之间的差距来帮助算法更快收敛于可行区域内[^2]。 #### 3. 使用更宽松的终止准则 适当放宽某些控制精度的标准(如梯度容忍度),使得求解器能够在不违反主要限制的情况下继续运行直到获得更好的估计结果[^3]。 ```matlab options = optimoptions(@fmincon, 'Algorithm', 'sqp',... 'FunctionTolerance', 1e-8,... 'ConstraintTolerance', 1e-6); [x,fval] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,[],options); ``` #### 4. 启用诊断模式 启用详细的输出显示可以帮助识别具体在哪一步骤发生了异常情况,从而为进一步调试提供线索[^4]。 ```matlab dispOpt = struct('Display','iter'); [x,fval] = fmincon(... , dispOpt); % 将上述省略部分补充完整即可 ``` 通过以上方法应该能够有效地减少甚至消除由于不当配置所引起的 `FMINCON` 初始化阶段的目标函数评价失败现象。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值