Python都有哪些可以做带约束的二次线性规划的包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python都有哪些可以做带约束的二次线性规划的包相关的知识,希望对你有一定的参考价值。
参考技术A 线性规划立足于求满足所有约束条件的最优解,而在 实际问题中,可能存在相互矛盾的约束条件.目标规划可 以在相互矛盾的约束条件下找到满意解.MPC的终结——二次规划求解约束极值问题
-
约束极值问题的定义及优化方法
带有约束条件的极值问题称为约束极值问题,也叫规划问题。
求解约束极值问题要比求解无约束极值问题困难得多。为了简化其优化工作,可采用下面两种方法:
1.将约束问题转化为无约束问题;
2.将非线性规划问题转化为线性规划问题。
什么样的目标函数可以用二次规划求解呢?
1.非线性规划的目标函数为自变量x的二次函数
2.约束条件是线性的
-
二次规划数学模型
其中,H是实对称矩阵;f,b,beq,lb,ub是列向量;A,Aeq是相应维数的矩阵。
Matlab中求解二次规划的命令:
[x,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
返回值x是决策向量x的值,返回值fval是目标函数在x处的值。
-
二次规划求解的例子
Example:
编写程序如下:
H=[4,-4;-4,8];
f=[-6;-3];
A=[1,1;4,1];
b=[3,9];
[x,fval]=quadprog(H,f,A,b,[ ],[ ],zeros(2,1))
这里x1和x2有下界,没有上界,所以根据第三个约束,lb为两行一列的0矩阵,上界为空。
求解得:x1=1.9500,x2=1.0500,minf(x)=-11.0250
点击下方卡片,加入会员全年无限制学习后台(MPC各矩阵的底层逻辑、MPC纵向控制、模型验证、MPC自适应巡航控制、非线性系统如何线性化及MPC动力学跟踪任何轨迹、约束添加及新求解器的求解、轨迹规划、纵向规划等80个系列)会员专享爆品课程及资源,同时获得分佣资格,可赚回自己的学费!
以上是关于Python都有哪些可以做带约束的二次线性规划的包的主要内容,如果未能解决你的问题,请参考以下文章
是否有任何可以同时具有下限和上限的二次规划函数 - Python