一、线性规划

1.发展进程
运筹学的一个重要分支是数学规划,而线性规划(Linear Programming,LP)则是数学规划的一个重要分支。

1947年美国数学家G. B. Dantzig(丹齐克)提出线性规划的一般数学模型和求解线性规划问题的通用方法──单纯形法,为这门学科奠定了基础。
1947年美国数学家John von诺伊曼提出对偶理论,开创了线性规划的许多新的研究领域,扩大了它的应用范围和解题能力。
1951年美国经济学家T.C.库普曼斯把线性规划应用到经济领域,为此与康托罗维奇一起获1975年诺贝尔经济学奖。
2.基本概念
问题:央视为改版后的《非常6+1》栏目播放两套宣传片。其中宣传片甲播映时间为3分30秒,广告时间为30秒,收视观众为60万,宣传片乙播映时间为1分钟,广告时间为1分钟,收视观众为20万。广告公司规定每周至少有3.5分钟广告,而电视台每周只能为该栏目宣传片提供不多于16分钟的节目时间。电视台每周应播映两套宣传片各多少次,才能使得收视观众最多?

这里变量x、y 称之为决策变量,式(7-1)被称为问题的目标函数,式(7-2)中的几个不等式是问题的约束条件,记为 s.t.。上述即为一规划问题数学模型的三个要素。由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。

标准形式:求目标函数的min,约束条件的不等号为小于号

可行解:满足约束条件式(7-4)的解,称为线性规划问题的可行解,而使目标函数(7-3)达到最小值的可行解叫最优解。
可行域:所有可行解构成的集合称为问题的可行域,记为R。
3.线性规划的MATLAB解法
函数:
[x,y]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
它的返回值是向量x,
y为返回目标函数的值;
c为目标函数的系数;
A为约束条件的系数;
b为约束条件和目标函数的常数;
Aeq和beq对应等式约束Aeq * x=beq,若没有,也不可以省略;
LB和UB分别是变量x的上界和下界;
X0是x的初始值;
OPTIONS是控制参数。
例题
(1)


问:为什么a,b要加’-‘,c为什么不用加‘-’?
答:标准形式:求目标函数的min,约束条件的不等号为小于号,而题目是求目标函数的min,约束条件的不等号为大于号,c符合标准形式,约束条件不符合标准形式,所以c不用加‘-’,a,b要加’-‘。
(2)


总结:凡是与标准形式不同的,需要加‘-’
(3)


注意点:
1.把目标函数的常数放到约束条件的常数中
2.添加常数标量x6
aeq=[0 0 0 0 0 1];
beq=1;

二、非线性规划

非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。所以非线性规划方法很多。
线性规划VS非线性规划
线性规划与非线性规划的区别 如果线性规划的优解存在,其优解只能在其可行域的边界上达到(特别是可行 域的顶点上达到);而非线性规划的优解(如果优解存在)则可能在其可行域的任 意一点达到。

1.含义:

如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题,简记为NP 。

2.初步了解:



非线性规划问题的一般形式为:

x称为模型的决策变量,f(x)称为目标函数,hj(x)和gi(x)称为约束函数。gi(x)称为等式约束,hj(x)称为不等式约束
3.fmincon函数
x=fmincon(fun1,x0,A,B,Aeq,Beq,lb,ub,fun2,options)
x为返回值,fun1是定义函数f(x),x0是x的初始值,A,B,Aeq,Beq定义了线性约束,lb,ub是变量x的下界和上界,fun2是非线性向量函数,options定义了优化参数。

3.深入理解 非线性规划的 Matlab 解法

Matlab 中非线性规划的数学模型写成以下形式



例1:
求下列非线性规划问题。

解题步骤:
(1)编写fun1目标函数和fun2约束函数。
fun1:
function f=fun1(x);
f=x(1)^ 2+x(2)^2+8;
fun2:
function [g,h]=fun2(x);
g=-x(1)^ 2+x(2)^2+2;
h=-x(1)-x(2)^2+2
(2)在MATLAB的命令窗口依次输入
[x,y]=fmincon(‘fun1’,rand(2,1),[],[],[],[],zeros(2,1),[],‘fun2’)
总结:
1.注意文件名,文件名就是被调用的名字。
2.需要初始值。
3.A,B,Aeq,Beq线性约束,lb,ub下界和上界,不能省略!
4.注意非线性向量函数的符号!
例2

