码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【MDP】①二次规划问题MATLAB求解器quadprog


    文章目录

    • 一、概述
      • (一)二次规划标准形式
      • (二)输入参数
      • (三)输出参数
    • 二、MATLAB基础语法
    • 三、MATLAB典型求解样例
      • (一)具有线性不等式约束的二次规划
      • (二)具有线性等式约束的二次规划
      • (三)具有线性约束和边界的二次规划

    一、概述

    二次规划是指约束为线性的二次优化问题。在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}} xmin​21​xTHx+fTx
    在这里插入图片描述

    (二)输入参数

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

    (三)输出参数

    符号参数含义
    x解,以实数向量形式返回
    wsout解的热启动对象
    fval再解处的目标函数值
    exitflagquadprog停止的原因
    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    三、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);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    x =
    0.6667
    1.3333 fval = -8.2222 exitflag =
    1

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

    在这里插入图片描述

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

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

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

    在这里插入图片描述

    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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    云上办公兴起,华为云桌面Workspace更靠谱
    算法:滑动窗口
    成功解决 java.lang.NumberFormatException
    苹果手机丢了如何通过定位找回?iPhone手机丢失定位找回方法
    字符串左旋解法和子字符串判断法
    亚马逊卖家必看:测评补单提升店铺排名和转化率的有效方式
    Word处理控件Aspose.Words功能演示:使用 Python 将 Word 文档的内容复制到另一个文档
    labuladong算法——回溯框架
    系统学习Linux-ELK日志收集系统
    vue模板语法: 插值语法和指令语法以及v-bind指令使用
  • 原文地址:https://blog.csdn.net/zeye5731/article/details/125530324
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号