非线形优化 Matlab和Python (含01规划)

MATLAB:fmincon

在matlab中,一般使用fmincon来解决非线性优化问题

x,fval,exitflag,output,lambda,grad,hessian\]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 一般使用: \[x,fval,exitflag\]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) ![](https://file.jishuzhan.net/article/1765922248796934146/a95e6c0907d74de23bb433f0911b182d.webp) 式中,输出x是最优解,fval是最优化结果,exitflag是优化成功与否 fun是目标函数(最优化函数) x0是初始状态 A,b是不等式线性约束 Aeq,beq是等式线性约束 lb和ub是x的约束范围 nonlcon 是非线性约束,和fun同理若此项不存在,用\[\]替代 ## 案例分析: 比如在无人机追逃过程中,XDi和XAj,分别为一个二维的位置点,a为常数,来求解使得f最小的位置x ![](https://file.jishuzhan.net/article/1765922248796934146/1592817d11364037efe6da46c5932903.webp) 参考资源: [https://download.csdn.net/download/weixin_44346182/88925127](https://download.csdn.net/download/weixin_44346182/88925127 "https://download.csdn.net/download/weixin_44346182/88925127") ## Python:minimize 在python中,使用scipy库里的minimize函数 ​pip install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple 和matlab类似,res = minimize(fun(), x0, constraints=cons) fun()是要优化的函数 x0是初始状态,co nstraints是约束函数,不过这个是大于0的式子 ## 案例分析 同上的问题,代码 [https://download.csdn.net/download/weixin_44346182/88925133](https://download.csdn.net/download/weixin_44346182/88925133 "https://download.csdn.net/download/weixin_44346182/88925133") ## 01规划:intlinprog matlab中解决01规划使用的是intlinprog函数 [https://www.cnblogs.com/goodtwo/p/11145699.html](https://www.cnblogs.com/goodtwo/p/11145699.html "https://www.cnblogs.com/goodtwo/p/11145699.html") 使用方法为: \[x,fval\]**=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub****)** ![](https://file.jishuzhan.net/article/1765922248796934146/5baceaf0cd8bbdf9303ea31d2da4b79a.webp) x是最优解:比如\[1,0,1\],fval是最优解,f是约束函数的系数,intcon是整数的个数 例如: ![](https://file.jishuzhan.net/article/1765922248796934146/069ef0ff2e6bf3062fd89d7eae748b79.webp) 三个都是整数变量,intcon=1:3 注意:此函数是求整数规划的最小值,如果是最大值,则优化函数的系数矩阵f去负号 ![](https://file.jishuzhan.net/article/1765922248796934146/faeb2b06bc4ef52ea3bef5a9bfd0bf2d.webp) f=\[-5 -8\]; A=\[1 1;5 9\]; b=\[6 45\]; lb=zeros(2,1);%约束范围 intcon=\[1 2\]; \[x,fval\]=intlinprog(f,intcon,A,b,\[\],\[\],lb,\[\]);

相关推荐
IVEN_11 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
AI软著研究员11 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish12 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
Ray Liang12 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
颜酱12 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
AI攻城狮13 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling13 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮16 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽16 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio