数学建模实用教程课件韩中庚34573第9章常用的数学建模算法

上传人:E**** 文档编号:90971973 上传时间:2019-06-20 格式:PPT 页数:52 大小:1.73MB
返回 下载 相关 举报
数学建模实用教程课件韩中庚34573第9章常用的数学建模算法_第1页
第1页 / 共52页
数学建模实用教程课件韩中庚34573第9章常用的数学建模算法_第2页
第2页 / 共52页
数学建模实用教程课件韩中庚34573第9章常用的数学建模算法_第3页
第3页 / 共52页
数学建模实用教程课件韩中庚34573第9章常用的数学建模算法_第4页
第4页 / 共52页
数学建模实用教程课件韩中庚34573第9章常用的数学建模算法_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《数学建模实用教程课件韩中庚34573第9章常用的数学建模算法》由会员分享,可在线阅读,更多相关《数学建模实用教程课件韩中庚34573第9章常用的数学建模算法(52页珍藏版)》请在金锄头文库上搜索。

1、2019/6/20,数学建模实用教程高教出版社,2,第9章 常用的数学建模算法,数值积分算法;,常微分方程的数值解算法;,穷举算法;,主要内容,蒙特卡罗算法。,迭代算法;,2019/6/20,数学建模实用教程高教出版社,3,迭代是通过从一个初始值出发,逐步寻找模型(一般是解方程或者方程组)的一系列近似解的过程,为实现这一过程所使用的方法统称为迭代法(Iterative Method):,一、迭代算法,迭代算法,牛顿法,割线法,2019/6/20,数学建模实用教程高教出版社,4,牛顿法(Newtons method)又称为牛顿-拉夫逊方法(Newton-Raphson method),1牛顿法,

