想请教关于CVX工具包的一些问题

本文探讨了在解决凸优化问题时,使用CVX工具包相较于其他方法的时间性能。作者通过代码示例展示了CVX的使用,并遇到了变量相乘导致的错误,通过切换到几何编程模式解决。然而,新问题出现,CVX不支持减法操作。作者反思了CVX的适用性,并分享了与师姐讨论的感悟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近帮师姐用CVX工具包解决一个凸优化的问题,用其他方法(例如:fmincon函数)也可以。

主要目的是在时间性能上做一下对比,也就是解决问题所需要的时间。

但是遇到了一些问题,未解决。

0、问题说明

目标函数:obj = @(vt)(-38983608671.2131+66282000*vt(1)^2)*(1.063*vt(1)+0.153*vt(2)-0.244)^1.5 + 1.2000e+14*(vt(1)*5.38*10^-7*exp(1.83*vt(1)+4.19*vt(2))-4.8*10^-10*vt(2));

两个优化变量:vt(1), vt(2)
vt(1)取值范围:[0.6, 1.8]
vt(2)取值范围:[-1, 0]
优化目标:最小化 obj

1、用fmincon函数解决
很简单一段程序,直接贴代码:
```

clc,clear;

nonlcon = [];
options = optimoptions('fmincon','Display','off');

obj = @(vt)(-38983608671.2131+66282000*vt(1)^2)*(1.063*vt(1)+0.153*vt(2)-0.244)^1.5 + 1.2000e+14*(vt(1)*5.38*10^-7*exp(1.83*vt(1)+4.19*vt(2))-4.8*10^-10*vt(2));

tic
for iter=1:100
	[x,~] = fmincon(obj,[1.2,-0.5],[],[],[],[],[0.6,-1],[1.8,0],nonlcon,options);
end
toc
```

跑完大概 2.5s 左右。

2 、用cvx工具包解决
安装教程及使用简介都可以搜索到,借鉴

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值