离散数据通过MATLAB 软件画出散点图.跪求帮忙阿.. 做好继续给分阿!!!

MATLAB 软件太大,学校网速太慢,下载不了阿,谁帮我利用这些数据做一个图.. 跪求了....
年份 1990 1991 1992 1993 1994 1995 1996 1997 1998
总人口 114.333 115.823 117.171 118.517 119.850 121.121 122.389 123.626 124.761
年份 1999 2000 2001 2002 2003 2004 2005
总人口 125.786 126.743 127.627 128.453 129.227 129.988 130.756

表1 各年份全国总人口数(单位:千万)

1) 将上面的离散数据通过MATLAB 软件画出散点图;
2) 观察分析时间(年)和人口数(万)之间的关系, 建立一个带有参数的人口函数模型;
3 根据人口数据表格,利用插值与拟合方法, 请确定各参数的值,并画出函数图形。

1)

t=[1990:2005];

y=[114.333  115.823  117.171   118.517   119.850   121.121  122.389 123.626 124.761 125.786 126.743 127.627 128.453 129.227 129.988 130.756];

plot(t,y,'r+') ,xlabel('年份(年)t'),ylabel('人口(千万)y'),title('各年份全国总人口数')

2)

通过观察散点图,很显然可以利用三次多项式来拟合

t=[1990:2005];

y=[114.333  115.823  117.171  118.517   119.850  121.121 122.389 123.626 124.761 125.786 126.743 127.627 128.453 129.227 129.988 130.756];

a=polyfit(t,y,3)   %用三次多项式对数据进行拟合

b=polyval(a,t);   %计算出每一点对应的拟合函数值

m=y-b;   %求出每一点对应的拟合误差

n=trapz(m.^2)   %求出拟合误差平方和

subplot(1,2,1),plot(t,y,'*',t,b,'m') ,xlabel('年份(年)t'),ylabel('人口(千万)y'),title('各年份全国总人口数')

subplot(1,2,2),plot(t,m),title('三次多项式拟合误差')   %画出拟合误差分析图形

运行结果为:

a =

     -15/36073      463/188     -82624/17          *      

n =

     516/13327

根据a的值确定函数表达式(分别为三次多项式从高到低幂的系数),n的值为拟合误差,由此可见误差较小,故此模型可用。

(图形我都没有办法插进去,其实还有两张图片才对)

追问

那由你上面得到的人口函数, 怎么计算1990年到2005年的人口增长率阿?,还有怎么计算2000年的人口增长率,和估计在2005年人口大约增长多少了?你可不可以帮我解答一下阿?我再给你50分阿,谢谢你阿...拜托咯..

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-02
哎 还是我来教你GM(1,1)模型吧,多好啊,多经典啊,多前沿啊,是吧,
GM(1,1)的程序代码我就不贴了啊,告诉你结果和图片就行了啊,model is perfect,matlab上提示语啊
实际值y=[114.333 115.823 117.171 118.517 119.850 121.121 122.389 123.626 124.761 125.786 126.743 127.627 128.453 129.227 129.988 130.756];
预测值y‘=[
114.3330 116.7961 117.8040 118.8207 119.8461 120.8803 121.9235 122.9757 124.0370 125.1074 126.1871 127.2760 128.3744 129.4823 130.5997 131.7268 132.8636 134.0102 135.1666 136.3331 137.5097 138.6964
] 这是1990到2011年的预测数据
方程为
y =
-13419.5489+13533.8819e^0.0085929*(t-1))

后6年的预测数据为:
132.8636 134.0102 135.1666 136.3331 137.5097 138.6964
相对误差为:0.004
图像为:插不进去,要的话找我的QQ:674843768
记得给我给点经验哦本回答被提问者采纳
第2个回答  2012-06-21
楼上回答的好详细!程序那样子没问题的,我再补充回答一下:
人口增长率应该是2005年的人口减去1990年的人口,除以年数。某一年的人口增长率(2000年为例),应该是得到的三次拟合函数 a=-15/36073x**3+463/188x**2-82624/17x+*求导后,带入x=2000,就是2000年的人口增长率了。
相似回答