非线形优化 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)

式中,输出x是最优解,fval是最优化结果,exitflag是优化成功与否

fun是目标函数(最优化函数)

x0是初始状态

A,b是不等式线性约束

Aeq,beq是等式线性约束

lb和ub是x的约束范围

nonlcon 是非线性约束,和fun同理若此项不存在,用\[\]替代

案例分析:

比如在无人机追逃过程中,XDi和XAj,分别为一个二维的位置点,a为常数,来求解使得f最小的位置x

参考资源:

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

01规划:intlinprog

matlab中解决01规划使用的是intlinprog函数

https://www.cnblogs.com/goodtwo/p/11145699.html

使用方法为:

x,fval=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub****)

x是最优解:比如1,0,1,fval是最优解,f是约束函数的系数,intcon是整数的个数

例如:

三个都是整数变量,intcon=1:3

注意:此函数是求整数规划的最小值,如果是最大值,则优化函数的系数矩阵f去负号

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,\[\]);

相关推荐
行者全栈架构师1 分钟前
混元 Hy3 Agent 实战:季度报告 3 小时变 40 分钟
算法·架构·代码规范
小陈工9 分钟前
第8篇:Flask轻量级框架与扩展生态深度解析(下)
后端·python·面试
小刘学技术17 分钟前
AI人工智能中的类别不平衡问题:成因、影响与解决方案
开发语言·人工智能·python·机器学习
兰令水23 分钟前
hot100【acm版】【2026.7.21打卡-java版本】
java·开发语言·算法·leetcode·面试
郝同学今天有进步吗26 分钟前
构建 LangGraph Code Review Agent(二):建立仓库路径安全边界
python·ai·code review
雨师@37 分钟前
python通过rust编写组件扩展自己的能力
python·rust
好好沉淀1 小时前
主键选择(自增 vs UUID vs 雪花算法)
java·算法
时光不染。回忆不淡1 小时前
Python基础语法教程
开发语言·python
白执落1 小时前
使用 Python + LangChain + Vue3 构建 LLM 聊天应用
人工智能·python·langchain
蓝创工坊Blue Foundry1 小时前
本地 PDF、图片字段提取到 Excel:用文档工作台的完整流程
python·ocr·vim·paddlepaddle