【数学建模】第8讲_微分方程详解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
问题的分析 从整体来说,人口的变化由两个因素决定:出生和死亡。出生使得人口增加,死亡使得人口减少。 对于局部地区来说,除了出生和死亡外,影响人口的变化还有两个因素:迁入和迁出。迁入使得局部人口增加,迁出使得局部人口减少。 在迁入、迁出人口的差别不大时,人口的变化主要由出生率和死亡率决定。 根据上面的分析,不难建立起人口演化模型。 模型求解 要用模型的结果来预报人口,必须对其中的参数r进行估计,这可以用表中所给的数据通过拟合得到. 拟合的关键问题 1. t的变换 指数函数exp(t)当t很大时可能会溢出,为了减小数据误差,首先将时间域变换至[0,20],所用的变换为: 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; c(2)=mean(diff(x)./diff(t)./x(1:20)); k=lsqcurvefit(@fun,c,t,x) tt=[21 22]; xx=fun(k,tt); plot(tt,xx,r*); tt=0:0.1:22; xx=fun(k,tt); plot(tt,xx,r); hold off 美国实际人口与按指数增长模型计算的人口比较 利用表中数据对r和xm拟合 导弹追踪问题 设位于坐标原点的甲舰向位于x轴上点A(1, 0)处的乙舰发射导弹,导弹头始终对准乙舰.如果乙舰以最大的速度v0(常数)沿平行于y轴的直线行驶,导弹的速度是5v0,求导弹运行的曲线方程.乙舰行驶多远时,导弹将它击中? 解法一(解析法) 由(1),(2)消去t, 整理得模型: To MATLAB(chase1) 轨迹图见程序chase1 解法二(数值解法) 1.建立M文件eq1.m function dy=eq1(x,y) dy=zeros(2,1); dy(1)=y(2); dy(2)=1/5*sqrt(1+y(1)^2)/(1-x); 2. 取x0=0,xf=0.9999,建立主程序ff6.m如下: x0=0,xf=0.9999 [x,y]=ode15s(eq1,[x0 xf],[0 0]); plot(x,y(:,1),’b.) hold on y=0:0.01:2; plot(1,y,’b*) 结论: 导弹大致在(1,0.2)处击中乙舰. To MATLAB(ff6) 令y1=y, y2=y1’,将方程(3)化为一阶微分方程组. 解法三(建立参数方程求数值解) 设时刻t乙舰的坐标为(X(t),Y(t)),导弹的坐标为(x(t),y(t)). 3.因乙舰以速度v0沿直线x=1运动,设v0=1,则w=5,X=1,Y=t. 4. 解导弹运动轨迹的参数方程 建立M文件eq2.m如下: function dy=eq2(t,y) dy=zeros(2,1); dy(1)=5*(1-y(1))/sqrt((1-y(1))^2+(t-y(2))^2); dy(2)=5*(t-y(2))/sqrt((1-y(1))^2+(t-y(2))^2); 取t0=0,tf=2,建立主程序chase2.m如下: [t,y]=ode45(eq2,[0 2],[0 0]); Y=0:0.01:2; plot(1,Y,-), hold on plot(y(:,1),y(:,2),*) To MATLAB(chase2) 5. 结果见图1 导弹大致在(1,0.2)处击中乙舰,与前面的结论一致. 图1 图2 返 回 在chase2.m中,按二分法逐步修改tf,即分别取tf=1,0.5,0.25,…,直到tf=0.21时,得图2. 结论:时刻t=0.21时,导弹在(1,0.2

您可能关注的文档

文档评论(0)

yy556911 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档