解题步骤:
(1)编写fun3目标函数和fun4约束函数。
function f=fun3(x);
f=-(sqrt(x(1))+sqrt(x(2))+sqrt(x(3))+sqrt(x(4)));

function [g,ceq]=fun4(x);
g(1)=1.1x(1)+x(2)-440;
g(2)=1.21
x(1)+1.1x(2)+x(3)-484;
g(3)=1.331
x(1)+1.21x(2)+1.1x(3)+x(4)-532.4;
ceq=0;
(2)在MATLAB的命令窗口依次输入
[x,y]=fmincon(‘fun3’,[1 1 1 1],[],[],[],[],[0 0 0 0],[],‘fun4’)

注意点
1.题目是max,不符合标准形式,所以在写标量函数时要加“-”,最后的结果要取相反数,即43.0860。
2.ceq非线性函数不能少,ceq=0都行!

4.Matlab 求无约束极值问题

在 Matlab 工具箱中,用于求解无约束极值问题的函数有 fminunc 和 fminsearch,用法介绍如下。


例3
求f(x)=x(1)^ 3-x(2)^3+3x(1) ^2+3x(2) ^2-9*x(1)的极值。

f=@(x) x(1)^ 3-x(2)^ 3+3x(1)^ 2+3x(2)^2-9*x(1);
[x,z1]=fminunc(f,rand(2,1))
g=@(x)-f(x)
[x,z2]=fminsearch(g,rand(2,1))

z1为极小值,极大值为-z2。

5.二次规划

(1)若某非线性规划的目标函数为自变量x的二次函数约束条件又全是线性的,就称这种规划为二次规划。
MATLAB中二次规划的数学模型为:

