离散数据拟合模型.docx
- 文档编号:27892266
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:11
- 大小:246.42KB
离散数据拟合模型.docx
《离散数据拟合模型.docx》由会员分享,可在线阅读,更多相关《离散数据拟合模型.docx(11页珍藏版)》请在冰豆网上搜索。
离散数据拟合模型
成绩
辽宁工程技术大学上机实验报告
实验名称
实验2离散数据拟合模型
院系
理学院
专业
班级
11-1
姓名
学号
日期
实验
目的
简述本次实验目的:
掌握离散数据拟合模型的建模方法,并会利用Matlab作数据拟合、数值计算与误差分析.
实验
准备
你为本次实验做了哪些准备:
上网查阅相关资料,阅读教材《数学建模》
实验
进度
本次共有4个练习,完成4个。
实验
总结
日
本次实验的收获、体会、经验、问题和教训:
实验题目:
已知美国人口统计数据如表,完成下列数据的拟合问题:
年份
1790
1800
1810
1820
1830
1840
1850
1860
1870
1880
1890
人口/百万人
年份
1900
1910
1920
1930
1940
1950
1960
1970
1980
1990
2000
人口/百万人
实验要求:
1、如果用指数增长模型
模拟美国人口1790年至2000年的变化过程,请用Matlab统计工具箱的函数nlinfit计算指数增长模型的以下三个数据拟合问题:
(1)取定x0=,t0=1790,拟合待定参数r;
程序代码:
>>p=@(r,t).*exp(r.*(t-1790));
>>t=1790:
10:
2000;
>>c=[,,,,,,,,,,,,,
,,,,,,,];
>>r=nlinfit(t,c,p,;
>>sse=sum((c-p(r,t)).^2);|
>>plot(t,c,'b*',1790:
1:
2000,p(r,1790:
1:
2000),'b')
>>axis([1790,2000,0,290])
>>xlabel('年份'),ylabel('人口(单位:
百万)')
>>title('拟合美国人口数据-指数增长型')
>>legend('拟合数据')
程序调用:
>>rr=
>>ssesse=+004
(2)取定t0=1790,拟合待定参数x0和r;
程序代码:
>>p=@(r,t)r
(2).*exp(r
(1).*(t-1790));
>>t=1790:
10:
2000;
>>c=[,,,,,,,,,
,,,,,,,,,,,];
>>r0=[,];
>>r=nlinfit(t,c,p,r0);
>>sse=sum((c-p(r,t)).^2);
>>plot(t,c,'b*',1790:
1:
2000,p(r,1790:
1:
2000),'b')
>>axis([1790,2000,0,290])
>>xlabel('年份'),ylabel('人口(单位:
百万)')
>>title('拟合美国人口数据-指数增长型')
>>legend('拟合数据')
程序调用:
>>rr=
>>ssesse=+003
(3)拟合待定参数t0,x0和r.要求写出程序,给出拟合参数和误差平方和的计算结果,并展示误差平方和最小的拟合效果图.
程序代码:
>>p=@(r,t)r
(2).*exp(r
(1).*(t-1790+1.*r(3)));
>>t=1790:
10:
2000;
>>c=[,,,,,,,,,
,,,,,,,,,,,];
>>r0=[,,1];
>>[r,x]=nlinfit(t,c,p,r0);
>>sse=sum((c-p(r,t)).^2);
>>a=1790+1.*r(3);
>>subplot(2,1,1)
>>plot(t,c,'b*',1790:
1:
2000,p(r,1790:
1:
2000),'b')
>>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('拟合误差')
程序调用:
>>rr=
>>xx=
Columns1through5
Columns6through10
Columns11through15
Columns16through20
Columns21through22
>>ssesse=+003
>>aa=+003
2、通过变量替换,可以将属于非线性模型的指数增长模型转化成线性模型,并用Matlab函数polyfit进行计算,请说明转化成线性模型的详细过程,然后写出程序,给出拟合参数和误差平方和的计算结果,并展示拟合效果图.
非线性模型的指数增长模型转化成线性模型
程序代码 :
>>t=1790:
10:
2000;
>>c=[,,,,,,,,,,,,,,,,,,,,,];
>>[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))).^2
>>c2=sum(c1)
>>subplot(2,1,2)
>>plot(t,c1,'k+',[1790,2000],[0,0],'k')
>>axis([1790,2000,-20,20])
>>xlabel('年份'),ylabel('误差')
>>title('拟合误差')
程序调用:
p=
s=R:
[2x2double]
df:
20
normr:
b1=
b2=
c1=+004*
Columns1through4
Columns5through8
Columns9through12
Columns13through16
Columns17through20
Columns21through22
c2=+004
3、请分析指数增长模型非线性拟合和线性化拟合的结果有何区别原因是什么
非线性拟合
线性拟合
4、如果用阻滞增长模型
模拟美国人口1790年至2000年的变化过程,请用Matlab统计工具箱的函数nlinfit计算阻滞增长的以下三个数据拟合问题:
(1)取定x0=,t0=1790,拟合待定参数r和N;
程序代码:
>>p=@(a,t)(a
(2).*./+(a
(2).*exp(-a
(1).*(t-1790)));
>>t=1790:
10:
2000;
>>c=[,,,,,,,,,,,,,,,,,,,,,];
>>a=nlinfit(t,c,p,[,350])
>>sse=sum((c-p(a,t)).^2)
>>plot(t,c,'r*',t,p(a,t),'r')
>>axis([1790,2000,0,300])
>>xlabel('年份'),ylabel('人口(单位:
百万)')
>>title('拟合美国人口数据—阻滞增长型')
>>legend('拟合数据')
程序调用:
a=
sse=+003
(2)取定t0=1790,拟合待定参数x0,r和N;
程序代码:
>>p=@(a,t)(a
(2).*a(3))./(a(3)+(a
(2)-a(3)).*exp(-a
(1).*(t-1790)));
>>t=1790:
10:
2000;
>>c=[,,,,,,,,,,,,,,,,,,,,,];
>>a=nlinfit(t,c,p,[,350,])
>>sse=sum((c-p(a,t)).^2)
>>plot(t,c,'r*',t,p(a,t),'r')
>>axis([1790,2000,0,300])
>>xlabel('年份'),ylabel('人口(单位:
百万)')
>>title('拟合美国人口数据—阻滞增长型')
>>legend('拟合数据')
程序调用:
a=
sse=
(3)拟合待定参数t0,x0,r和N.要求写出程序,给出拟合参数和误差平方和的计算结果,并展示误差平方和最小的拟合效果图.
>>p=@(a,t)(a
(2).*a(3))./(a(3)+(a
(2)-a(3)).*exp(-a
(1).*(t-1790+1*a(4))));
>>t=1790:
10:
2000;
>>c=[,,,,,,,,,,,,,,,,,,,,,];
>>[a,x]=nlinfit(t,c,p,[,350,,10])
>>sse=sum((c-p(a,t)).^2)
>>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=
x=Columns1through4
Columns5through8
Columns9through12
Columns13through16
Columns17through20
Columns21through22
sse=
t0=+003
教师
评语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 数据 拟合 模型