2、一、迭代算法,2019/6/20,数学建模实用教程高教出版社,5,牛顿迭代法是用切线与轴交点的横坐标近似代替曲线与轴交点的横坐标,因此牛顿迭代法也称为切线法,1牛顿法,一、迭代算法,2019/6/20,数学建模实用教程高教出版社,6,解:根据牛顿法的迭代公式(9.1),用Matlab编程实现 (1)建立牛顿迭代法M函数,文件名:newton_fun.m function y=newton_fun(a,n,x0,nmax,eps) x(1)=x0; deilt=1; i=1; while (abs(deilt)eps*x(i) i=i+1; x(i)=x(i-1)-fun(a,n,x(i-1)/

3、dfun(a,n,x(i-1); deilt=x(i)-x(i-1); if (inmax)error(nmax is full); return; end end y=x(i);i,一、迭代算法,2019/6/20,数学建模实用教程高教出版社,7,(2)建立原函数M文件,文件名:fun.m function y=fun(a,n,x) %fun()为原函数, a为多项式的系数,n为多项式次数; y=0.0; for i=1:(n+1) y=y+a(i)*x(n+1-i); end (3)建立求一阶层数的 M函数, 文件名:dfun.m,function y=dfun(a,n,x) %dfun(

4、)函数为原函数fun()的一阶导数 y=0.0; for i=1:n y=y+a(i)*(n+1-i)*x(n-i); end,一、迭代算法,2019/6/20,数学建模实用教程高教出版社,8,(4)程序的运行与结果,在命令窗口依次输入下列语句: ezplot(x4+2*x3-3*x2+10*x-20,1,2) %观察函数图形 a=1,2,-3,10,-20; n=4; x0=1; nmax=1000; eps=1e-8; y=newton_fun(a,n,x0,nmax,eps),迭代算法牛顿法,2019/6/20,数学建模实用教程高教出版社,9,2割线法,一、迭代算法,2019/6/20,

5、数学建模实用教程高教出版社,10,在实际中,很多求积分的问题都需要用数值积分方法实现积分值的计算本节将介绍在Matlab中的求积分函数,矩形积分公式、梯形积分公式和辛普森积分公式。,二、数值积分算法,牛顿-莱布尼兹(Newton-leibniz)公式,2019/6/20,数学建模实用教程高教出版社,11,Matlab软件中求积分的函数int() 用法:F=int(S,a,b) 其中S是被积函数,a和b分别是积分的下限和上限值,F为积分值,解 在Matlab软件命令窗口中输入: syms x f=x*sqrt(1+x2); F=int(f,2,3); F=double(F) 运行后输出值为F =

6、6.8141,二、数值积分算法,1. 用Matlab软件计算积分,2019/6/20,数学建模实用教程高教出版社,12,2数值积分思想,二、数值积分算法,2019/6/20,数学建模实用教程高教出版社,13,3矩形积分公式,二、数值积分算法,2019/6/20,数学建模实用教程高教出版社,14,4矩形积分公式,公式(9.1)和(9.2)是计算定积分的矩形数值积分公式,简称为矩形公式在Matlab软件中,使用sum()函数来实现利用矩形公式计算数值积分,二、数值积分算法,2019/6/20,数学建模实用教程高教出版社,15,解 在Matlab命令窗口中输入下列命令: h=1/100; 定义步长

7、x=2:h:3; 定义分割节点 y=x.*sqrt(1+x.2); 定义被积函数 L=sum(y(1:100)*h 利用左矩形公式 R=sum(y(2:101)*h 利用右矩形公式,4矩形积分公式,二、数值积分算法,2019/6/20,数学建模实用教程高教出版社,16,5梯形积分公式,二、数值积分算法,2019/6/20,数学建模实用教程高教出版社,17,5梯形积分公式,二、数值积分算法,2019/6/20,数学建模实用教程高教出版社,18,6辛普森积分,二、数值积分算法,2019/6/20,数学建模实用教程高教出版社,19,数值积分算法辛普森积分公式,解: 分别取:n=10,n=100,n=

8、1000和n=10000,即取2n个节点的情况。在Matlab中输入: a=0;b=pi/2;n=10;h=(b-a)/(2*n); x=a:h:b;y=exp(sin(x); S=(y(1)+y(2*n+1)+2*sum(y(2:2:2*n)+4*sum(y(3:2:2*n)*h/3,结果:S=3.0060 类似地,对于n=100,n=1000和n=10000的情况,有S=3.0946,S=3.1034和S=3.1043,2019/6/20,数学建模实用教程高教出版社,20,三、常微分方程的数值解算法,一般说来,求微分方程的解析解往往是困难的,大多数的微分方程需要用数值方法来求解常用的方法:

9、欧拉方法和龙格-库塔方法.,1.用Matlab求解微分方程,用功能强大的Matlab软件提供的求解微分方程的函数,可以求常微分方程通解和满足定解条件特解用函数dsolve()求解一般常微分方程解的调用方法如下表。,2019/6/20,数学建模实用教程高教出版社,21,用Matlab求解微分方程 ,dsolve()函数调用格式.,注:eqn1,eqnm表示常微分方程组中m个方程的列表;con1,conm 表示m个定解条件的列表;var表示自变量列表,三、常微分方程的数值解算法,2019/6/20,数学建模实用教程高教出版社,22,2、欧拉方法,求微分方程组(9.3)的数值解法,三、常微分方程的数

10、值解算法,(9.4),2019/6/20,数学建模实用教程高教出版社,23,2、欧拉方法,公式(9.4)称为向前欧拉公式。,三、常微分方程的数值解算法,2019/6/20,数学建模实用教程高教出版社,24,常微分方程的数值解算法欧拉方法,2019/6/20,数学建模实用教程高教出版社,25,step2:建立微分方程的右端项M文件,函数名:funfcn.m function f=funfcn(x,y) f=-2*y-4*x;,常微分方程的数值解算法欧拉方法,step3:在Matlab命令窗口输入下列语句:, x0=0;y0=2; n=100;tol=1.e-4; b=0.5; h,k,X,Y=E

11、uler(funfcn,x0,y0,b,n,tol),2019/6/20,数学建模实用教程高教出版社,26,常微分方程的数值解算法欧拉方法,运行程序后,输出部分点的数值解,并与精确值进行比较,结果如下表所示,2019/6/20,数学建模实用教程高教出版社,27,3、龙格-库塔方法,三、常微分方程的数值解算法,2019/6/20,数学建模实用教程高教出版社,28,常微分方程的数值解算法龙格-库塔方法,2019/6/20,数学建模实用教程高教出版社,29,常微分方程的数值解算法龙格-库塔方法,标准(又称古典)四阶龙格-库塔公式,2019/6/20,数学建模实用教程高教出版社,30,30,常微分方程

12、的数值解算法龙格-库塔方法,龙格-库塔方法的Matlab库函数,2019/6/20,数学建模实用教程高教出版社,31,常微分方程的数值解算法龙格-库塔方法,龙格-库塔方法的Matlab库函数,2019/6/20,数学建模实用教程高教出版社,32,常微分方程的数值解算法龙格-库塔方法,解 利用Matlab软件的求解,分别用二阶和四阶龙格-库塔法函数,并进行比较分析输入: fun=inline(-2*y+2*x2+2*x,x,y); x,y=ode23(fun,0,0.5,1); plot(x,y,o-) x,y=ode45(fun,0,0.5,1); plot(x,y,o-),2019/6/20

13、,数学建模实用教程高教出版社,33,常微分方程的数值解算法龙格-库塔方法,运行结果,作图分析如图9-4和图9-5所示,2019/6/20,数学建模实用教程高教出版社,34,四、应用案例分析,【案例9-1】导弹追踪目标问题,.问题的提出,2019/6/20,数学建模实用教程高教出版社,35,四、应用案例分析,【案例9-1】导弹追踪目标问题,2019/6/20,数学建模实用教程高教出版社,36,2.问题的分析,【案例9-1】导弹追踪目标问题,2019/6/20,数学建模实用教程高教出版社,37,.模型的建立与求解,【案例9-1】导弹追踪目标问题,2019/6/20,数学建模实用教程高教出版社,38

14、,.模型的建立与求解,利用Matlab编程求解模型(9-9)可得导弹飞行的轨迹如图9-7所示,导弹大致在(1,0.2)处击中敌舰,【案例9-1】导弹追踪目标问题,2019/6/20,数学建模实用教程高教出版社,39,导弹大致在(1,0.2)处击中敌舰,【案例9-1】导弹追踪目标问题,2019/6/20,数学建模实用教程高教出版社,40,4.模型的结果分析,微分方程模型(9.21)是一个二阶非线性微分方程,直接求解析解是比较困难的,而利用Matlab软件系统提供的库函数可以方便地求出其数值解,并通过计算和图像可以看出导弹击中敌舰的大致位置 事实上,这一结果也是和实际问题相吻合的在实际中,往往只需

15、要知道导弹在飞行过程中某些时刻的大致位置,并不需要精确知道导弹的位置函数,【案例9-1】导弹追踪目标问题,2019/6/20,数学建模实用教程高教出版社,41,五、穷举算法,穷举法也称为枚举法:把实际问题中所涉及的所有可能情况一一罗列举出来,根据问题所考虑的条件和实际背景逐个作出分析判断,从中找出符合条件的最佳方案,1、问题的提出 现有一根长铜管,由于实际生产的需要,要将其截取为三种不同长度的短管实际要求这三种不同规格的短管必须至少各截取1根 问题:采用什么样的下料方案,才能使得所余下的料头最少?,【案例9-2】铜管的下料问题,2019/6/20,数学建模实用教程高教出版社,42,五、穷举算法

16、,.问题的分析与假设,2019/6/20,数学建模实用教程高教出版社,43,五、穷举算法,.模型的建立与求解,2019/6/20,数学建模实用教程高教出版社,44,五、穷举算法,.模型的建立与求解,4.模型的结果分析与推广,穷举法的算法思路比较简单,实现也较容易,缺点是当项目数量较大时,算法时间较长该模型具有广泛的应用价值,还可以应用到其它类似问题中,2019/6/20,数学建模实用教程高教出版社,45,六、蒙特卡罗(Monte Carlo)算法,蒙特卡罗方法:当所要求解问题是某种事件出现的概率,或者是某个随机变量的期望值时,可以通过计算机模拟的方法,寻求这种事件出现的频率,或者这个随机变量的平均值,并用它作为问题的解,?,三个主

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号