其中,f,b是列向量,A 是相应维数的矩阵,H是实对数矩阵。
注:
函数:
[X,FVAL]= QUADPROG(H,f,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
其中,X的返回值是向量x,FVAL的返回值是目标函数在X处的值。
例4

h=[4,-4;-4,8];
f=[-6;-3];
a=[1 2;4 1];
b=[3;9];
[x,value]=quadprog(h,f,a,b,[],[],zeros(2,1))

x =

1.6500
0.6750

value =

-9.1125
总结:
1.注意补上1/2
2.H实对称矩阵要从二次项凑出来
3.f是一次项前的系数
4.a为约束函数的未知数前的系数,b为约束函数的常数。
(2)罚函数法
利用罚函数法,可将非线性规划问题的求解转化为求解一系列无约束极值问题,因而也称这种方法为序列无约束最小化技术,简记为 SUMT。
罚函数法求解非线性规划问题的思想:利用问题中的约束函数作出适当的罚函数,由此构造出带参数的增广目标函数,把问题转化为无约束非线性规划问题。主要有两种形式,一种叫外罚函数法,另一种叫内罚函数法。
例如:
考虑如下问题:


问1:为什么gi(x)取max?
答:如何证明gi(x)<=0,就取gi(x)的最大值,若最大值都<=0,则gi(x)<=0。
例5

解题步骤:
(1)编写M 文件f7.m。

(2)在MATLAB命令窗口输入:

结果:
x =

1.6036
0.6296

y =

10.9705

三、整数规划

1.定义
规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解规划的方法,往往只适用于整数线性规划。
2.常见整数规划问题的求解算法有:
(1)分枝定界,可求纯或混合整数线性规划。
(2)割平面法
(3)隐枚举法,求解0-1整数规划。
(4)匈牙利法,解决指派问题(0-1规划特殊情形)

2.0-1整数规划

含义



总结:
1.intcon是未知数的个数
2.aeq,beq不能省,没有就用{[]代替。

数学建模 matlab 标准规划问题的MATLAB求解相关推荐

  1. 数学建模专栏 | 第五篇:MATLAB优化模型求解方法(上):标准模型

    最优化赛题是数学建模大赛中最常见的问题类型之一.一般说来,凡是寻求最大.最小.最远.最近.最经济.最丰富.最高效.最耗时的目标,都可以划入优化问题的范畴.MATLAB 优化工具箱和全局优化工具箱对多个 ...

  2. 数学建模中matlab程序,数学建模中常用的30个MATLAB程序和函数

    <数学建模中常用的30个MATLAB程序和函数>由会员分享,可在线阅读,更多相关<数学建模中常用的30个MATLAB程序和函数(15页珍藏版)>请在人人文库网上搜索. 1.内部 ...

  3. 数学建模代码速成~赛前一个月~matlab~代码模板~吐血总结~三大模型代码(预测模型、优化模型、评价模型)

    目录 一.预测模型 1.BP神经网络预测 2.灰色预测 3.拟合插值预测(线性回归) 4.时间序列预测 5.马尔科夫链预测 6.微分方程预测 7.Logistic 模型 二.优化模型 1.规划模型(目 ...

  4. 数学建模专栏 | 第十篇:MATLAB CUMCM真题求解实例一:数据型

    本讲针对的题型是数据型的建模问题, 2012 年的 A 题就是一道典型这类问题,接下来将介绍这道题的 MATLAB 求解过程. 1. 问题的提出 确定葡萄酒质量时一般是通过聘请一批有资质的评酒员进行品 ...

  5. 数学建模专栏 | 第七篇:MATLAB连续模型求解方法

    连续模型是指模型是连续函数的一类模型总称,具体建模方法主要是微分方程建模.微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分方程的定解问题.把形形色色的实际问题化成微分方程的定 ...

  6. 【数学建模】常用模型算法及MATLAB代码汇总

    大家好,我是程序员史迪仔. 这篇文章是在大学准备数学建模比赛时,整理的学习笔记,没想到阅读量.点赞量和收藏量还是可以的,很高兴我的文章能给大家带来帮助! 一.蒙特卡洛算法 二.数据拟合 三.数据插值 ...

  7. 【数学建模】聚类算法+Spss实现+Matlab代码实现

    文章目录 一.聚类算法原理 二.Spss实现聚类 三.Matlab实现聚类 图片来源于清风老师视频 b站地址:数学建模学习交流 一.聚类算法原理 二.Spss实现聚类 三.Matlab实现聚类 1.创 ...

  8. dna序列分类数学建模matlab,数学建模常用的分析法及其MATLAB实现

    [toc] 介绍 本篇分别有主成分分析,层次分析,聚类分析,因子分析的简单介绍以及在MATLAB(2018a)上使用的简单介绍 ( 附源码 ) 主成分分析 主成分分析-百度百科 简单讲:主成分分析就是 ...

  9. 全国大学生数学建模竞赛2020A题炉温曲线MATLAB程序

    目录 前言 一.第1问 1.1 数据预处理与数据可视化MATLAB程序 1.2 利用追赶法求解偏微分方程模型遍历寻找最优a系数与k系数MATLAB程序 1.3 代入a系数与k系数求解第1问MATLAB ...

最新文章

  1. 语音识别wav2letter++简介
  2. android 对比win10 耗电,win10系统下像何查看耗电的应用程序
  3. Web(浏览器)打开运行WinForm应用程序
  4. web实现数据交互的几种常见方式
  5. V210 UART TX 流程
  6. 第二届构建之法论坛预告(草案)
  7. Spring Boot Redis缓存
  8. 《21天学通C#》使用.NET数据类型定义变量
  9. php输出因子,如何在PHP因子程序中返回值
  10. Android优美代码赏析:Snake游戏分析
  11. 动态图php打不开,PHP如何判断一个gif图片是否为动态图片
  12. 【IoT】NFC APDU 使用基础浅析
  13. Qt QTreeView 详解
  14. 空间换时间,轻松提高性能100倍
  15. 数学建模之层次分析法及其应用
  16. 警报声.wav_具有中央警报缓存的jAlarms 1.4
  17. 192.168.8.1手机登陆_192.168.1.101登陆页面手机进入 即可登陆
  18. l05173芯片针脚图_芯片引脚定义
  19. A brief introduction to complex analysis
  20. 卸载网易邮箱大师邮件从服务器删除,网易邮箱大师-高效强大的全平台邮箱客户端...

热门文章

  1. RedHat AS4-U2下Mysql 5.0.22集群配置
  2. 360使用什么php框架,[项目实战] 马震宇出品360问答系统项目实战 基于HDPHP框架
  3. 周(杰伦)董《不能说的秘密》观后感言
  4. iFunk,即时享乐不等待
  5. FindBugs 插件使用
  6. 数据去重 填补空缺值(拉格朗日)
  7. 进入传奇荣耀显示服务器不存在,传奇荣耀复古版
  8. aspose将word转为pdf
  9. Android RecyclerView简单通用适配器
  10. apollo 配置中心安装