当前位置:
文档之家› 数学实验第三讲 微分方程建模 (2)
数学实验第三讲 微分方程建模 (2)
3.5 x 10
11
马尔萨斯模型人口预测
3
2.5
2
N/ 人
几何级数的增长
1.5
1
0.5
0 1950
2000
2050 t/年
2100
2150
2200
Malthus模型曲线形状与大陆人口增长曲线差异较大
世界人口连线图 60
中国人口增长 14
50
12
40
10
x(亿 )
30
8
20
6
10
4
0 1600
1650
Matlab非线性拟合函数
[B,SSE] = lsqcurvefit(FUN,B0,XDATA,YDATA) 原理:基于Trust-Region-Reflective算法和LevenbergMarquardt 算法,通过最小化残差平方和求解模型中的参 数。 rt 对于Malthus人口增长模型: x ( t ) ce 求这样的c,r, 使得
R2 =
0.9754
t=[1625
x=[5 10
1830
20
1930
30 40
1960
50
1974
60]';
1987
1999]';
scatter(t,x,'r','filled'),hold on Malthus=inline('b(1)*exp(b(2)*t)','b','t'); b=[0.01 0.01];
则t时刻人口的变化速度为:
dx rx 于是x(t)满足如下微分方程: dt x(0) c
应用Matlab解微分方程
微分方程的求解 Dsolve(’eqn1’,’eqn2’,…,’x’) equi表示第i个微分方程,或者初始条件等 式 ‘x’是自变量,默认自变量为t Dy表示因变量y的一阶导数,D2y表示因变 量y的二阶导数 初始条件的写法:y(a)=b,表示x=a时,y=b Dy(a)=b,表示x=a时,y’=b
世界人口
年 人口(亿) 1625 5
回顾人口发展的历史
1830 10 1930 20 1960 30 1974 40 1987 50 1999 60
中国大陆人口
年 人口(亿) 1908 1933 3 4.7 1953 6 1964 7.2 1982 10.3 1990 2000 11.3 2010 2014
12.95 13.39 13.67
世界人口连线图 60
中国人口增长 14
50
12
40
10
x(亿 )
30
8
20
6
10
4
0 1600
1650
1700
1750
1800 t(年 )
1850
1900
1950
2000
2 1900
1920
1940
1960
1980
2000
2020
2.微分方程建模
主要的人口模型: • 马尔萨斯(Malthus)模型 • Logistic模型
t=t-1625;%以1625年为时间起点 x=[5 10 20 30 40 50 60]';
%内联函数法建立Malthus模型函数
%注意:模型函数里向量一定用点乘除幂运算 Malthus=inline(‘b(1)*exp(b(2)*t) ’, ‘b’, ‘t) b=[0.01 0.01];%确定参数初始值 [b SSE]=lsqcurvefit(Malthus,b,t,x) %拟合 注意: • 程序里b为参数向量,b(1)为Malthus模型里参数c, b(2)为参 数r; • 内联函数建立模型函数时,凡涉及到向量乘、除、幂运算的, 必须用点运算。
[b SSE]=lsqcurvefit(Malthus,b,t-1625,x)
SST=sum((x-mean(x)).^2); R2=(SST-SSE)/SST t=1625:5:2005; y=Malthus(b,t-1625);
plot(t,y)
模型预测
假如人口数真能保持每34.6年增加一倍,那么人口数将 以几何级数的方式增长。例如,到2510年,人口达2×1014个, 即使海洋全部变成陆地,每人也只有9.3平方英尺的活动范围, Malthus 而到2670年,人口达 36模型实际上只有在群体总数 ×1015个,只好一个人站在另一人的 不太大时才合理,到总数增大时, 肩上排成二层了。 故马尔萨斯模型是不完善的。 所以 Malthus模型假设的人口净 生物群体的各成员之间由于有限的 增长率不可能始终保持常数, 生存存空间,有限的自然资源及食 它应当与人口数量有关。 物等原因,就可能发生生存竞争等 现象。
1700
1750
Malthus模型的假设:人口净增长率为常数? 资源是有限的,任何生物的种群数量不可能无限增 长,种群的增长速度也受到自然资源的约束。
1800 t(Βιβλιοθήκη )18501900
1950
2000
2 1900
1920
1940
1960
1980
2000
2020
应用数学模型时应注意该模型的假设。
2.2 Logistic模型
2.1 马尔萨斯(Malthus)模型 :马尔萨斯在分析人口出生 与死亡情况的资料后发现,人口净增长率r基本上是一常数。 假设:人口净增长率r是一常数 符号:x( t ) t时 刻 时 的 人 口 , 可 微 函 数 x0 t 0 时 的 人 口
v t rx ( t ) x (t t ) x (t ) t时刻人口的变化速度还可表示为: v t t x (t t ) x (t ) dx (t ) rx (t ) rx (t ) t dt
人口模型:Malthus模型与Logistic模型 1.问题来源和背景: 1.1俄罗斯国土面积辽阔,但是人口却不断减少, 尽管政府不断鼓励生育,但是依然没有改变人 口萎缩态势,因人口减少,一些城市不得不撤 销。 1.2世界第三大经济体日本,人口老龄化严重, 年轻人的负担加重,养老金的支出可能会让日 本面临经济崩溃。 1.3中国已经放开单独二胎,是否要全面放开二 胎?中国人口未来如何增长,将影响国家的命 运。
t=[1625 x=[5 10
1830 20
1930 30 40
1960 50
1974 60]';
1987
1999]';
Malthus=inline('b(1)*exp(b(2)*t)','b','t');
b=[0.01 0.01];
[b SSE]=lsqcurvefit(Malthus,b,t-1625,x) SST=sum((x-mean(x)).^2); R2=(SST-SSE)/SST
2 ˆ ( x (t ) x )
达到最小
Fun为要拟合模型的函数形式 B0为模型参数初始值或初始值向量 XDATA为自变量观测数据 yDATA为因变量观测数据 2 ˆ ( x ( t ) x ) B为模型参数的解 SSE为残差平方和
t=[1625
1830
1930 1960 1974 1987 1999]';
Malthus 模型:x ( t )
ce
c*exp(r*t)
rt
x ( t ) ce Malthus 人口增长模型:
rt
当r>0时,表明人口将按指数规律无限增长,因此又称为人 口指数模型。
马尔萨斯模型的一个显著特点:种群数量翻一番所需的时 间是固定的。 rt
2 c ce
令种群数量翻一番所需的时间为T,则有: 故
1.分析实际问题,建立微分方程模型 通常要建立y与x的关系,但是常常在实际问题中,y与x的关系不 能直接写出来,而是知道y关于x的导数,或者是dy/dx,因而建立 微分方程 2.求出方程的解
求出未知函数的解析表达式,利用MATLAB微分方程的解,无解 解析解时,利用MATLAB的数值解
3.对存在解析解的微分方程,写出未知函数的表达式,写出因变 量关于因变量的模型。 4.对上述模型进行验证和评价 应用Matlab软件,采用lsqcurvefit函数,用真实数据区拟合 模型,计算模型中的参数值,并计算决定系数的值,来评估模型。
假设:人口净增长率应当与人口数量有关,即: r=r(x) 从而有: dx r( x) x dt x ( 0 ) x0 对马尔萨斯模型引入一次项(竞争项),令 r(x)=r-ax 此时得到微分方程:
最简单的形式是常数,此 dx r(x)为了得出一个有实际意义 ( r(的模型,我们不妨采用一 ax ) x 时得到的就是马尔萨斯模型。 r x)是未知函数,但根 dt 对马尔萨斯模型的最简单的改 下工程师原则。工程师们 据实际背景,它无法用 进就是引进一次项(竞争项) 在建立实际问题的数学模 拟合方法来求 。 型时,总是采用尽可能简 单的方法。
Kx x r ( x) ( )r r (1 ) K K
x dx r (1 ) x dt K x(0) x0
红点为世界人口的真实观测值 曲线为模型的预测值
60
50
40
30
20
10
0 1600
1650
1700
1750
1800
1850
1900
1950
2000
2050
D.模型的拟合优度检验
SS T SS E 2. 计算决定系数 R SS T
2 2 ( x x )
2 2 ˆ ( x x ) ( x x )