MATLAB初探:美国人口与年份数据拟合

拟合数据:

	年份t = 1790:10:1900;
	人口p = [3.0 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0];

待拟合关系:

	已知:人口增长与年份满足以下函数关系:
								x(t) = x0*e^rt;

解题过程:

1.转换成线性关系:

		Y = a1t + a2;( 其中 y=ln(x(t))、a1=rt 、a2=ln(x0) )

2.对以上线性关系拟合,求出a1、a2:

		Y = log(p);
		X=t;
		a=polyfit(X,Y,1);

3.根据求得的a1、a2反向得出rt、ln(x0),继而得到拟合出原函数关系,绘制图像,验证一致性:

		x0=exp(a(2));r=a(1);
		ti=1790:1900;
		pti=x0*exp(r*ti);
		plot(t,p,'o',ti,pti,'m')
		xlabel('Year')
		ylabel('Population')

完整代码实现:

t = 1790:10:1900;
p = [3.0 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0];
Y = log(p);X=t;
a=polyfit(X,Y,1);
x0=exp(a(2));r=a(1);
ti=1790:1900;
pti=x0*exp(r*ti);
plot(t,p,'o',ti,pti,'m')
xlabel('Year')
ylabel('Population')
plot(t,p,'o',ti,pti,'m')

运行截图:

在这里插入图片描述

结论:

由以上运行截图可知,已知关系模型x(t) = x0*e^rt与实际数据具有高度一致性,故该关系模型可信。

  • 10
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值