资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
实验目的
作为实践性非常强的课程, 安排上机实验的目的, 不但是为了验证教材和授课内容, 更重要的是, 要经过实验深入理解方法的设计原理与处理问题的技巧, 培养自行处理常规数学模型的能力和综合运用知识分析、 解决问题的能力。
1、 经过上机实验加深课堂内容的理解。
计算机的应用在数学建模的教学中占有重要地位, 在为解决实际问题而建立数学模型的过程中、 对所建模型的检验以及大量的数值计算中, 都必须用到计算机。《数学建模》的实验课的目的和任务是经过实验培养并提高学生的数学建模能力和计算机应用能力。
2、 学会对模型计算结果的分析和处理。
数学建模实验不只是编写程序得到一个数值结果, 我们应在掌握数学模型的基本原理和思想的同时, 注意方法处理的技巧及其与计算机的密切结合, 重视对结果的分析与讨论。最终数值结果的正确性或合理性是第一位的 , 当结果不正确、 不合理、 或误差大时, 我们要能够分析原因, 对算法、 计算方法、 或模型进行修正、 改进。
3、 培养学生解决实际问题的能力。
经过对实际问题的分析, 抓住问题本质, 培养学生将实际问题转化为数学问题能力, 要求经过数学实验的学习, 初步掌握将实际问题转化为数学问题的方法, 能够建立简单的实际问题的数学模型。同时要求学生经过查阅文献, 撰写符合要求的数学建模论文形式, 使学生论文写作能力等得到培养。
实验基本要求
一、 上机前的准备工作
1、 复习和掌握与本次实验有关的教学内容。
2、 根据本次实验要求, 根据本次实验要求, 按教材和任课老师介绍的方法完成数学建模实验任务, 对数学建模的各种基本类型和方法都作适度的练习, 并对学过的计算机编程语言在实验过程中进行全面的实践和提高。
二、 上机实验步骤
1、 启动开发环境;
2、 建立源程序文件, 输入源程序;
3、 编译产生目标程序, 连接生成可执行程序, 运行程序, 输出结果;
4、 对数值计算结果进行分析, 讨论其合理性与正确性;
5、 整理实验报告。
三、 实验报告
实验报告是记录实验工作全过程的技术文档, 实验报告的撰写是科学技术工作的一个组成部分。实验中, 学生要对问题进行分析, 计算, 编程, 处理在实验时记录的相关实验数据, 课后完成实验报告上交。
实验项目
实验一、 Dynamical Systems
Dynamical systems can be used to describe almost all real-world systems. When time is discrete, the dynamical systems can be represented by difference equations, which usually are difficult to analyze mathematically but easy to do computations using computer softwares. The problem now is to figure out an appropriate model for a specific real-world system, i.e., a difference equation, that is consistent with the real-world data and that encapsulates the important aspects of the real-world system.
一、 实验目的与要求
掌握运用软件求解动态系统模型, 经过研究散点图得到动态系统的内在性质和长期趋势。经过对数据进行处理, 归纳出动态系统模型。
1、 用Excel对数据进行处理, 建立动态系统模型而且进行验证;
2、 用Excel画散点图, 对动态系统模型解的长期趋势进行分析;
3、 用Excel求解动态系统模型并估计均衡点;
4、 用Excel分析多元动态系统模型。
二、 算法实例
Example 1.1
Six years ago your parents purchased a home by financing $80,000 for 20 years paying monthly payments of $880.87 with a monthly interest of 1%.
(a) They have made 72 payments and wish to know how much they owe on the mortgage.
(b) They are considering paying off the remaining mortgage in 10 years, find out the new monthly payments.
解答如下, 因每个月还款而减少:
Δbn=bn+1-bn=0.01bn-880.87
求解下列动力系统模型:
bn+1= bn+0.01bn—880.87
b0=80000
Where bn 表示n个月后的欠款。因而有
b1=80000+0.01(80000)-880.87=79919.13
b2=79919.13+0.01(79919.13)-880.87=79837.45
用序列表示B=(80000, 79919.13, 79837.45,…)
Excel操作步骤:
1.打开excel表格, 输入如下表格。
2.用智能标识把月份拉到231。
3.在B4 中输入= B3 +0.01B3-880.87, 回车后下拉即可可到序列B=(80000, 79919.13, 79837.45,…)。
4. 在插入图表XY散点图, 选中数据格就可得出下表:
Example 1.2
You wish to buy a new car and narrow your choices to a Saturn, Cavalier, and Hyundai. Each company offers you its best deal:
Saturn
$13,990.00
$1000 down
3.5% interest for up to 60 months
Cavalier
$13,550.00
$1500 down
4.5% interset for up to 60 months
Hyundai
$12,400.00
$500 dwon
6.5% interset for up to 48 months
You are able to spend at most $475 a month on a car payment. Use a dynamical system to determine which car to buy:
解答如下, 对三家公司分别建立动力系统模型:
Saturn: Δbn=bn+1-bn=0.035bn-475
bn+1= bn+0.035bn-475
b0=12990
Cavalier: Δbn=bn+1-bn=0.045bn-475
bn+1= bn+0.045bn-475
b0=12050
Hyundai: Δbn=bn+1-bn=0.065bn-475
bn+1= bn+0.065bn-475
b0=11900
Saturn
Cavalier
Hyundai
月份
余额
月份
余额
月份
余额
0
12990.00
0
12050.00
0
11900.00
1
12969.65
1
12117.25
1
12198.50
2
12948.59
2
12187.53
2
12516.40
3
12926.79
3
12260.96
3
12854.97
4
12904.23
4
12337.71
4
13215.54
5
12880.87
5
12417.91
5
13599.55
6
12856.70
6
12501.71
6
14008.52
7
12831.69
7
12589.29
7
14444.08
8
12805.80
8
12680.81
8
14907.94
9
12779.00
9
12776.44
9
15401.96
10
12751.27
10
12876.38
10
15928.09
11
12722.56
11
12980.82
11
16488.41
12
12692.85
12
13089.96
12
17085.16
13
12662.10
13
13204.00
13
17720.69
14
12630.27
14
13323.18
14
18397.54
15
12597.33
15
13447.73
15
19118.38
16
12563.24
16
13577.88
16
19886.07
17
12527.95
17
13713.88
17
20703.67
18
12491.43
18
13856.00
18
21574.41
19
12453.63
19
14004.52
19
22501.74
20
12414.51
20
14159.73
20
23489.35
21
12374.02
21
14321.92
21
24541.16
22
12332.11
22
14491.40
22
25661.34
23
12288.73
23
14668.52
23
26854.33
24
12243.84
24
14853.60
24
28124.86
25
12197.37
25
15047.01
25
29477.97
26
12149.28
26
15249.13
26
30919.04
27
12099.50
27
15460.34
27
32453.78
28
12047.99
28
15681.05
28
34088.27
29
11994.67
29
15911.70
29
35829.01
30
11939.48
30
16152.73
30
37682.90
31
11882.36
31
16404.60
31
39657.29
32
11823.24
32
16667.80
32
41760.01
33
11762.06
33
16942.86
33
43999.41
34
11698.73
34
17230.28
34
46384.37
35
11633.18
35
17530.65
35
48924.36
36
11565.35
36
17844.53
36
51629.44
37
11495.13
37
18172.53
37
54510.35
38
11422.46
38
18515.29
38
57578.52
39
11347.25
39
18873.48
39
60846.13
40
11269.40
40
19247.79
40
64326.13
41
11188.83
41
19638.94
42
11105.44
42
7.69
43
11019.13
43
20474.84
44
10929.80
44
20921.21
45
10837.34
45
21387.66
46
10741.65
46
21875.10
47
10642.61
47
22384.48
48
10540.10
48
22916.79
49
10434.00
49
23473.04
50
10324.19
50
24054.33
51
10210.54
51
24661.77
52
10092.91
52
25296.55
53
9971.16
53
25959.90
54
9845.15
54
26653.09
55
9714.73
55
27377.48
56
9579.75
56
28134.47
57
9440.04
57
28925.52
58
9295.44
58
29752.17
59
9145.78
59
30616.02
60
8990.88
60
31518.74
Excel操作步骤和例1相似, 故我们能够得出应当购买Saturn公司的汽车。
Example 1.3
你的父母正在考虑月息0.5%、 数额为100000美元的抵押贷款。试建立一个用每月还款表示的模型, 使得在360次还款后就能还清贷款。经过计算数值解的实验来确保360月( 30年) 还清贷款的值。
解答如下: 由题意, , 则有
建立动力系统模型:
由, 可得
下面我们取进行实验分析。
省略中间的表格, 从最后的数据能够看出到最后一个月可还清。
练习:
1、 你的信用卡上有月付利息1.5%的欠款500美元。你每月偿还50美元而且不再有新的贷款。试写出能对此问题的变化确切模型的动力系统公式。
2、 下列数据表示从1790到 的美国人口数据
year
Population
year
Population
1790
3,929,000.00
1900
75,995,000.00
1800
5,308,000.00
1910
91,972,000.00
1810
7,240,000.00
1920
105,711,000.00
1820
9,638,000.00
1930
122,755,000.00
1830
12,866,000.00
1940
131,669,000.00
1840
17,069,000.00
1950
150,697,000.00
1850
23,192,000.00
1960
179,323,000.00
1860
31,443,000.00
1970
203,212,000.00
1870
38,558,000.00
1980
226,505,000.00
1880
50,156,000.00
1990
248,710,000.00
1890
62,948,000.00
281,416,000.00
求出能够相当好地拟合该数据的动力模型, 经过画出模型的预测值和数据值来测试你的模型。
实验二、 Testing Proportionality
比例性关系验证是计算机数据处理的重要内容, 对模型结果具有重大的影响, 它在工程技术中有着广泛的应用。对实际问题而言, 求出比例性常数是一个极其重要而又比较困难的问题。
一、 实验目的
掌握运用软件验证线性关系, 经过研究散点图与趋势线得到线性模型。经过对数据进行处理, 归纳出合适的模型。
1、 用Excel画散点图与趋势线, 对模型的线性关系进行分析;
2、 用Excel对数据进行处理, 归纳出合适的模型;
3、 用Excel计算不同模型的偏差, 选择合适的模型。
二、 算法实例
Example 2.1
Determine whether the following data support a proportionality argument for y∝z1/2. If so, estimate the slope.
y
3.5
5
6
7
8
Z
3
6
9
12
15
解答如下:
Excel操作步骤如下:
1. 打开excel表格, 输入X、 Y数据。
2. 在在插入函数算中Power函数, 令Power=1/2, 然后导入Z数据, 得
3.算出斜率
We estimate the model to be
4.画出y与z1/2的线性图, 如下:
Example 2.1
木材切割者希望利用容易得到的测量数据来估计木材的板英尺数。她们测量树木腰高处的直径, 以构建一个将预测板英尺数与直径相联系起来的函数的模型。利用下列数据供检验之用。
x
17
19
20
23
25
28
32
38
39
41
y
19
25
32
57
71
113
123
252
259
294
1. 考虑两个不同的假设, 每个假设生成一个模型, 充分分析每个模型。
(1) 假设所有的树木都是正圆柱体而且高度大致相同。
(2) 假设所有的树木都是正圆柱体而且高度与直径成比列
2. 哪个模型看起来好些? 为什么?
解答如下:
1、 当假设所有的树木都是正圆柱体而且高度大致相同时, 则成比列关系, 因此我们根据已知数据能够模拟出中的系数。当假设所有的树木都是正圆柱体而且高度与直径成比列时, 则成比列系, 因此我们根据已知数据能够模拟出中的系数。
下面进行excel数据处理, 找出比列关系, 如下结果
经过线性拟合可得如下
即我们可得到两种不同假设下的拟合方程:
与
2、 为比较两个模型, 我们做如下处理
其中分别为拟合误差, 做出误差分布图, 蓝为, 红为的结果。
经过比较可知第二种模型较好。
练习:
1.下面的数据中, 是美国黄松在树身中部测得的直径, 是体积的度量, 即用10除后的板英寸数, 变换数据画图, 检验模型, 并估计模型中参数和。
实验三、 Least Square Fitting
曲线拟合的最小二乘法是计算机数据处理的重要内容, 也是函数逼近的另一种重要方法, 它在工程技术中有着广泛的应用。对实际问题而言, 拟合曲线的选择是一个极其重要而又比较困难的问题, 必要时可由草图观察选取几种不同类型的拟合曲线, 再以其偏差小者为优, 经检验后再决定最后的取舍。
一、 实验目的
掌握运用软件进行最小二乘的参数估计, 经过合适的数据变换选择适当的线性回归模型。经过对模型偏差的计算, 选择合适的模型。
1、 用Excel对数据进行最小二乘参数估计, 掌握不同的操作工具;
2、 用Excel对数据进行变换, 选择合适的线性回归模型;
3、 用Excel计算不同模型的偏差, 选择合适的模型。
一、 算法实例
Example 3.1
Use the follow equations to estimate the coefficients of the line such that the sum of the squared deviations between the line and the following data points is minimized.
, the slope
, the intercept
(a)
x
1.0
2.3
3.7
4.2
6.1
7.0
y
3.6
3.0
3.2
5.1
5.3
6.8
(b)
x
29.1
48.2
72.7
92.0
118
140
165
199
y
0.0493
0.0821
0.123
0.154
0.197
0.234
0.274
0.328
For each problem, compute and to bound
步骤如下:
1.打开excel, 输入X、 Y数据
2.利用excel的各种求和函数, 计算出下列值
3.根据公式计算
=0.564, =2.215
4.利用工具数据分析( 如果没有, 可先加载宏) 回归, 做出X,Y的图像。
对于( b) , 可完全类似( a) 的步骤, 得出下结果。请同学们自己验证。
=864 ,=746496, =1.4414 , =2.0776,=1245.37, =117269.3, =194.99
=0.0016, =0.0029
Example 3.2
求使一数据点集与二次形模型间偏差平方和极小化的方法。使用这些方法对下列数据集找出三个参数的估计。
x
0.1
0.2
0.3
0.4
0.5
y
0.06
0.12
0.36
0.65
0.95
解答如下:
能够直接利用课本关于最小二乘估计公式计算三个参数, 下面我们用excel进行实验模拟, 如下图
从而三个参数的大小可直接得出
练习:
1.为拟合模型做一个适当的变换并估计参数和。
7
14
21
28
35
42
8
41
133
250
280
297
实验四 Data Experiments
当我们构造一个预测模型时, 总需要细心分析收集到的数据, 看数据存在什么样的倾向, 然后将数据变换得到新的函数, 最好写出其偏差, 这对拟合数学模型非常重要。
一、 实验目的
掌握运用软件进行数据分析, 选择合适的数据变换, 建立数学模型。经过对模型偏差的计算, 比较不同的模型。
1、 用Excel对数据进行分析, 选择合适的数据变换;
2、 用Excel构造差商表进行数据分析, 选择合适的低阶多项式模型;
3、 用Excel计算模型的偏差, 比较不同的模型
二、 算法实例
Example 4.1
The following data measure two characteristics of a ponderosa pine. The variable X is the diameter of the tree,in inches,measured at breast height;Y is a measure of volume-number of board feet divided by 10.fit a model to the data.The express Y in terms of X.
解答如下:
1.打开excel, 输入X、 Y数据, 并做出散点图
2.对X、 Y数据进行变换, 得到x^2、 ln y、 sqrt y。
3.分别已Y和x^2, ln y和X, sqrt y和X做散点图, 如下
4.从上述可知模型1的误差比较小。
Example 4.2
The following data represent the population of the United States from 1790 to . Construct a scatterplot of the given data. Is there a trend in the data? Are any of the data points outliers? Construct a divided difference table. Is smoothing with a low-order polynomial appropriate? If so, choose an appropriate polynomial and fit using the least-squares criterion of best fit. Anylyze the goodness of fit by examining appropriate indicators and graphing the model, the data points, and the deviations.
Year
Observed population
Year
Observed population
1790
3,929,000
1900
75,995,000
1800
5,308,000
1910
91,972,000
1810
7,240,000
1920
105,711,000
1820
9,638,000
1930
122,755,000
1830
12,866,000
1940
131,669,000
1840
17,069,000
1950
150,697,000
1850
23,192,000
1960
179,323,000
1860
31,443,000
1970
203,212,000
1870
38,558,000
1980
226,505,000
1880
50,156,000
1990
248,709,873
1890
62,948,000
281,416,000
解答如下:
首先均差计算公式可得下列差分表
divided difference table
均差
Year
Observed population
1790
392,900
1800
530,800
13,790
1810
7,240,000
670,920
32856.5
1820
9,638,000
239,800
-21556
-1813.75
1830
12,866,000
322,800
4150
856.8667
66.76542
1840
17,069,000
420,300
4875
24.16667
-20.8175
1850
23,192,000
612,300
9600
157.5
3.333333
1860
31,443,000
825,100
10640
34.66667
-3.07083
1870
38,558,000
711,500
-5680
-544
-14.4667
1880
50,156,000
1,159,800
22415
936.5
37.0125
1890
62,948,000
1,279,200
5970
-548.167
-37.1167
1900
75,995,000
1,304,700
1275
-156.5
9.791667
1910
91,972,000
1,597,700
14650
445.8333
15.05833
1920
105,711,000
1,373,900
-11190
-861.333
-32.6792
1930
122,755,000
1,704,400
16525
923.8333
44.62917
1940
131,669,000
891,400
-40650
-1905.83
-70.7417
1950
150,697,000
1,902,800
50570
3040.667
123.6625
1960
179,323,000
2,862,600
47990
-86
-78.1667
1970
203,212,000
2,388,900
-23685
-2389.17
-57.5792
1980
226,505,000
2,329,300
-2980
690.1667
76.98333
1990
248,709,873
2,220,487
-5440.64
-82.0212
-19.3047
281,416,000
3,270,613
52506.27
1931.564
50.33962
根据excel中”工具数据分析回归”, 可得如下图像
y = 670127x2 - 3E+06x + 8E+06
实验五、 Simulation
计算机模拟与预测方法在材料科学研究中得到愈来愈广泛的应用。蒙特卡罗模拟有时能相对容易地近似很复杂的随机系统, 而且与分析模型的应用范围常常受到限制相比, 蒙特卡罗模拟能够很容易在更广泛的条件下估计候选方案的性能, 在建立模型时能够排除许多繁琐的工作。
一、 实验目的
掌握运用软件进行Monte Carlo方法模拟确定型现象和概率型现象, 掌握随机数的生成, 理解Monte Carlo模拟法在存贮模型和排队模型中的应用。
1、 用Matlab进行Monte Carlo模拟, 编写程序计算面积与体积;
2、 用Matlab进行Monte Carlo模拟, 编写程序模拟抛硬币与掷骰子;
3、 用Matlab编写程序模拟存贮模型, 选择合理的进货量与进货周期;
4、 用Matlab编写程序模拟排队模型, 分析计算结果。
二、 算法实例
Example 5.1
Using Monte Carlo simulation, write an algorithm to calculate an approximation to by considering the number of random points selected inside the quarter circle
where the quarter circle is taken to be inside the square
Use the equation that =area /area.
步骤如下:
1.打开matlab7.0, 创立一个新的 .m文件
2.在文件中输入如下程序
3.调入程序, 运行
4. 最后得Pi=3.1359
Example 5.2
Using Monte Carlo simulation, write an algorithm to calculate that part of the volume of an ellipsoid
that lies in the fist octant, .
步骤如下: 输入如下程序, 运行后得V= 107.298
Example 5.3
Modify the ship harbor system algorithm to keep track of the number os ships waiting in the queue.
步骤如下: 输入如下程序
得 HT =95.8300, WT =28.5700, IDT =0.1695, MHT =197, MWT =121
练习:
1.将一个正规骰字连续郑100次, 用蒙特卡洛方法模拟总和的结果。
2.修正存储算法以了解未满足的需求, 以及加油站短缺汽油的天数。
展开阅读全文