非线形优化 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,\[\]);

相关推荐
踩坑记录13 小时前
leetcode hot100 easy 101. 对称二叉树 递归 层序遍历 bfs
算法·leetcode·宽度优先
2501_9403152614 小时前
leetcode182动态口令(将字符的前几个元素放在字符串后面)
算法
老鼠只爱大米14 小时前
LeetCode经典算法面试题 #98:验证二叉搜索树(递归法、迭代法等五种实现方案详解)
算法·leetcode·二叉树·递归·二叉搜索树·迭代
共享家952719 小时前
搭建 AI 聊天机器人:”我的人生我做主“
前端·javascript·css·python·pycharm·html·状态模式
疯狂的喵19 小时前
C++编译期多态实现
开发语言·c++·算法
scx2013100419 小时前
20260129LCA总结
算法·深度优先·图论
2301_7657031419 小时前
C++中的协程编程
开发语言·c++·算法
m0_7487080519 小时前
实时数据压缩库
开发语言·c++·算法
小魏每天都学习19 小时前
【算法——c/c++]
c语言·c++·算法
Hgfdsaqwr20 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python