冲刺数学建模(3)

发布时间 2023-07-20 16:54:08作者: 寒心小呆

MATLAB应用(2)

开始时间2023-07-20 14:38:20

结束时间2023-07-20 16:45:37

前言:书接上回,今日分享MATLAB在线性规划中的应用,MATLAB工具箱简介,MATLAB图论工具箱及应用,MATLAB一维插值及应用,参考于《数学建模算法与应用》(第三版)国防工业出版社。

一、MATLAB在线性规划中的应用

 1 线性规划模型的三要素
 21)决策变量
 3 问题中要确定的未知量,用于表明规划问题中的用数量表示的方案、措施等,可由决策者决定和控制;
 42)目标函数
 5 决策变量的函数,优化目标通常是求该函数的最大值或最小值;
 63)约束条件
 7 决策变量的取值所受到的约束和限制条件,通常用含有决策变量的等式或不等式表示。
 8 建立线性规划模型的三个步骤
 9 第一步:分析问题,找出决策变量。
10 第二步:根据问题所给条件,找出决策变量必须满足的一组线性等式或者不等式约束,即为约束条件。
11 第三步:根据问题的目标,构造关于决策变量的一个线性函数,即为目标函数。
线性规划模型及概念

线性规划模型的形式

 线性规划问题的解的概念

1 可行解  满足约束条件(1.4)的解 ,称为线性规划问题的可行解,而使目标函数(1.3)达到最大值的可行解叫最优解。
2 
3 可行域  所有可行解构成的集合称为问题的可行域,记为 。
概念
1 运筹学
2 ——
3 “优化后分析”的理论方法。借助对偶理论,其思想并非通过系数变化后重新对线性规划问题进行重新计算来得到。
4 
5 计算机求解
6 ——
7 给定参变量一个步长使其重复求解线性规划问题,以观察最优解的变化情况,这不失为一种可用的数值方法。
灵敏度分析

MATLAB求解及应用

对一般的线性规划模型,常用的求解方法有
图解法——含有两个决策变量
单纯形法——决策变量为向量且数量不多

MATLAB求解数学规划问题采用两种模式:
(1)基于求解器的求解方法
(2)基于问题的求解方法

MATLAB基于求解器的求解方法

 MATLAB基于问题的求解方法

MATLAB基于问题的求解数学规划方法,首先需要用变量和表达式构造优化问题,然后用solve函数求解。

举例

 基于求解器求解

 基于问题求解

 二、MATLAB工具箱简介

 1 Graph:无向图(undirected Graph);
 2 
 3 Digraph:有向图(directed Graph);
 4 
 5 G = graph——创建空的无向图对象。
 6 G = graph(A)——使用邻接矩阵A创建赋权无向图。
 7 G = graph(A,nodes) ——使用邻接矩阵A和节点名称nodes创建赋权无向图。
 8 G = graph(s,t) ——使用节点对组s,t创建无向图。
 9 G = graph(s,t,weights) ——使用节点对组s,t和权重向量weights创建赋权无向图。
10 G = graph(s,t,weights,nodes)——使用字符向量元胞数组nodes指定节点名称。
11 G = graph(s,t,weights,num) ——使用数值标量num指定图中的节点数。
12 G = graph(A[,nodes],type)——仅使用A的上或下三角形阵构造赋权图,type可以是'upper''lower'
图的生成

举例

1 MATLAB存储网络的相关数据时,使用了稀疏矩阵,这有利于在存储大规模稀疏网络时节省存储空间。
数据存储结构

 举例

 三、MATLAB图论工具箱及应用

 四、MATLAB一维插值及应用

 1 Matlab中一维函数interp1的调用格式为:
 2 vq=interp1(x0,y0,xq,method,extrapolation)
 3 其中x0为已知的插值节点,
 4 y0是对应于x0的函数值,
 5 xq是欲求函数值的节点坐标,
 6 返回值vq是求得的节点xq处的函数值.
 7 method指定插值的方法,默认为线性插值。其值常用的有:
 8 'nearest'   最近邻插值;
 9 'linear'    线性插值;
10 'spline'    三次样条插值,函数是二次光滑的;
11 'cubic'    立方插值,函数是一次光滑的。
12 extrapolation是外插策略。
函数interp1
1 函数griddedInterpolant适用于任意维数的插值。
2 一维插值的调用格式为:
3 F=griddedInterpolant(x, v, method, extrapolation)
4 计算对应的函数值的使用格式为Vq=F(Xq)。
5 n维插值的调用格式为:
6 F=griddedInterpolant(x1,x2,…,xn, v, method, extrapolation)
7 计算对应的函数值的使用格式为
8 Vq=F(xq1,xq1,…,xqn)。
函数griddedInterpolant
 1 三次样条插值还可以函数csape,csape的返回值是pp形式。求插值点的函数值,调用函数fnval。
 2 pp=csape(x0,y0)使用默认的边界条件,即Lagrange边界条件。
 3 pp=csape(x0,y0,conds,valconds)中的conds指定插值的边界条件,其值可为
 4 
 5 'complete'    边界为一阶导数,一阶导数的值在valconds参数中给出,若忽略valconds参数,则按缺省情况处理。
 6 'not-a-knot'   非扭结条件。 
 7 'periodic'     周期条件。
 8 'second'      边界为二阶导数,二阶导数的值在valconds参数中给出,若忽略valconds参数,二阶导数的缺省值为[0, 0]。
 9 'variational'   设置边界的二阶导数值为[0,0]。
10 对于一些特殊的边界条件,可以通过conds的一个 向量来表示,conds元素的取值为0,1211 conds(i)=j的含义是给定端点 的 阶导数,即conds的第一个元素表示左边界的条件,第二个元素表示右边界的条件,conds=[2,1]表示左边界是二阶导数,右边界是一阶导数,对应的值由valconds给出。
12 
13 利用pp结构的返回值,还可以计算返回值函数的导数和积分,命令分别为fnder,fnint,这两个函数的返回值还是pp结构。
14 pp结构相关函数的功能总结于表5.2
三次样条插值函数csape

 举例

 总结:呜呼今晚火车润去北京!看22号升旗!