如何用matlab解Malthus模型并画图
题目要求:针对Malthus人口模型,练习用美国人口统计数据估计模型中的参数模型建立:记时刻t的人口为x(t),当考察一个国家或一个较大地区的人口时,x(t)是一个很大的...
题目要求:针对Malthus人口模型, 练习用美国人口统计数据估计模型中的参数
模型建立:记时刻t的人口为x(t),当考察一个国家或一个较大地区的人口时,x(t)是一个很大的整数。为了利用微积分这一数学工具,将x(t)是为连续、可微函数。记初始时刻(t=0)的人口为x0。假设人口增长率为常数r,即单位时间内x(t)的增量等于r乘以x(t)。考虑t到t+t1时间内人口的增量,显然有
x(t+t1)-x(t)=rx(t)t1
令t1趋向于0,得到x(t)满足微分方程dx/dt=rx,x(0)=x0
有这个方程很容易解出x(t)=x0*e^rt…………(1)
r>0时(3)是表示人口箭杆指数规律随时间无限增长,称为指数增长模型。
参数估计:(1)式的参数r和x0可以用数据估计。为了利用简单的线性最小二乘法,将(3)式取对数,可得y=rt+a,y=lnx,a=lnx0
我的问题:如何编写matlab程序,拟合数据,得出r和x0的值?并画出指数增长模型拟合图形(有1790年至1900年的和1790年至2000年两个)。
1790-2000年美国实际人口数:(单位:亿)
1790年:3.9
1800年:5.3(以下依次以10年类推)
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
如果满意会追加分数,谢谢! 展开
模型建立:记时刻t的人口为x(t),当考察一个国家或一个较大地区的人口时,x(t)是一个很大的整数。为了利用微积分这一数学工具,将x(t)是为连续、可微函数。记初始时刻(t=0)的人口为x0。假设人口增长率为常数r,即单位时间内x(t)的增量等于r乘以x(t)。考虑t到t+t1时间内人口的增量,显然有
x(t+t1)-x(t)=rx(t)t1
令t1趋向于0,得到x(t)满足微分方程dx/dt=rx,x(0)=x0
有这个方程很容易解出x(t)=x0*e^rt…………(1)
r>0时(3)是表示人口箭杆指数规律随时间无限增长,称为指数增长模型。
参数估计:(1)式的参数r和x0可以用数据估计。为了利用简单的线性最小二乘法,将(3)式取对数,可得y=rt+a,y=lnx,a=lnx0
我的问题:如何编写matlab程序,拟合数据,得出r和x0的值?并画出指数增长模型拟合图形(有1790年至1900年的和1790年至2000年两个)。
1790-2000年美国实际人口数:(单位:亿)
1790年:3.9
1800年:5.3(以下依次以10年类推)
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
如果满意会追加分数,谢谢! 展开
展开全部
clc;clear
t=1790:10:2000;
x=[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];
y=log(x);
p=polyfit(t,y,1)
r=p(1),x0=exp(p(2))
Y=polyval(p,t);
X=exp(Y);
%方法二,非线性回归
fun=inline('a(1)*exp(a(2)*t)','a','t')
format short g
a=nlinfit(t,x,fun,[1.7139e-010 0.02]);
X0=a(1),rr=a(2)
X1=a(1)*exp(a(2)*t);
plot(t,x,'o',t,X,t,X1)
结果:
p =
0.020219 -34.393
r =
0.020219
x0 =
1.1565e-015
X0 =
1.3155e-010
rr =
0.014223
从图形中可以看出,非线性方法效果更好。
t=1790:10:2000;
x=[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];
y=log(x);
p=polyfit(t,y,1)
r=p(1),x0=exp(p(2))
Y=polyval(p,t);
X=exp(Y);
%方法二,非线性回归
fun=inline('a(1)*exp(a(2)*t)','a','t')
format short g
a=nlinfit(t,x,fun,[1.7139e-010 0.02]);
X0=a(1),rr=a(2)
X1=a(1)*exp(a(2)*t);
plot(t,x,'o',t,X,t,X1)
结果:
p =
0.020219 -34.393
r =
0.020219
x0 =
1.1565e-015
X0 =
1.3155e-010
rr =
0.014223
从图形中可以看出,非线性方法效果更好。
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询