【MPC】①二次规划问题MATLAB求解器quadprog

这篇具有很好参考价值的文章主要介绍了【MPC】①二次规划问题MATLAB求解器quadprog。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概述

二次规划是指约束为线性的二次优化问题。在Matlab中,quadprog是具有线性约束的二次目标函数求解器。

(一)二次规划标准形式

min ⁡ x 1 2 x T H x + f T x \mathop {\min }\limits_x \frac{1}{2}{{\bf{x}}^{\bf{T}}}{\bf{Hx}} + {{\bf{f}}^{\bf{T}}}{\bf{x}} xmin21xTHx+fTx
matlab二次规划函数quadprog,MPC,自动驾驶,matlab,自动驾驶,人工智能其实H是Hessian 阵,是n乘n的对称阵。

1、海森矩阵的正定性与函数最优性

  • 如果 Hessian 矩阵是半正定的,则我们说该式是一个凸二次规划,在这种情况下该问题的困难程度类似于线性规划。如果有至少一个向量满足约束并且在 可行域 有下界,则凸二次规划问题就有一个全局最小值。
  • 如果是正定的,则这类二次规划为严格的凸二次规划,那么全局最小值就是唯一的。
  • 如果是一个 不定矩阵 ,则为非凸二次规划,这类二次规划更有挑战性,因为它们有多个平稳点和局部极小值点。

2、基本数学概念

  • 基础概念:https://blog.csdn.net/jbb0523/article/details/50598523
  • 凸 严格凸,举例:https://zhuanlan.zhihu.com/p/399549564

3、对称阵的正定性判断

  • 正定矩阵:矩阵的所有特征值均大于0
  • 半正定矩阵:矩阵的所有特征值均非负
  • 负定矩阵:矩阵所有特征值均小于0

https://blog.csdn.net/Infinity_07/article/details/109569450

matlab二次规划函数quadprog,MPC,自动驾驶,matlab,自动驾驶,人工智能

4、matlab正、半正、负定阵生成,与quadprog验证
(1)matlab判断正定性:

% 判断矩阵m是正定、半正定还是负定
m = [2 -1; -1 2]; 

if issymmetric(m) % 检查矩阵是否对称
    % disp('矩阵对称');
    d = eig(m); % 计算矩阵特征值
    if all(d > 0)
        disp('矩阵正定');
    elseif all(d >= 0)
        disp('矩阵半正定');
    else
        disp('矩阵负定');
    end
else
    disp('矩阵不对称');
end

(2)matlab产生正定阵的操作

https://blog.csdn.net/zhao523520704/article/details/52918376/

H_posi=diag([1,2,3]);
H_semi=diag([0,2,3]);
H_nega=diag([-1,-2,-3]);

(二)输入参数

符号 参数含义
H 二次目标矩阵
f 线性目标向量
A 线性不等式矩阵
b 线性不等式向量
Aeq 线性等式约束矩阵
beq 线性等式约束向量
lb 下界
ub 上界

(三)输出参数

符号 参数含义
x 解,以实数向量形式返回
wsout 解的热启动对象
fval 再解处的目标函数值
exitflag quadprog停止的原因
output 有关优化过程的信息,以结构体形式返回
lambda 解处的拉格朗日乘数

二、MATLAB基础语法

x = quadprog(H,f)
x = quadprog(H,f,A,b)
x = quadprog(H,f,A,b,Aeq,beq)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
x = quadprog(problem)
[x,fval] = quadprog(___)
[x,fval,exitflag,output] = quadprog(___)
[x,fval,exitflag,output,lambda] = quadprog(___)
[wsout,fval,exitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,ws)

三、MATLAB典型求解样例

(一)具有线性不等式约束的二次规划

matlab二次规划函数quadprog,MPC,自动驾驶,matlab,自动驾驶,人工智能

H = [1 -1; -1 2]; 
f = [-2; -6];
A = [1 1; -1 2; 2 1];
b = [2; 2; 3];
[x,fval,exitflag,output,lambda] = quadprog(H,f,A,b);

x =
0.6667
1.3333
fval = -8.2222
exitflag =
1

(二)具有线性等式约束的二次规划

matlab二次规划函数quadprog,MPC,自动驾驶,matlab,自动驾驶,人工智能

H = [1 -1; -1 2]; 
f = [-2; -6];
Aeq = [1 1];
beq = 0;
[x,fval,exitflag,output,lambda] = ...
   quadprog(H,f,[],[],Aeq,beq)

x = -0.8000
0.8000
fval = -1.6000
exitflag =
1

