优化模型:matlab二次规划

1.二次规划

1.1 二次规划的定义

若某非线性规划的目标函数为自变量 x x x的二次函数,且约束条件全是线性的,则称这种规划模型为二次规划。

1.2 二次规划的数学模型

min ⁡ 1 2 x T H x + f T x \min \frac{1}{2}\boldsymbol{x}^{\boldsymbol{T}}\boldsymbol{Hx}+\boldsymbol{f}^{\boldsymbol{T}}\boldsymbol{x} min21xTHx+fTx
s . t . { A x ⩽ b A e q ⋅ x = b e q l b ⩽ x ⩽ u b s.t.\left\{ \begin{array}{c} \boldsymbol{Ax}\leqslant \boldsymbol{b}\\ Aeq\cdot \boldsymbol{x}=beq\\ lb\leqslant \boldsymbol{x}\leqslant ub\\ \end{array} \right. s.t. AxbAeqx=beqlbxub
式中: H \boldsymbol{H} H为实对称矩阵; f \boldsymbol{f} f, b \boldsymbol{b} b, b e q , l b , u b beq,lb,ub beq,lb,ub为列向量; A \boldsymbol{A} A, q q q为相应维数的矩阵。

1.3 二次规划的matlab求解

MATLAB中求解二次规划的命令是

[x,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)

其中, x 0 x0 x0是向量 x \boldsymbol{x} x的初始值.

2.案例分析

用MATLAB求解如下二次规划:
min ⁡ f ( x ) = 2 x 1 2 − 4 x 1 x 2 + 4 x 2 2 − 6 x 1 − 3 x 2 \min f\left( x \right) =2x_{1}^{2}-4x_1x_2+4x_{2}^{2}-6x_1-3x_2 minf(x)=2x124x1x2+4x226x13x2
s . t . { x 1 + x 2 ⩽ 3 4 x 1 + x 2 ⩽ 9 x 1 , x 2 ⩾ 0 s.t.\left\{ \begin{array}{c} x_1+x_2\leqslant 3\\ 4x_1+x_2\leqslant 9\\ x_1,x_2\geqslant 0\\ \end{array} \right. s.t. x1+x234x1+x29x1,x20
:先看目标函数中的二次项:
2 x 1 2 − 4 x 1 x 2 + 4 x 2 2 = 1 2 [ x 1 , x 2 ] [ 4 − 4 − 4 8 ] [ x 1 x 2 ] 2x_{1}^{2}-4x_1x_2+4x_{2}^{2}=\frac{1}{2}\left[ x_1,x_2 \right] \left[ \begin{matrix} 4& -4\\ -4& 8\\ \end{matrix} \right] \left[ \begin{array}{c} x_1\\ x_2\\ \end{array} \right] 2x124x1x2+4x22=21[x1,x2][4448][x1x2]
所以 H = [ 4 − 4 ; − 4 8 ] \boldsymbol{H}=\left[ \begin{matrix} 4& -4 ;\\ -4& 8 \\ \end{matrix} \right] H=[444;8]
再看目标函数中的一次项:
− 6 x 1 − 3 x 2 = [ − 6 − 3 ] [ x 1 x 2 ] -6x_1-3x_2=\left[ -6 -3 \right] \left[ \begin{array}{c} x_1\\ x_2\\ \end{array} \right] 6x13x2=[63][x1x2]
所以
f = [ − 6 − 3 ] f=\left[ \begin{array}{c} -6\\ -3\\ \end{array} \right] f=[63]
接下来编写matlab代码:

H=[4,-4;-4,8];
f=[-6;-3];
A=[1,1;4,1];
b=[3;9];
lb=zeros(2,1);
x0=rand(2,1);
[x,fval]=quadprog(H,f,A,b,[],[],lb,[],x0)

求解结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/316017.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年度回顾:怿星科技的转型与创新

岁月不居,时节如流。随着2023年的落幕,怿星科技在这一年中不仅实现了自身的转型,还在技术创新、产品研发、行业合作和人才培养等方面取得了显著的成就。这一年,怿星科技正式完成了从服务型公司向产品型公司的战略转变,…

spi_2024.1.2

spi.h #ifndef __SPI_H__ #define __SPI_H__#include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h"#include"uart4.h" #include"key_it.h" // MOSI对应的引脚输出高低电平的信号PE14 #define MOSI_OUTPUT_H() do{GPIOE->O…

怎么设计一个简单又直观的接口?

文章目录 问题的开端为什么从问题开始?自然而来的接口 一个接口一件事情减少依赖关系使用方式要“傻” 小结 开放的接口规范是使用者和实现者之间的合约。既然是合约,就要成文、清楚、稳定。合约是好东西,它可以让代码之间的组合有规可依。但…

KBDNO1.DLL文件缺失,软件或游戏无法启动运行,怎样快速修复

不少小伙伴,求助电脑报错“KBDNO1.DLL文件缺失,软件或游戏无法启动或运行”,应该怎么办? 首先,我们先来了解“KBDNO1.DLL文件”是什么? KBDNO1.DLL是Windows操作系统中的一个动态链接库文件,主…

创建VLAN及VLAN间通信

任务1、任务2、任务3实验背景: 在一家微型企业中,企业的办公区域分为两个房间,一个小房间为老板办公室,一个大房间为开放办公室,财务部和销售部的员工共同使用这个办公空间。我们需要通过VLAN的划分,使老板…

kubeadm来快速搭建一个K8S集群

二进制搭建适合大集群,50台以下的主机 kubeadm更适合中下企业的业务集群 我们采用了二进制包搭建出的k8s集群,本次我们采用更为简单的kubeadm的方式来搭建k8s集群。 二进制的搭建更适合50台主机以上的大集群,kubeadm更适合中小型企业的集群…

Vmware Centos 7 NAT网络配置(可上网,互相可ping)

本人最近在学习Docker,奈何没钱买服务器,只能使用虚拟机。结果在配置虚拟机的网络时一直出错!!!!很生气!!!!不过好在最终还是解决了。! 直接上干货…

干洗店洗鞋店小程序核心功能有哪些?

在繁忙的生活中,我们的鞋子常常承载着风尘仆仆的故事。而洗鞋小程序,就是那个让您的鞋子焕然一新的魔法师。通过这个小程序,您可以在线预约、支付,查询洗鞋订单,并与洗鞋店铺进行互动,轻松享受专业的洗鞋服…

Python内置库os和sys的常用方法汇总

更多Python学习内容:ipengtao.com Python是一门强大的编程语言,具有丰富的标准库,其中包括os和sys两个常用模块。os模块用于与操作系统交互,提供了许多文件和目录操作的方法,而sys模块用于与Python解释器进行交互&…

【微服务架构】Spring Cloud入门概念讲解

目录 一、单体架构VS微服务架构 1.1 单体应用 单体架构的优点 单体应用的缺点 1.2 微服务“定义” 微服务的特性 微服务的缺点 微服务的适用场景 二、微服务常见概念与核心模块 三、Spring Cloud 工作流程 一、单体架构VS微服务架构 1.1 单体应用 一个归档包&#x…

Swift爬虫使用代理IP采集唯品会商品详情

目录 一、准备工作 二、代理IP的选择与使用 三、使用Swift编写唯品会商品爬虫 四、数据解析与处理 五、注意事项与优化建议 六、总结 一、准备工作 在开始编写爬虫之前,需要准备一些工具和库,以确保数据抓取的顺利进行。以下是所需的工具和库&…

【Linux】进程控制深度了解

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握Linux下的进程控制 > 毒鸡汤&#xff…