实验2离散数据拟合模型.docx
- 文档编号:25823945
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:14
- 大小:391.73KB
实验2离散数据拟合模型.docx
《实验2离散数据拟合模型.docx》由会员分享,可在线阅读,更多相关《实验2离散数据拟合模型.docx(14页珍藏版)》请在冰豆网上搜索。
实验2离散数据拟合模型
实验2离散数据拟合模型
一、实验名称:
离散数据拟合模型.
二、实验目的:
掌握离散数据拟合模型的建模方法,并会利用Matlab作数据拟合、数值计算与误差分析.
三、实验题目:
已知美国人口统计数据如表,完成下列数据的拟合问题:
(单位:
百万)
年份
1790
1800
1810
1820
1830
1840
1850
1860
1870
1880
1890
人口/
3.9
5.3
7.2
9.6
12.9
17.1
23.2
31.4
38.6
50.2
62.9
年份
1900
1910
1920
1930
1940
1950
1960
1970
1980
1990
2000
人口/
76.0
92.0
106.5
123.2
131.7
150.7
179.3
204.0
226.5
251.4
281.4
四、实验要求:
1如果用指数增长模型x(t)xoer(tto)模拟美国人口1790年至2000年的变化过程,请
用Matlab统计工具箱的函数nlinfit计算指数增长模型的以下三个数据拟合问题:
(1)取定X0=3.9,t0=1790,拟合待定参数r;
源程序:
clear
p=@(r,t)3.9.*exp(r.*(t-1790));
t=1790:
10:
2000;
c=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,20
4.0,226.5,251.4,281.4];
r=nlinfit(t,c,p,0.0359)
sse=sum((c-p(r,t)).A2)
plot(t,c,'r*',1790:
1:
2000,p(r,1790:
1:
2000),'r')
axis([1790,2000,0,290])
xlabel('年份'),ylabel('人口(单位:
百万)')
title('拟合美国人口数据一指数增长型')
legend(拟合数据')
调试结果:
r=0.0212sse=1.7418e+004
C
rL
2
Qo
5o
JIJI
DY
.Figuel
fileEditYrewInsenloolsDwktopWindowHelp
口日卫3k\-SDEJH0
拟営美国人口数爲一店数电饪型
(2)取定to=179O,拟合待定参数xo和r;
源程序:
clear
p=@(r,t)r
(2).*exp(r
(1).*(t-1790));
t=1790:
10:
2000;
c=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,20
4.0,226.5,251.4,281.4];
r0=[0.0359,3.9];
r=nlinfit(t,c,p,r0)
sse=sum((c-p(r,t)).A2)
plot(t,c,'r*',1790:
1:
2000,p(r,1790:
1:
2000),'r')
axis([1790,2000,0,290])
xlabel('年份'),ylabel('人口(单位:
百万)')
title('拟合美国人口数据一指数增长型')
legend(拟合数据')
调试结果:
0.01429940
FileEdkViewInoertToolsDesktopAindowHdlp
clear
P=@(r,t)r
(2).*exp(r
(1).*(t-1790+1.*r(3)));t=1790:
10:
2000;
c=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4];
r0=[0.0359,3.9,1];
[r,x]=nlinfit(t,c,p,r0)sse=sum((c-p(r,t)).A2)a=1790+1.*r(3)subplot(2,1,1)
plot(t,c,'r*',1790:
1:
2000,p(r,1790:
1:
2000),'r')
axis([1790,2000,0,290])
xlabel('年份'),ylabel('人口(单位:
百万)')
title('拟合美国人口数据一指数增长型')
legend(拟合数据')
subplot(2,1,2)
plot(t,x,'k+',[1790,2000],[0,0],'k')axis([1790,2000,-20,20])xlabel('年份'),ylabel('误差')title('拟合误差')
调试结果:
0.01427.326450,3522
匚alwins1through18
X=
CoIujuhsIthioujhIS
-11.0940-11.33^7-12.7277-13.37^5-1乳两鵜-13.432S-11・99飾-H肓盹
-8.1818-3.73210.72484.32189.36641L23641137615.09034.73901L0299
Columns19through22
lO.Olll2.9613'6.-1202-15.8260
5S€=
2.2639eK03
1.8404S-K03
H-i?
ur=1
FileyiewInsertTeo5DesktopWindowblelp
D已£3k食臥好動渥N”0|昌国|■四
2、通过变量替换,可以将属于非线性模型的指数增长模型转化成线性模型,并用Matlab
函数polyfit进行计算,请说明转化成线性模型的详细过程,然后写出程序,给出拟合参数和误差平方和的计算结果,并展示拟合效果图.
解题思路:
将属于非线性模型的指数增长模型转化成线性模型,即对函数式两边求导:
In[x(t)]=ln[x(0)]+r*[t-t(0)],最后变成一次函数形式:
Y=rX+b,即令In[x(t)]=Y,In[x(0)]=b,
[t-t(o)]=x.
源程序:
cleart=1790:
10:
2000;
c=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4];
[p,s]=polyfit(t-1790,log(c),1)
b1=p
(1)b2=exp(p
(2))subplot(2,1,1)plot(t,c,'r*',t,exp(polyval(p,t-1790)),'r')axis([1790,2000,0,290])xlabel('年份'),ylabel('人口(单位:
百万)')title('拟合美国人口数据一指数增长型')legend(拟合数据')
c1=(c-exp(polyval(p,t-1790))).A2c2=sum(c1)
subplot(2,1,2)plot(t,c1,'k+',[1790,2000],[0,0],'k')axis([1790,2000,-20,20])xlabel('年份'),ylabel('误差')title('拟合误差')
调试结果:
p=
bl
—
60202
1・7992
Q・0202
s—
K;
EiXZdouBlef
=
df;
riD匚mxi
50450*
cl=
1.Qr+Q04*
Columns1throughIS
0.00050,0004C.00030,00020,0000X00000,00080.0042
fl,JQ560.016?
0.02S7Q.Q4NQHb肋0*0513044280.QJ39QjQ%0*0076
Columns19through22
0,Q6S4Q.3Q430.S7321•翎02
・.
3.4892^+004
3、请分析指数增长模型非线性拟合和线性化拟合的结果有何区别?
原因是什么?
答:
如下图:
可以看出非线性拟合线性比较均匀、平滑,误差平方和的个数较多,误差相比较而言较小;而线性拟合线性不均匀,有很大的断点,误差平方和的个数也相比较而言较少,并且,误差随着人口数的增长而增长。
拟昏换差
线性拟合
4、如果用阻滞增长模型x(t)NXorrrrj模拟美国人口1790年至2000年的变
xo(Nxo)e(0)
化过程,请用Matlab统计工具箱的函数nlinfit计算阻滞增长的以下三个数据拟合问题:
(1)取定X0=3.9,t0=1790,拟合待定参数r和N;
源程序:
clear
p=@(a,t)(a
(2).*3.9)./(3.9+(a
(2)-3.9)*exp(-a
(1).*(t-1790)));
t=1790:
10:
2000;
c=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,20
4.0,226.5,251.4,281.4];
a=nlinfit(t,c,p,[0.03,350])
sse=sum((c-p(a,t)).A2)
plot(t,c,'r*',t,p(a,t),'r')
axis([1790,2000,0,300])
xlabel('年份'),ylabel('人口(单位:
百万)')
title('拟合美国人口数据一阻滞增长型')
legend(拟合数据')
调试结果:
源程序:
clear
p=@(a,t)(a
(2).a(3))./(a(3)+(a
(2)-a(3)).*exp(-a⑴.*(t-1790)));
t=1790:
10:
2000;
c=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,20
4.0,226.5,251.4,281.4];
a=nlinfit(t,c,p,[0.03,350,4.0])
sse=sum((c-p(a,t)).A2)
plot(t,c,'r*',t,p(a,t),'r')
axis([1790,2000,0,300])
xlabel('年份'),ylabel('人口(单位:
百万)')
title('拟合美国人口数据一阻滞增长型')
legend(拟合数据')
调试结果:
0.0215446.57327.6981
sse-
4.57.7405
Figure1
3叩
2S0
File*EditWctwIfimtI;ToolsDesktupWrntkjwHelp
□已怎社乙鋼®舉疋十耳口回■S3
报合芸国人口数据斗目淸增长型
<■':
g
O
94
1
O
190怖年
80
8
1
860
1)0
2
Do
(3)拟合待定参数t0,x0,r和N.要求写出程序,给出拟合参数和误差平方和的计算结
果,并展示误差平方和最小的拟合效果图•
源程序:
clear
p=@(a,t)(a
(2).*a(3))./(a(3)+(a
(2)-a(3)).*exp(-a
(1).*(t-1790+1*a⑷)));
t=1790:
10:
2000;
c=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,20
4.0,226.5,251.4,281.4];
[a,x]=nlinfit(t,c,p,[0.03,350,4.0,10])
sse=sum((c-p(a,t)).A2)
t0=1790+1*a(4)
subplot(2,1,1)
plot(t,c,'r*',t,p(a,t),'r')
axis([1790,2000,0,300])
xlabel('年份'),ylabel('人口(单位:
百万)')
title('拟合美国人口数据一阻滞增长型')
legend(拟合数据')
subplot(2,1,2)
plot(t,x,'k*',[1790,2000],[0,0],'k-')
axis([1790,2000,-20,20])
xlabel('年份'),ylabel('误差')
title('拟合误差图一阻滞增长型')
legend(拟合数据')
调试结果:
a二
0.0215446.57315.070019.6593
ColumnsIthrough18
-3.7981-4.2097-4.53S2-4.8S67-4.9065-4-77S3-3^229-L3S8S
-1.37021.65294.21395.43277.66915.43545.4207-5.6666-7.S827-2.0438
Colvnma19throveh22
-0.33*3-2.450E-1.43385.352L
ES«-|
4^7.T4Q5
rd=
U8097e+003
Figure1
i回i・£^r
FileEditViewIrisertToolsD^5«0OMndowHelp
拟合芙国人匚數据一爼帝壇长型
ftj
2
160013201&401660186013001&201940196C13902300
年份
槪盲溟差图一阻満増戏型
、15001U2D15401S&Q1SS019001^20T940196019SU2D0V
年份
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 离散 数据 拟合 模型