You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MATLAB fmincon内点法求解凸优化时报错如何解决?

报错原因

fmincon的interior-point(内点法)算法迭代过程中,optimValues结构体不包含searchdirection字段,你的输出函数outfun中强制读取该字段,就会触发底层barrier函数的运行错误。而sqp、active-set等算法的optimValues内置了搜索方向字段,所以可以正常运行。

解决方法

  • 方法1:给搜索方向记录逻辑加字段存在性判断,修改outfun中对应代码即可适配所有算法:
% 替换原有的搜索方向记录代码
if isfield(optimValues, 'searchdirection')
    searchdir = [searchdir; optimValues.searchdirection'];
end
  • 方法2:如果你需要完整记录搜索方向,直接使用你测试正常的sqp、active-set算法即可,只需修改optimoptions中Algorithm参数的取值。
  • 额外优化建议:删除函数开头的clear;clc;语句,函数工作区和全局工作区天然隔离,此处的clear会无意义清空当前函数内已定义的变量,容易引发隐藏问题。

内容的提问来源于stack exchange,提问作者马时杰

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:06:04