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

相关推荐
姜鱼问生18 分钟前
fail2ban 实战:从默认配置到生产可用
后端·算法·架构
垆边人似月.24 分钟前
华为题:全排列
算法·深度优先·图论
czq_268671948726 分钟前
Python打卡第36天
pytorch·python·深度学习
计算机编程指导师28 分钟前
【计算机毕设】基于Hadoop+Spark的美国互联网银行贷款数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·贷款
杜 硕33 分钟前
快速排序详解01
数据结构·算法·排序算法
chhttty39 分钟前
Stateflow状态机建模:数据
matlab·simulink
Starry-sky(jing)43 分钟前
onnxruntime 安装后 GPU 没加速?3 条命令确认它跑在 CPU 还是 GPU
python·gpu·cuda·onnxruntime·推理加速
步行cgn1 小时前
Spring AOP 实战:安全日志
python·安全·spring
Matlab程序猿1 小时前
【MATLAB源码-第459期】基于matlab的D-H模型与阻尼最小二乘逆运动学的六自由度机械臂五次轨迹规划及动力学前馈PD控制仿真。
人工智能·算法·matlab·d-h建模·六自由度串联机械臂
信奥卷王1 小时前
[GESP202606 六级] 满二叉树
数据结构·算法