(完整word版)数学实验报告 曲线拟合人口增长模型及其数量预测
- 格式:doc
- 大小:86.00 KB
- 文档页数:4
曲线拟合实验报告[优秀范文5篇]第一篇:曲线拟合实验报告数值分析课程设计报告学生姓名学生学号所在班级指导教师一、课程设计名称函数逼近与曲线拟合二、课程设计目的及要求实验目的: ⑴学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题。
⑵学会基本的矩阵运算,注意点乘与叉乘的区别。
实验要求: ⑴编写程序用最小二乘法求拟合数据的多项式,并求平方误差,做出离散函数与拟合函数的图形;⑵用MATLAB 的内部函数polyfit 求解上面最小二乘法曲线拟合多项式的系数及平方误差,并用MATLAB的内部函数plot作出其图形,并与(1)结果进行比较。
三、课程设计中的算法描述用最小二乘法多项式曲线拟合,根据给定的数据点,并不要求这条曲线精确的经过这些点,而就是拟合曲线无限逼近离散点所形成的数据曲线。
思路分析 : 从整体上考虑近似函数)(x p 同所给数据点)(i iy x , 误差i i iy x p r -=)(的大小,常用的方法有三种:一就是误差i i iy x p r -=)(绝对值的最大值im ir≤≤ 0max ,即误差向量的无穷范数;二就是误差绝对值的与∑=miir0,即误差向量的 1成绩评定范数;三就是误差平方与∑=miir02的算术平方根,即类似于误差向量的 2 范数。
前两种方法简单、自然,但不便于微分运算,后一种方法相当于考虑 2 范数的平方,此次采用第三种误差分析方案。
算法的具体推导过程: 1、设拟合多项式为:2、给点到这条曲线的距离之与,即偏差平方与:3、为了求得到符合条件的 a 的值,对等式右边求偏导数,因而我们得到了:4、将等式左边进行一次简化,然后应该可以得到下面的等式5、把这些等式表示成矩阵的形式,就可以得到下面的矩阵:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∑∑∑∑∑∑∑∑∑∑∑=====+==+====niininiiknikinikinikinikiniiniinikiniiyyyaax x xx x xx x11i11012111111211 1an MMΛM O M MΛΛ 6.将这个范德蒙得矩阵化简后得到⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡n kkn nkkyyyaaax xx xx x M MΛM O M MΛΛ21102 21 1111 7、因为 Y A X = * ,那么 X Y A / = ,计算得到系数矩阵,同时就得到了拟合曲线。
Logistic 人口发展模型一、题目描述建立Logistic 人口阻滞增长模型 ,利用表1中的数据分别根据从1954年、1963年、1980年到2005年三组总人口数据建立模型,进行预测我国未来50年的人口情况.并把预测结果与《国家人口发展战略研究报告》中提供的预测值进行分析比较。
分析那个时间段数据预测的效果好?并结合中国实情分析原因。
表1 各年份全国总人口数(单位:千万)二、建立模型阻滞增长模型(Logistic 模型)阻滞增长模型的原理:阻滞增长模型是考虑到自然资源、环境条件等因素对人口增长的阻滞作用,对指数增长模型的基本假设进行修改后得到的。
阻滞作用体现在对人口增长率r 的影响上,使得r 随着人口数量x 的增加而下降。
若将r 表示为x 的函数)(x r 。
则它应是减函数。
于是有:0)0(,)(x x x x r dt dx== (1)对)(x r 的一个最简单的假定是,设)(x r 为x 的线性函数,即 )0,0()(>>-=s r sxr x r (2) 设自然资源和环境条件所能容纳的最大人口数量mx ,当mx x =时人口不再增长,即增长率)(=m x r ,代入(2)式得m x rs =,于是(2)式为)1()(mx x r x r -= (3)将(3)代入方程(1)得:⎪⎩⎪⎨⎧=-=0)0()1(x x x x rx dtdxm (4)解得:rt mme x x x t x --+=)1(1)(0(5)三、模型求解用Matlab 求解,程序如下: t=1954:1:2005;x=[60.2,61.5,62.8,64.6,66,67.2,66.2,65.9,67.3,69.1,70.4,72.5,74.5,76.3,78.5,80.7,83,85.2,87.1,89.2,90.9,92.4,93.7,95,96.259,97.5,98.705,100.1,101.654,103.008,104.357,105.851,107.5,109.3,111.026,112.704,114.333,115.823,117.171,118.517,119.85,121.121,122.389,123.626,124.761,125.786,126.743,127.627,128.453,129.227,129.988,130.756];x1=[60.2,61.5,62.8,64.6,66,67.2,66.2,65.9,67.3,69.1,70.4,72.5,74.5,76.3,78.5,80.7,83,85.2,87.1,89.2,90.9,92.4,93.7,95,96.259,97.5,98.705,100.1,101.654,103.008,104.357,105.851,107.5,109.3,111.026,112.704,114.333,115.823,117.171,118.517,119.85,121.121,122.389,123.626,124.761,125.786,126.743,127.627,128.453,129.227,129.988];x2=[61.5,62.8,64.6,66,67.2,66.2,65.9,67.3,69.1,70.4,72.5,74.5,76.3,78.5,80.7,83,85.2,87.1,89.2,90.9,92.4,93.7,95,96.259,97.5,98.705,100.1,101.654,103.008,104.357,105.851,107.5,109.3,111.026,112.704,114.333,115.823,117.171,118.517,119.85,121.121,122.389,123.626,124.761,125.786,126.743,127.627,128.453,129.227,129.988,130.756];dx=(x2-x1)./x2; a=polyfit(x2,dx,1);r=a(2),xm=-r/a(1)%求出xm 和rx0=61.5;f=inline('xm./(1+(xm/x0-1)*exp(-r*(t-1954)))','t','xm','r','x0');%定义函数 plot(t,f(t,xm,r,x0),'-r',t,x,'+b');title('1954-2005年实际人口与理论值的比较') x2010=f(2010,xm,r,x0) x2020=f(2020,xm,r,x0) x2033=f(2033,xm,r,x0)解得:x(m)= 180.9516(千万),r= 0.0327/(年),x(0)=61.5得到1954-2005实际人口与理论值的结果:根据《国家人口发展战略研究报告》我国人口在未来30年还将净增2亿人左右。
中国人口增长预测摘要本文从中国人口的实际情况和人口增长的特点出发,根据题目和中国统计年鉴中的相关数据,建立了两个关于中国人口增长的数学模型,并对中国人口做出了分析和预测。
模型一:利用中国统计年鉴中 2000—2005 年人口的数据,运用灰色理论的基本原理建立 GM(1,1) 模型。
该模型利用离散数据列进行生态处理,建立动态的微分方程,对我国近5年、10年、20年的总人口分别进行了预测。
又根据中国人口城乡分布不同且总趋势也不同的特点,把全国人口分为城市人口、城镇人口、乡村人口三部分分别进行灰色预测。
结果表明,该模型较好的反映并预测中国人口短中期和长期的变化情况。
模型二:按人口年龄结构特征,将人口分为幼年(0—14岁)男女、中年(15—49岁)男女、老年(50岁以上)男女。
各年龄段的人口变化是由出生率、死亡率和转化为其他年龄段的转化人数决定的。
根据各年龄段人口数量变化特点,对各年龄段转化人数引入转化因子,改进马尔萨斯模型,附带出生率、死亡率、生育率、出生性别比率等约束条件,建立了新的具有年龄结构的人口增长模型。
结合我国人口的特点,运用已知数据和利用微分方程的数值解,预测出男性和女性幼年、中年、老年的人口数量。
可反映中国不同年龄结构的人口分布情况。
关键词:灰色预测;小误差频率;微分方程组;人口模型;转移因子一.问题重述中国是一个人口大国,人口问题始终是制约我国发展的关键因素之一。
因此人口预测的科学性、准确性是至关重要的。
英国人口学家马尔萨斯的人口指数增长模型和荷兰生物学家的Logistic模型都是经典的人口预测模型。
但是,影响中国人口的因素较多,人口结构较复杂,这些模型对人口预测很粗略,甚至是不准确的。
因此,我们要根据我国具体的人口结构现状(如老龄化进程加速)、人口的分布现状(如乡村人口城镇化)、人口比率现状(如出生人口性别比持续升高)等特点,来较准确、较具体地对中国人口进行预测,建立人口增长的数学模型,由此对中国人口中短期和长期增长趋势做出预测。
数学与计算科学学院实验报告实验项目名称人口预报所属课程名称数学模型实验类型综合型实验日期班级信计1001班学号201053100127姓名徐超成绩129207 129735 130137)得人口预测方程:0.022552ˆ()176060.7575988.75t Xt e -=- 将各个年份分别代入上面的方程即得各个年份的人口数据预测值,然后将其分别与实际值比较,并计算出其误差.实际值与预测值的比较图[1]该模型对于中短期的人口预测,所得结果较为准确,大部分预测数据与实际数据的误差率都在2%以内,较好地估计出了最近几十年的人口数量。
根据我们的模型所预测出的结果,到本世纪中叶我国的人口数量将超过15亿,但是根据国内的本课题专家研究,随着我国经济社会发展和计划生育工作加强,可以预测我国的总人口将于2010年、2020年分别达到13.6亿人和14。
5亿人,2033年前后达到峰值15亿人左右,即我国人口的上限不会超过15亿人。
这一结论与我们的模型所得到的数据有所出入。
于是我们将模型进行改进,选择在长期预测方面比较精准的模型(2)Logistic 人口模型来求解. B 、模型(2)这个问题是典型的伯努利方程初值问题,其解为:()-(-)01(-1)0w mw t t t w m ew μ=+分析上式可知:(1)当t →∞时,()m w t w →,即无论人口初值如何随着时间推移而变化,人口总数总是趋向于一个确定的值m w ;(2)222(1)md w wdt w μ=-,所以当人口达到极限值的一半2m w 时,属于加速增长,超过一半属于减速增长,但是增长率仍为正的,并且其增长率随时间的增加而减少。
根据1981年~2005年的全国人口统计数据,利用计算机Matlab 编程得,0.0422μ=,150000Wm =从而得到全国总人口数的Logistic 模型方程为:0.0422(1981)150000()1500001(1)100072t w t e --=+-利用该模型对1981年~2005年的人口数据进行检验并对2006年~2050年的人口数据进行预测。
数据拟合与曲线拟合实验报告【数据拟合与曲线拟合实验报告】1. 实验介绍数据拟合与曲线拟合是数学和统计学中非常重要的概念和方法。
在科学研究、工程技术和数据分析中,我们经常会遇到需要从一组数据中找到代表性曲线或函数的情况,而数据拟合和曲线拟合正是为了解决这一问题而存在的。
2. 数据拟合的基本原理数据拟合的基本思想是利用已知的一组数据点,通过某种数学模型或函数,找到一个能够较好地描述这组数据的曲线或函数。
常见的数据拟合方法包括最小二乘法、最小二乘多项式拟合、指数拟合等。
在进行数据拟合时,我们需要考虑拟合的精度、稳定性、可行性等因素。
3. 曲线拟合的实验步骤为了更好地理解数据拟合与曲线拟合的原理与方法,我们进行了一组曲线拟合的实验。
实验步骤如下:- 收集一组要进行拟合的数据点;- 选择合适的拟合函数或模型;- 利用最小二乘法或其他拟合方法,计算拟合曲线的参数;- 对拟合结果进行评估和分析;- 重复实验,比较不同的拟合方法和模型。
4. 数据拟合与曲线拟合的实验结果通过实验,我们掌握了数据拟合和曲线拟合的基本原理与方法。
在实验中,我们发现最小二乘法是一种简单而有效的数据拟合方法,能够较好地逼近实际数据点。
我们还尝试了多项式拟合、指数拟合等不同的拟合方法,发现不同的拟合方法对数据拟合的效果有着不同的影响。
5. 经验总结与个人观点通过这次实验,我们对数据拟合和曲线拟合有了更深入的理解。
数据拟合是科学研究和实践工作中不可或缺的一部分,它能够帮助我们从一堆杂乱的数据中提炼出有用的信息和规律。
曲线拟合的精度和稳定性对研究和实践的结果都有着重要的影响,因此在选择拟合方法时需要慎重考虑。
6. 总结在数据拟合与曲线拟合的实验中,我们深入探讨了数据拟合和曲线拟合的基本原理与方法,并通过实验实际操作,加深了对这一概念的理解。
数据拟合与曲线拟合的重要性不言而喻,它们在科学研究、工程技术和信息处理中发挥着重要的作用,对我们的日常学习和工作都具有重要的指导意义。
关键字:人口数平衡点方程模型运动预测曲线稳定增长人口一题目:请在人口增长的简单模型的基础上。
" (1)找到现有的描述人口增长,与控制人口增长的模型;" (2)深入分析现有的数学模型,并通过计算机进行仿真验证;" (3)选择一个你们认为较好的数学模型,并应用该模型对未来20年的某一地区或国家的人口作出有关预测;" (4)就人口增长模型给报刊写一篇文章,对控制人口的策略进行论述。
二摘要:本次建模是依照已知普查数据,利用Logistic模型,对中国人口的增长进行预测。
首先假设人口增长符合Logistic模型,即引入常数,用来表示自然环境条件所能容许的最大人口数。
并假设净增长率为,即净增长率随着人口数N(t)增长而减小,当N(t) 时,净增长率趋于零。
按照这个假设,。
用参数=3.0,r=0.0386, =1908, =14.5。
画出N=N(t)的图像,作为人口增长模型的一种近似。
做微分方程解的定性分析,求出N=N(t)的驻点和拐点,按照函数作图方法列出定性分析表,作出相轨迹的运动图。
当初始人口 <时,方程的解单调递增到地趋向,这意味着如果使用Logistic模型描述人口增长,则人口发展地总趋势是渐增到最大人口数,因此可作为人口的预测值,也称谓平衡点。
用导数做稳定分析,为判断平衡点是否为稳定,可在平面上绘制f(x)的图象,然后像函数绘图那样,用导数进行定性分析,通过图看出人口数N(t)按时间是递增的,当人口数未达到饱和状态的时候,将逐渐地趋向,这意味着是稳定的平衡点。
按该模型,未来人口的数量将随着时间的演化,从初始状态出发达到极限状态,这样就给出了人口的未来预测。
三问题的提出1.Malthus模型英国统计学家Malthus(1766-1834)发现人口增长率是一个常数。
设t时刻人口为N(t),因为人口总数很大,可近似把N(t)当作连续变量处理。
Malthus的假设是:在人口的自然增长过程中,净相对增长率(出生率减去死亡率)是常数,即单位时间内人口的增长量与人口总数成正比。
20 12 ——20 13 学年第 2 学期合肥学院数理系实验报告课程名称:数学模型实验项目:微分方程模型—人口模型与预测实验类别:综合性□设计性□验证性□专业班级:10级数学与应用数学(2)班姓名:王倩学号:1007022039 实验地点:数理系机房实验时间:2013年5月2日指导教师:闫晓辉成绩:一.实验目的:掌握常微分方程模型的建模方法,并能用数值算法或MATLAB 库函数求解。
二.实验内容:下表列出了中国1982-1998年的人口统计数据,取1982年为起始年(0=t ),1016540=N 万人,200000=m N 万人。
实验要求:1、建立中国人口的指数增长模型,并用该模型进行预测,与实际人口数据进行比较。
2、建立中国人口的Logistic 模型,并用该模型进行预测,与实际人口数据进行比较。
3、绘图,在图中标出中国人口的实际统计数据,并画出两种模型的预测曲线。
三. 实验方案(程序设计说明)模型一:指数增长模型(马尔萨斯(Malthus )模型)假设:人口净增长率r 是一常数符号:x(t )t --时刻时的人口,可微函数00x t --=时的人口 则()()()x t t x t r x t t+∆-=∆于是x (t )满足如下微分方程:00()dxrxdt x x ⎧=⎪⎨⎪=⎩解为:0()rt x t x e = 模型二:Logistic 模型人口净增长率应当与人口数量有关,即: r =r (x )从而有:00()()dxr x xdt x x ⎧=⎪⎨⎪=⎩对马尔萨斯模型引入一次项(竞争项),令 r (x )=r -ax 此时得到微分方程:()dxr ax x dt=-或(1)m dx x r x dt x =-可改写成:()m mdx rx x x dt x =- 分离变量:11m dx rdt x x x ⎛⎫+= ⎪-⎝⎭两边积分并整理得: 1mrtx x Ce-=+ 令x (0)=0x ,求得: 0001m mx x x C x x -==- 满足初始条件x (0)=0x 的解为: 011()()mrtm x x t xe x -=+-易见: lim ()m t x t x →+∞=四. 实验步骤或程序(经调试后正确的源程序)1、matlab 源程序%以1982-1998年共计17个数据为例进行拟合: t=0:16; %输入数据s=[101654 103008 104357 105851 107507 109300 111026 112704 114333 115823 117171 118517 119850 121121 122389 123626 124810];y=log(s); p=polyfit(t,y,1)2、matlab 源程序 t=0:16;s=101654*(1+0.0131).^t; plot(t,s,'r') hold on t=0:16;s=[101654 103008 104357 105851 107507 109300 111026 112704 114333 115823 117171 118517 119850 121121 122389 123626 124810]; plot(t,s,'o') hold on t=0:16;s=200000./(1+(200000/101654-1)*exp(-0.029*t)); plot(t,s,'c')五.程序运行结果1、运行结果p = 0.0131 11.534200131115342..y t =+001153421021502451ln ..x x ∴=⇒= 0013110215024514.().t x t e ∴=预测公式预测1991--1998年的人口数量可得,1998年的由指数增长模型预测出的人口数于实际人口数相差最小,而其他年份的真实值与预测值之间有差别:由1991年开始,指数增长模型预测的结果很好的反映了实际情况。
人口预测实验报告数学与计算科学学院实验报告实验项目名称人口的控制与预测所属课程名称数学建模实验类型综合实验日期XXXX 年4月15日班级数学1XXXX年人口为,k年后人口为,年增长率为r,则(1)记时刻t的人口为,将视为连续可微函数,记初始时刻(t=0)的人口为.假设人口增长率为常数r,即单位时间内的增量等于r乘以,于是得到满足微分方程(2)有这个方程解出(3)r0时(3)式表示人口将按指数规律随时间无限增长,称为指数增长模型.2、阻滞增长模型——logistic模型若将r表示为x的函数,方程(2):(4)设为x的线性函数,即(5)r称为固有增长率.表示人口很少事的增长率,引入自然资源和环境条件所能容纳的最大人口数量,称为人口容量.当时人口不再增长,即增长率,代入(5)式得,于是,将代入方程(4),得(6)称为阻滞增长模型.将(6)式分离变量法求解得到(7)【实验过程】(实验步骤、记录、数据、分析)为了估计指数增长模型(2)或(3)中的参数r和,将(3)式取对数,得到(8)以美国人口实际数据(表1)为例,对(8)式作数据拟合,如用1790年至1900年的数据,得到r=0.2743/(10年),;若用全部数据可得r=0.XXXX年),.也可以令,只计算r。
用得到的r和代入(3)式,将结果与实际数据作比较-一、实验概述:【实验目的】1、学会用初等数学的方法来构造和求解模型;2、利用数学模型对人口数量的增长进行预测,与实际人口相比较,体现该模型的必要性;3、可以根据该模型防范人口增长速度过快;4、熟悉掌握MATLAB作图技巧。
【实验原理】1、利用MATLAB解方程并作出相应图形;2、利用微积分,提出假设,建立数学模型并求解;3、查找实际的人口数据与理论数据对比得出相应结论。
【实验环境】Microsoft Windows XPProfessional版本XXXX年人口为,k 年后人口为,年增长率为r,则(1)记时刻t的人口为,将视为连续可微函数,记初始时刻(t=0)的人口为.假设人口增长率为常数r,即单位时间内的增量等于r乘以,于是得到满足微分方程(2)有这个方程解出(3)r0时(3)式表示人口将按指数规律随时间无限增长,称为指数增长模型.2、阻滞增长模型——logistic模型若将r表示为x的函数,方程(2):(4)设为x的线性函数,即(5)r称为固有增长率.表示人口很少事的增长率,引入自然资源和环境条件所能容纳的最大人口数量,称为人口容量.当时人口不再增长,即增长率,代入(5)式得,于是,将代入方程(4),得(6)称为阻滞增长模型.将(6)式分离变量法求解得到(7)【实验过程】(实验步骤、记录、数据、分析)为了估计指数增长模型(2)或(3)中的参数r和,将(3)式取对数,得到(8)以美国人口实际数据(表1)为例,对(8)式作数据拟合,如用1790年至1900年的数据,得到r=0.2743/(10年),;若用全部数据可得r=0.XXXX年),.也可以令,只计算r。
人口的预测实验报告一、引言人口预测是人类社会发展和规划的重要内容之一。
通过对人口的合理预测,我们可以更好地了解人口的结构、趋势和变化,为国家和社会的发展提供科学依据。
本实验旨在通过历史人口数据,使用数学模型对未来某个地区的人口进行预测,并对结果进行评估。
二、实验设计1. 数据收集我们选择了一个地区的历年人口数据,并进行了整理和统计,包括该地区过去十年的人口数据。
这样我们可以建立一个时间序列,用于分析人口的变化趋势。
2. 模型选择为了预测未来人口的变化,我们需要选择一个合适的数学模型。
常见的人口预测模型有线性模型、指数模型、S型曲线模型等。
在本实验中,我们选择了常用的指数模型。
3. 模型建立根据选定的指数模型,我们通过历史数据进行拟合,得到模型的参数。
然后利用该模型进行未来人口的预测。
三、实验步骤1. 数据收集与整理我们从相关统计机构获得了某地区过去十年的人口数据,并进行了整理和统计。
数据包括每年的总人口数。
2. 模型建立与参数估计我们选择了指数模型进行人口预测。
指数模型的形式为:P(t) = P0 * k^t其中,P(t)表示时刻t的人口数,P0表示初始的人口数,k为增长率。
通过历史数据的拟合,我们得到模型的参数P0和k,从而得到人口预测模型。
3. 人口预测与结果评估利用建立的模型,我们对未来的人口进行了预测。
通过对比预测结果与实际观测值,我们对模型的准确性进行了评估。
四、实验结果与讨论我们根据历史数据成功建立了人口预测模型,并对未来人口进行了预测。
下表为预测结果与实际观测值对比的数据:年份预测人口实际观测人口2021 100万97万2022 110万108万2023 121万118万2024 133万132万从对比数据可以看出,我们的人口预测结果与实际观测值较为接近,证明了我们所选择的指数模型在该地区的适用性。
然而,我们也需要注意到,人口预测是一个复杂的问题,受到多种因素的影响,包括政策措施、经济发展、社会变迁等。
开课学院、实验室:数统学院DS1407 实验时间 : 2012 年 5 月 3 日
课程 名称 数学实验 实验项目 名 称 人口增长模型及其数量预
测
实验项目类型
验证
演示 综合 设计 其他
指导 教师
龚劬 成 绩
√
实验目的
[1] 学习由实际问题去建立数学模型的全过程;
[2] 训练综合应用数学模型、微分方程、函数拟合和预测的知识分析和解决实际问题;
[3] 应用matlab 软件求解微分方程、作图、函数拟合等功能,设计matlab 程序来求解其中的数学模
型;
[4] 提高论文写作、文字处理、排版等方面的能力;
通过完成该实验,学习和实践由简单到复杂,逐步求精的建模思想,学习如何建立反映人口增长规律的数学模型,学习在求解最小二乘拟合问题不收敛时,如何调整初值,变换函数和数据使优化迭代过程收敛。
应用实验(或综合实验)
一、实验内容
从1790—1980年间美国每隔10年的人口记录如表综2.1所示:
表综2.1
年 份 1790 1800 1810 1820 1830 1840 1850 人口(×106
)
3.9 5.3 7.2 9.6 12.9 17.1 23.2 年 份 1860 1870 1880 1890 1900 1910 1920 人口(×106)
31.4 38.6 50.2 62.9 76.0 92.0 106.5 年 份 1930
1940
1950
1960
1970
1980
人口(×106)
123.2 131.7 150.7 179.3 204.0 226.5
用以上数据检验马尔萨斯(Malthus)人口指数增长模型,根据检验结果进一步讨论马尔萨斯人口模型的改进,并利用至少两种模型来预测美国2010年的人口数量。
二、问题分析
1:Malthus 模型的基本假设是:人口的增长率为常数,记为 r 。
记时刻t 的人口为x (t ),(即x (t )为模型的状态变量)且初始时刻的人口为x 0,于是得到如下微分方程:
⎪⎩⎪⎨⎧==0
)0(d d x x rx
t
x 2:阻滞增长模型(或Logistic 模型) 由于资源、环境等因素对人口增长的阻滞作用,人口增长到一
定数量后,增长率会下降,假设人口的增长率为x 的减函数,如设r(x)=r(1-x/x m ),其中r 为固有增长率(x 很小时),x m 为人口容量(资源、环境能容纳的最大数量),于是得到如下微分方程:
⎪⎩
⎪
⎨⎧=-=0)0()1(d d x
x x x rx t
x
m
三、数学模型的建立与求解
根据Malthus 模型的基本假设,和Logistic 模型,我们可以分别求得微分方程的解析解, y1=x0*exp(r*x);
y2= xm/(1+x0*exp(-r*x))
对于1790—1980年间美国每隔10年的人口记录,分别用matlab 工具箱中非线性拟合函数的命令作一般的最小二乘曲线拟合,可利用已有程序lsqcurvefit 进行拟合,检验结果进一步讨论模型的改进,预测美国2010年的人口数量。
四、实验结果及分析
对于Malthus 模型 作一般的最小二乘曲线拟合,可利用已有程序lsqcurvefit 得到拟合函数为y=(3.54e-011)*exp(0.0149*x), 当x=2010时,预测的人口为359.4916
由于资源、环境等因素对人口增长的阻滞作用,人口增长到一定数量后,增长率会下降,运用Logistic 模型对微分方程的解进行拟合,得到y2= 360.4/(1+53.11 *exp(-0.02342*(x-1790)))
到2010年时,预计人口数量为y2 = 275.6894,
作图可以看出两条曲线拟合程度较高相比基本模型,改进模型更接近实际。
1780
1800
1820
1840
1860
1880
1900
1920
1940
1960
1980
0 50
100
150
200 250
x
y
fitted curve
五、附录(程序等)
Malthus 模型 1、
编写拟合函数的文件fitful2.m function y=fitful2(a,x)
y=a(1).*exp(a(2).*x);
2、 运行的脚本文件
clc,clear a0=[50,0.02];
xdata=[1790:10:1980];
ydata=[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];
[a,resnorm,residual,flag,output]=lsqcurvefit('fitful2',a0,xdata,ydata) xi=[1790:10:1980]; yi=fitful2(a,xdata)
plot(xdata,ydata,'r-o',xi,yi,'b-+') xlabel('x'),ylabel('y=f(x)');
Logistic 模型
程序:
x=[1790:10:1980]';
y=[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]';
1780
1800182018401860
188019001920194019601980
050
100
150
200
250x
y
st_ = [500 30 0.2 ];
ft_ = fittype('a/(1+b*exp(-k*(x-1790)))',...
'dependent',{'y'},'independent',{'x'},...
'coefficients',{'a', 'b','k'});
cf_ = fit(x,y,ft_,'Startpoint',st_)
plot(cf_,'fit',0.95);hold on,plot(x,y,'*')
总结与体会
通过完成该实验,学习和实践由简单到复杂,逐步求精的建模思想,学习如何建立反映人口增长规律的数学模型,学习在求解最小二乘拟合问题不收敛时,如何调整初值,变换函数和数据使优化迭代过程收敛。
收获颇多
教师签名
年月日。