第3讲 微分方程模型.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲 微分方程模型

Matlab与数学建模 计算机科学与信息工程系 软件工程教研室 许晓华 xuxiaohua@tjau.edu.cn 第3讲 微分方程建模方法及案例 在研究实际问题时,常常会联系到某些变量的变化率或导数,这样所得到变量之间的关系式就是微分方程模型。 微分方程模型反映的是变量之间的间接关系,因此,要得到直接关系,就得求微分方程。 求解微分方程的方法 求解微分方程有三种方法 1)求精确解; 2)求数值解(近似解); 3)定性理论方法。 3.1 年代鉴定问题 在巴基斯坦一个洞穴里,发现了具有古代某种动物特征的骨碎片,科学家把它带到实验室,作碳14年代测定,分析表明,  与  的比例仅仅是活组织内的6.24%,能否判断此动物生活在多少年前? 用Matlab求解对数 log(x) x的自然对数 log2(x) x的以2为底的对数 log10(x) x的以10为底的对数 以a为底x的对数,根据换底公式可表示为: log(x)/log(a) Matlab中的求解方法 -8000*log(0.0624) ans = 2.2194e+004 3.2 人口演化模型 预备知识:最小二乘原理 当由实验提供了大量数据时,不能要求拟合函数 在数据点 处的偏差,即 (i=1,2,…,m) 严格为零,但为了使近似曲线尽量反映所给数据点的变化趋势 ,需对偏差有所要求.通常要求偏差平方和 最小,此即称为最小二乘原理 问题的提出 人口的增长情况是当前世界引起普遍关注的问题,早在18世纪人们就开始进行人口预报工作了。 20世纪90年代,我们经常可以在报刊上看见关于人口增长的预报,说到20世纪末,或21世纪中叶,全世界(或某地区)的人口将达到多少多少亿。这些人口预报的数值是从哪里来的?准确不准确? 你能不能对某地人口数目的演化进行一下估算? 问题的分析 从整体来说,人口的变化由两个因素决定:出生和死亡。出生使得人口增加,死亡使得人口减少。 对于局部地区来说,除了出生和死亡外,影响人口的变化还有两个因素:迁入和迁出。迁入使得局部人口增加,迁出使得局部人口减少。 在迁入、迁出人口的差别不大时,人口的变化主要由出生率和死亡率决定。 根据上面的分析,不难建立起人口演化模型。 求解步骤 [1] 假设 [2] 建立模型 [3] 模型求解 [4] 模型的参数估计 [1] 假设 人口增长率r(即出生率b-死亡率d)是常数 (或单位时间内人口的增长量与当时的人口成正比). [2] 建立模型 记时刻t=0时人口数为x0, 时刻t的人口为x(t),由于量大,可视为连续、可微函数. t到 时间内人口的增量为: 于是x(t)满足微分方程: (1) [3] 模型求解 解微分方程得 (2) (2)被称为指数增长模型——马尔萨斯提出 (1798),表示随着时间增加,人口按指数规律无限增长 被称为等比数列模型 [4] 模型的参数估计 要用模型的结果来预报人口,必须对其中的参数r进行估计,这可以用表中所给的数据通过拟合得到. 拟合的关键问题 1. t的变换 指数函数exp(t)当t很大时可能会溢出,为了减小数据误差,首先将时间域变换至[0,20],所用的变换为: t=1800+(t-1800)/10 2. x0和r初值的确定 x0初始值自然应取t=0时的x的值3.9 r初始值取增长率的平均值 mean(diff(x)./diff(t)./x(1:20)) Matlab求解过程 首先编写M文件fun.m,其中参数c(1)表示x0,c(2)表示r。 function x=fun(c,t) x=c(1)*exp(c(2)*t); 再编写一个M文件 clear all; close all; t=0:1:20; 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]; plot(t,x,o); hold on; c(1)=3.9;

文档评论(0)

zw4044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档