matlab 凸优化 gpsolve()相关问题

最近写了一个MINLP问题,采用了matlab的ggplab库来做,本身并不难,但是遇到了很多很神奇的问题,而且每次在百度搜并搜不到相关的解决办法(matlab遇到bug是真的难找到类似问题),浪费了很多时间,所以想把自己遇到的一些问题摆出来,希望以后的人遇到类似问题不会纠结那么久。

gpsolve()可以解决优化问题,直接上斯坦福的网站下载相关的包就行。解压文件打开里面的doc文件夹可以看到相关的资料,格式简单,可以很快上手


有几个问题要注意:

(1)constr的条件不要设置永远为真的,比如0<=1这类条件就会报错

(2)我原先代码是constr=[alpha+gamma./beta'<delta];

就会遇到 Undefined function 'lt' for input arguments of type 'posynomial'.的报错

但是改成c=1;constr=[c*alpha + c*gamma./beta' <= c*delta];竟然就通过了,我并不知道什么原理

(3)如果遇到Cannot pointwise divide vectors or matrices with incompatible dimensions.的报错,是因为你的矩阵形式不一致,仔细检查你的矩阵是否能够(点)乘除。我的问题是我设置了gpvar b(6),但是优化结果是个3*1矩阵,我错了两次,一是误以为是1*3,第二个是你设置(6)但它并不一定出来就是6,可能会少于你设置的数字。

(4)我constr两个条件分别可通过,合在一起告诉我Dimensions of matrices being concatenated are not consistent. 所以应该是无解,但是这个错误描述很醉

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值