matlab在数学建模中的应用
- 格式:doc
- 大小:239.00 KB
- 文档页数:25
Matlab在数学建模中的应用
数学建模是通过对实际问题的抽象和简化,引入一些数学符号、变量和参数,用数学语言和方法建立变量参数间的内在关系,得出一个可以近似刻画实际问题的数学模型,进而对其进行求解、模拟、分析检验的过程。它大致分为模型准备、模型假设、模型构成、模型求解、模型分析、模型检验及应用等步骤。这一过程往往需要对大量的数据进行分析、处理、加工,建立和求解复杂的数学模型,这些都是手工计算难以完成的,往往在计算机上实现。在目前用于数学建模的软件中,matlab 强大的数值计算、绘图以及多样化的工具箱功能,能够快捷、高效地解决数学建模所涉及的众多领域的问题,倍受数学建模者的青睐。
1 Matlab在数学建模中的应用
下面将联系数学建模的几个环节,结合部分实例,介绍matlab在数学建模中的应用。
1.1 模型准备阶段
模型准备阶段往往需要对问题中的给出的大量数据或图表等进行分析,此时matlab的数据处理功能以及绘图功能都能得到很好的应用。
1.1.1 确定变量间关系
例1 已知某地连续20年的实际投资额、国民生产总值、物价指数的统计数据(见表),由这些数据建立一个投资额模型,根据对未来国民生产总值及物价指数的估计,预测未来的投资额。
表1 实际投资额、国民生产总值、物价指数的统计表
年份投资额国民生产总值物价指数年份投资额国民生产总值物价指数190.9596.70.716711229.81326.41.0575297.4637.70.727712228.71434.21.15083113.5691.10.743613206.11549.21.25794125.77560.767614257.917181.32345122.87990.790615324.11918.31.40056133.3873.40.825416386.62163.91.50427149.39440.8679174232417.81.63428144.2992.70.914518401.92631.61.78429166.41077.60.960119474.92954.71.9514101951185.9120424.530732.0688
记该地区第t年的投资为z(t),国民生产总值为x(t),物价指数为y(t)。
赋值:
z=[90.9 97.4 113.5 125.7 122.8 133.3 149.3 144.2 166.4 195
229.8 228.7 206.1 257.9 324.1 386.6 423 401.9 474.9 424.5]'
x=[596.7 637.7 691.1 756 799 873.4 944 992.7 1077.6 1185.9
1326.4 1434.2 1549.2 1718 1918.3 2163.9 2417.8 2631.6 2954.7
3073]'
y=[0.7167 0.7277 0.7436 0.7676 0.7906 0.8254 0.8679 0.9145
0.9601 1 1.0575 1.1508 1.2579 1.3234 1.4005 1.5042 1.6342
1.7842 1.9514 2.0688]'
先观察x与z之间,y与z之间的散点图
plot(x,z,'*')
plot(y,z,'*') 由散点图可以看出,投资额和国民生产总值与物价指数都近似呈线性关系,因此可以建立多元线性回归模型
012zxy
直接利用统计工具箱直接计算
[b,bint,r,rint,stats]=regress(z,X,alpha)
输入
z:n维数据向量
X:[ones(20,1) x y],这里的1是个向量,元素全为常数1,即为ones(n,1)
Alpha:置信水平,一般为0.05
输出
b:的估计值
bint:b的置信区间
r :残差向量z-Xb
rint: r的置信区间
Stats:检验统计量2R,F, p
代入上述公式
[b,bint,r,rint,stats]=regress(z,X,0.05)
有b =
322.8
0.4168
-859.2 即
322.75630.61850.859.479zxy
由
stats =
0.2672 920.7 0
知z的99.085%可由模型确定,F远超过F检验的临界值 ,p远小于=0.05 .
bint =
224. 421.7
0.0184 0.8151
-1121. -597.5
b的置信区间不包含零点,x,y对z影响都是显著的。
z=[90.9 97.4 113.5 125.7 122.8 133.3 149.3 144.2 166.4
195 229.8 228.7 206.1 257.9 324.1 386.6 423 401.9 474.9 424.5]';
x=[596.7 637.7 691.1 756 799 873.4 944 992.7 1077.6 1185.9
1326.4 1434.2 1549.2 1718 1918.3 2163.9 2417.8 2631.6 2954.7
3073]';
y=[0.7167 0.7277 0.7436 0.7676 0.7906 0.8254 0.8679 0.9145
0.9601 1 1.0575 1.1508 1.2579 1.3234 1.4005 1.5042 1.6342
1.7842 1.9514 2.0688]';
>> X=[ones(20,1) x y];
>> [b,bint,r,rint,stats]=regress(z,X,0.05)
b =
322.7563
0.6185
-859.5792
bint =
1.0e+003 *
0.2244 0.4211
0.0005 0.0008
-1.1215 -0.5977
r =
15.1352
5.7314
2.4699 -4.8419
-14.5678
-20.1721
-11.3072
-6.4726
2.4121
-1.6760
-4.3518
8.0709
6.4024
10.0992
18.6839
18.4146
9.5185
-14.8835
1.9954
-20.6605
rint =
-8.7701 39.0405 -19.9490 31.4118
-23.6775 28.6173
-30.8377 21.1539
-39.6068 10.4712
-44.0093 3.6652
-37.0101 14.3956
-32.8144 19.8691
-24.2139 29.0382
-28.3542 25.0022
-30.0489 21.3453
-18.4680 34.6097
-16.3235 29.1283
-15.2378 35.4362
-6.1337 43.5015
-4.5227 41.3519
-13.6047 32.6417
-38.9498 9.1828
-22.0553 26.0461
-38.2783 -3.0427
stats =
0.9909 920.4761 0 161.5988
>>
1.1.2 求数字特征
例2 已知50个数据x=[451.42 43.895 27.185 312.69 12.863
383.97 683.1 292.842 35.338 612.4 608.54 15.76 16.355 190.07
586.92 57.581 367.57 631.45 717.63 692.67 84.079 454.36 441.83
353.25 153.61 675.64 699.21 727.51 478.38 554.84 121.05 450.75
715.88 892.84 273.1 254.77 865.6 232.35 804.87 908.4 231.89
239.31 49.754 78.384 640.82 190.89 843.87 173.9 170.79 994.3],计算其数字特征。
输入数据,利用下列提供的函数可以求得各数字特征。
min(x): 向量x的元素的最小值
max(x): 向量x的元素的最大值
mean(x): 向量x的元素的算术平均值
geomean(x):向量x的元素的几何平均值
(n个正数的连乘积的n次算术根叫做这n个数的几何平均数)
median(x): 向量x的元素的中位数
var(x):向量x的元素的方差
std(x): 向量x的元素的标准差
diff(x): 向量x的相邻元素的差
sort(x): 对向量x的元素进行排序(Sorting) length(x): 向量x的元素个数
sum(x): 向量x的元素总和
prod(x): 向量x的元素总乘积
1.2 模型的求解分析与检验
1.2.1 拟合数据做预测
例3 以下是美国1790年至2000年的人口统计数据(单位:百万),建立人口发展模型并预测2010年美国的人口数目。
年17901800181018201830184018501860187018801890人口3.95.37.29.612.917.123.231.438.650.262.9年19001910192019301940195019601970198019902000人口7692106.5123.2131.7150.7179.3204226.5251.4281.4根据分析,第t年的人口x满足
0rtxxe (指数增长模型)
将上式两边取对数,得
yrta,lnyx,0lnax
由t=0:21,x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9
76 92 106.5 123.2 131.7 150.7 179.3 204 226.5 251.4 281.4]
y=log(x);f=polyfit(t,y,1),得到
r=0.2022,0x=1.7992aee=6.045
x(22)=516.770百万
1.2.2 绘制误差条图
将模型得出的结果与真实结果作比较,绘制出对比图和误差条图,反应模型与实际的吻合程度。如上例,模型结果与实际人口数的