(三)具有线性约束和边界的二次规划

matlab二次规划函数quadprog,MPC,自动驾驶,matlab,自动驾驶,人工智能文章来源地址https://www.toymoban.com/news/detail-822187.html

H = [1,-1,1
    -1,2,-2
    1,-2,4];
f = [2;-3;1];
lb = zeros(3,1);
ub = ones(size(lb));
Aeq = ones(1,3);
beq = 1/2;
x = quadprog(H,f,[],[],Aeq,beq,lb,ub)

到了这里,关于【MPC】①二次规划问题MATLAB求解器quadprog的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【路径规划】基于遗传算法求解机器人栅格地图路径规划问题matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年01月24日
    浏览(64)
  • 基于遗传算法求解机器人栅格地图路径规划问题matlab仿真

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年01月22日
    浏览(57)
  • Python求解二次规划模型

            在学习司守奎老师编写的Pyhon数学实验与建模。学到第6.6求解二次规划模型的时候,忽然觉得很多地方又看不懂了,之前学的一些都忘记了,所以又赶紧查资料弥补一下知识。放在这里,给后面学习的小伙伴提供一些参考吧。          详细拆解一下当时遇到的问题

    2024年02月02日
    浏览(31)
  • 数学建模--二次规划型的求解的Python实现

    目录 1.算法流程简介 2.算法核心代码 3.算法效果展示

    2024年02月10日
    浏览(38)
  • 【任务分配】多目标粒子群算法求解多无人机多任务路分配及路径规划(最短路程+最短时间)问题【含Matlab源码 3522期】

    1 粒子群算法 粒子群算法是智能算法领域中除蚁群算法、鱼群算法又一个智能群体算法。 PSO算法首先在可行解空间中初始化一群粒子,每个粒子都代表极值优化问题的一个潜在最优解。粒子在解空间中运动,通过跟踪个体极值Pbest和群体极值Gbest更新个体位置。 粒子每更新一次

    2024年02月04日
    浏览(62)
  • 0-1规划的MATLAB求解

    1、在上述模型中,目标函数f 需要 “极小化” ,不等式约束形式为 “≤” 。假设x为n维设计变量,且线性规划问题具有不等式约束m1个,等式约束m2个,那么:c、x均为n维列向量,b为m1维列向量,beq为m2维列向量,A为m1×n维矩阵,Aeq为m2×n维矩阵。 2、如果不满足标准型的要求

    2024年02月02日
    浏览(25)
  • 优化|求解非凸和无梯度lipschitz连续性的一阶算法在二次规划反问题中的应用(代码分享)

    原文信息(包括题目、发表期刊、原文链接等):First Order Methods Beyond Convexity and Lipschitz Gradient Continuity with Applications to Quadratic Inverse Problems 原文作者:Jérôme Bolte, Shoham Sabach, Marc Teboulle, and Yakov Vaisbourd 代码分享者:李朋 考虑下面的二次规划反问题 min ⁡ { Ψ ( x ) : = g ( x ) +

    2024年02月05日
    浏览(43)
  • 二次规划问题(qp)和序列二次规划问题(sqp)的简单理解

    二次规划问题(qp)是目标函数为二次函数,约束条件为线性约束的问题,可以简化为初中数学进行表达,即: 已知目标函数为: f ( x ) = x 2 − 2 ∗ x + 1 f(x)=x^2-2*x+1 f ( x ) = x 2 − 2 ∗ x + 1 x x x 需满足约束条件 0 x 2 0x2 0 x 2 求 f ( x ) f(x) f ( x ) 在 x x x 为多少时取最小值 以上即为最简单

    2024年02月02日
    浏览(27)
  • 【GRO三维路径规划】淘金算法求解复杂山地环境下无人机三维路径规划【含Matlab源码 3649期】

    1 无人机航迹规划问题的数学模型 建立三维航迹规划问题的数学模型时, 不但考虑无人机基本约束, 还考虑复杂的飞行环境, 包括山体地形和雷暴威胁区。 1.1 无人机基本约束 规划的无人机三维航迹, 通常需要满足一些基本约束, 包括最大转弯角、最大爬升角或下滑角、最小航迹

    2024年02月03日
    浏览(41)
  • 利用python求解规划问题

    规划问题分为两个大类:线性规划和非线性规划以及下面分支的小类,我们观看这个树状图来粗略的了解一下。      首先我们讲解最简单的线性规划模型,通常线性规划均属于凸规划,通常都是用python中的cvxpy进行求解。 模型建立由三个部分组成: (1)决策变量(问题中

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包