Yalmip用sdqsettings设置求解器参数详解

最近在使用yalmip时发现对于求解器及结果的设置基本都在sdqsettings中实现。在网上查相关信息时发现基本都是残缺的,于是决定写个稍微全面的关于sdqsettings参数设置。(其实就是官方文档翻译归纳了一下,主要还是自己学习用)
官方文档

1、yalmip的语法:
options = sdpsettings('field',value,'field',value,...)
sdpsettings内的写法有点类似键值对的写法,每个参数名后面必须写上对应的值
optimize(Constraints, Objective, options)
调用相应求解器求解时需要的三个参数。Constraints包含模型的所有约束条件,Objective即目标函数,options即对求解器相关参数的设置。

yalmip允许将已有的设置作为sdpsettings的第一个参数
ops = sdpsettings('solver','sdpa'); /设置求解器
ops = sdpsettings(ops,'verbose',0); /将上一行的ops设置为第一个参数

也可以利用.对ops进行设置
ops = sdpsettings('solver','sdpa');
ops.verbose = 0;
2、sdpsettings参数详解
常用的参数设置:
solver:用于告诉yalmip将调用的求解器,yalmip允许调用的求解器在solver里查看。如果没有对其设置,yalmip将自动调用一个合适的求解器。
verbose:展示求解细节的设置。0表示完全不显示,1表示适度显示,2则是完全显示。
debug:当设置为1时,yalmip会将出错的原因和位置显示在命令行窗口。(比如某条约束写错了导致不可行)
savesolverinput、savesolveroutput:控制是否保存求解器的输入和输出数据(很重要,可以看到输入的模型及输出的一系列数据)
solver options:用于设置求解器的特殊参数(比如精度、最大最小区间等)

不常用参数设置:(just for me)
warning:设置为1时求解器在遇到某些问题时显示警告(建议在silent mode下使用,还没遇到过需要warning设置的情况)
beeponproblem:显示一系列错误代码
showprogress:显示yalmip当前在干什么
cachesolvers:yalmip开始时会检查所有可用求解器,对此参数置1让yalmip不再进行检查操作(文档都写了现代计算机用不到,不在乎这点检查时间影响了)
removeequalities:置1时yalmip将移除等式约束并用QR分解重构模型;2时yalmip用等式约束独立列产生的基代替它;-1时yalmip用两个不等式表示等式;0时如果求解器支持等式约束,yalmip什么都不做,如果求解器不支持等式约束,yalmip将按照-1的方法处理等式约束
saveduals:控制yalmip是否保存对偶变量
convertconvexquad:默认值为1,yalmip会将二次约束转换为二阶锥
relax:置1时,yalmip将所有的非线性约束和整数约束松弛,所有整数变量被松弛为连续变量,非线性变量被当作独立变量;置2时仅松弛整数约束;置3时仅松弛非线性约束
usex0:置1时将提供一个决策作为优化问题的初始猜测给yalmip

  • 43
    点赞
  • 233
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值