离散数据拟合模型.docx

上传人:b****5 文档编号:27892266 上传时间:2023-07-06 格式:DOCX 页数:11 大小:246.42KB
下载 相关 举报
离散数据拟合模型.docx_第1页
第1页 / 共11页
离散数据拟合模型.docx_第2页
第2页 / 共11页
离散数据拟合模型.docx_第3页
第3页 / 共11页
离散数据拟合模型.docx_第4页
第4页 / 共11页
离散数据拟合模型.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

离散数据拟合模型.docx

《离散数据拟合模型.docx》由会员分享,可在线阅读,更多相关《离散数据拟合模型.docx(11页珍藏版)》请在冰豆网上搜索。

离散数据拟合模型.docx

离散数据拟合模型

成绩

辽宁工程技术大学上机实验报告

 

实验名称

实验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

教师

评语

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1