数学建模上机任务书
一、上机目的
1、通过上机熟悉Matlab的基本使用,用Matlab语言编写较完整的实用程序。 2、将Matlab综合运用于数学建模课程中,实现基本常用数学建模模型的程序仿真。
二、上机内容及要求 内容一:
安装Matlab软件,熟悉Matlab语言的基本语法格式及用法, 内容二:
熟悉掌握Matlab提供的用于线性规划、非线性规划问题的函数使用求解,用Matlab语言编写常用的整数规划分支定界法、计算机指派问题的匈牙利算仿真。 内容三:
用Matlab实现微分方程模型、曲线拟合等的求解 内容四:
用Matlab语言实现马尔科夫链的模拟 四、报告要求
1、要求使用A4纸打印,报告含封面、上机任务书、原理图、程序清单或仿真模型,格式正确。
2、课程设计报告一般应包含如下部分: 仿真算法基本原理 程序流程及其实现
实验结果(如:结合实例的运行结果)及其分析
设计过程中的主要难点(自己遇到的)及解决思路和办法、收获、体会和建议。
1、指派问题的匈牙利仿真 匈牙利算法步骤 ① 矩阵规约.
遍历矩阵的行,求得各行的最小值,并对各行上的所有元素减去其最小值. 遍历矩阵的列,求得各列的最小值,并对各列上的所有元素减去其最小值. ② 统计各行列0元素个数
遍历各个行和列的元素,统计出各行和列的0元素个数. ③ 标记0操作.
遍历矩阵的行,找到只含一个0元素的行,将该0元素\画圆\ 再遍历该0元素所在的列,将该列上的0元素\画撇\
遍历矩阵的列,找到只含一个0元素的列(\画撇\的0元素不看作自由素). 再遍历该0元素所在的行,将该行上的0元素\画撇\
④如果\画圆\的个数等于矩阵维数,则输出结果.即调用7. 如果还存在自由0元素,则调用7.
如果不存在自由0元素,且\画圆\的个数少于矩阵维数,则调用5. ⑤ 用最少直线覆盖.
a.对没有“画圆”0元素的行打√号.
b.对已打√号的行中所有含“画撇”0元素的列打√号. C.对打√号列上有“画圆”0元素的行打√号. d.重复(b)(c)直到得不出新的打√号的行列为止. e.打√号的列画纵线,没打√号的行画横线.
这就是覆盖所有0元素的最少直线集合. ⑥ 增加(转移)0元素.
a.求出未被直线覆盖的元素中的最小值k. b.对打√行减去k,对打√列加上k c. 转到第2步骤.
⑦ 剩余自由0元素处理
a.取存在自由0元素的行中的第一行(建议取自由0元素最少的行) b.遍历a中所选行,依次取该行中的自由0元素. 执行:
c.对该自由0元素进行画圆操作.
d.将该元素所在行列的其它自由0元素画撇 e.执行标记0操作,即调用③. f.执行④进行转换. ⑧ 结果输出
按照\画圆\元素的位置,记录结果。
例如:
Matlab程序为:
程序运行结果为:
2、多项式拟合方法:
例如:某乡镇企业1990-1996 年的生产利润如表5。 年份 1990 1991 1992 1993 1994 利润(万70 122 144 152 174 元) 试预测1997 年和1998 年的利润。 画散点图的程序如下:
1995 196 1996 202
运行结果为:
发现该乡镇企业的年生产利润几乎直线上升。因此,我们可以用 1 0 y = a x + a 作为
拟合函数来预测该乡镇企业未来的年利润。编写程序如下:
程序运行结果为:
3、马尔科夫链
定义:设{xn,n=1,2,?}是一个随机序列,状态空间E为有限或可列集,对于任意
的正整数m,n,若I,j,ik∈E(k=1,?,n-1),有 P{xn+m=j|xn=I,xn-1=in-1,?,x1=i1}=P{xn+m=j|xn=i}
则称{xn,n=1,2,?}为一个马尔科夫链(简称马氏链)。
例如: 设一随机系统状态空间E = {1,2,3,4},记录观测系统所处状态如下:
4 3 2 1 4 3 1 1 2 3 2 1 2 3 4 4 3 3 1 1 1 3 3 2 1 2 2 2 4 4 2 3 2 3 1 1 2 4 3 1
若该系统可用马氏模型描述,估计转移概率ij p 。
编写程序为:
程序运行结果为:
4、微分方程模型 例如:
试求常微分方程组:
f”+3g=sinx g’+f’=cosx
的通解和在处置条件为f '(2) = 0, f (3) = 3, 编写程序为:
g(5) = 1的解。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数学建模报告在线全文阅读。
相关推荐: