Euler法与改进Euler法.ppt_第1页
Euler法与改进Euler法.ppt_第2页
Euler法与改进Euler法.ppt_第3页
Euler法与改进Euler法.ppt_第4页
Euler法与改进Euler法.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章 常微分方程数值解法 常微分方程数值解法 常微分方程主要有: (1)变量可分离的方程 (2)一阶线性微分方程(贝努利方程) (3)可降阶的一类高阶方程 (4)二阶常系数齐次微分方程 (5)二阶常系数非齐次微分方程 (6)全微分方程 常微分方程数值解法 l主要内容: l一、 引 言 l二、 建立数值解法的常用方法 l三、 Euler方法 l四、 几何意义 l五、 Euler方法的误差估计 l六、 向后Euler方法 主要内容 许多实际问题的数学模型是微分方程或微分 方程的定解问题,如物体运动,电路震荡,化学反 映及生物群体的变化等. 能用解析方法求出精确解的微分方程为数不 多,而且有的方程即使有解析解,也可能由于解的 表达式非常复杂而不易计算,因此有必要研究微 分方程的数值解法 一、引 言 本章重点 研究一阶常微分方程的初值问题的数值解 本章假定 常微分方程数值解法 初值问题数值解的提法 常微分方程数值解法 建立微分方程数值解法,首先要将微分方程离散化 . 一般采用以下几种方法: (1) 用差商近似导数 二、建立数值解法的常用方法 (2) 用数值积分近似积分 实际上是矩形法 宽高 常用方法 (3) 用Taylor多项式近似并可估计误差 常用方法 用差商近似导数 问题转化为 Euler方法的迭代公式 三、Euler方法 令 Euler方法 例1 解 初值问题的迭代公式为: 例 题 1 用求根公式求解初值问题 Clearx,y,h h=0.1; xn_:=n*h; DSolveyx=yx-2x/yx, y0=1,yx,x Table%/.x-xn,n,1,6; MatrixForm% y0 - 1 y0.1 - 1.09545 y0.2 - 1.18322 y0.3 - 1.26491 y0.4 - 1.34164 y0.5 - 1.41421 y0.6 - 1.48324 求微分方 程的解 Mathematica程序 Cleara,b,x,y x0=0; y0=1; h=0.1; xn_:=n*h; fu_,v_:=v-2u/v K1n_:=fxn-1,yn-1 yn_:=yn-1+h*K1n; Tablexn,yn,n,0,8 /N; MatrixForm% 0 1. 0.1 1.1 0.2 1.19182 0.3 1.27744 0.4 1.35821 0.5 1.43513 0.6 1.50897 0.7 1.58034 0.8 1.64978 运行结果 Mathematica程序 近似解精确解 0 1. 0.1 1.1 0.2 1.19182 0.3 1.27744 0.4 1.35821 0.5 1.43513 0.6 1.50897 y0 - 1 y0.1 - 1.09545 y0.2 - 1.18322 y0.3 - 1.26491 y0.4 - 1.34164 y0.5 - 1.41421 y0.6 - 1.48324 结果比较 例2 解 初值问题的迭代公式为: 例 题 2 用求根公式求解初值问题 Clearx,y,h h=0.1; xn_:=n*h; DSolveyx=(2/3)*x/(yx)2, y0=1,yx,x Table%/.x-xn,n,0,10; MatrixForm% y0 - 1 y0.1 - 1.00332 y0.2 - 1.01316 y0.3 - 1.02914 y0.4 - 1.05072 y0.5 - 1.07722 y0.6 - 1.10793 Mathematica程序 Cleara,b,x,y x0=0; y0=1;h=0.1; xn_:=n*h; fu_,v_:=(2/3)u/v2; K1n_:=fxn-1,yn-1 yn_:=yn-1+h*K1n; Tablexn,yn,n,0,6 /N; MatrixForm% 0 1. 0.1 1. 0.2 1.00667 0.3 1.01982 0.4 1.03905 0.5 1.06375 0.6 1.09321 Mathematica程序 四、几何意义 Y=y(x) ab 几何意义 四、Euler方法的误差估计 为简为简 化分析,先考虑计虑计 算一步所产产生的误误差,即假设设 是精确的, 估计误计误 差 这这种误误差称为为局部截断误误差。 估计计截断误误差的主要方法是Taylor展开法,即将函数 在 处处展开: 取一次Taylor多项式近似函数,得 得Euler方法的局部截断误差公式为 结论结论 :上式说说明Euler公式的局部截断误误差为为 它的精度很差。 一般很少用它来求近似值,但是Euler法 却体现了数值方法的基本思想。 定义义8.1 如果某种数值值方法的局部截断误误差为为 ,则则称该该方法是p阶阶方法或 具有p阶精度。显然p越大,方法的 精度越高。 注:Euler方法具有一阶精度,因此它的精度不高。 五、Euler方法的误差估计 我们更关心整体截断误差,但其讨论要用到局部截 断误差。 Euler方法的误差估计 2、 整体截断误差 定义: 截断误差 截断误差 Euler方法是一阶方法,故精度不高. 截断误差 需要说说明的是,用不同的差商近似导导数,将得 到不同的计计算公式。如果用向后差商代替导导数, 即 则则得计计算 公式 用这组这组 公式求初值问题值问题 的数值值解称为为向后Euler方法。 向后Euler法与Euler法形式上相似,但实际 计算时却复杂得多。Euler公式是显式的,可直接 求解。向后Euler公式是隐式公式,一般要用迭代 法求解,迭代公式通常为 如果用中心差商代替导数,则可导出Euler两步公式。 六、向后Euler方法 l主要内容: l1:引 言 l2:建立数值解法的常用方法 l3: Euler方法 l4:几何意义 l5: Euler方法的误差估计 l6:向后Euler方法 本 节 小 结 第 二 节 改进的Euler方法 改进的Euler方法 利用数值积分将微分方程离散化得梯形公式: 解决方法:有的可化为显格式,但有的不行 梯形方法为隐式算法 改进的Euler方法 梯形公式比欧拉法精度高一些,但计算量较大 实际计算中只迭代一次,这样建立的预测 校正系统称作改进的欧拉公式。 改进的Euler方法 改进的Euler方法 二、改进的Euler法 梯形方法虽然提高了精度,但算法复杂,计算 量大。如果实际计算时精度要求不太高,用梯形公 式求解时,每步可以迭代一次,由此导出一种新的 方法改进Euler法。这种方法实际上就是将 Euler公式与梯形公式结合使用:先用Euler公式求 的一个初步近似值 ,称为预测值,预测值 的精度可能很差,再用梯形公式校正求得近似值 即 改进Euler法 亦称为由Euler公式和梯形公式得到的 预测校正(Predictor-Corrector)系统。 为便于上机编程,常改写成 例3 解 (1)用Euler方法得算式为为 (2)用改进进的Euler方法得算式为为 数值结果见下表: xEuler法的y改进进的Euler法的y精确值值y 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.000000 1.100000 1.191818 1.277438 1.358213 1.435133 1.508966 1.580338 1.649783 1.717779 1.784770 1.000000 1.095909 1.184096 1.266201 1.343360 1.416402 1.485956 1.552515 1.616476 1.678168 1.737869 1 1.095445 1.183216 1.264991 1.341641 1.414214 1.483240 1.549193 1.612452 1.673320 1.732051 从计算结果可见,改进Euler法的精度明显高于Euler法。 Mathematia程序 用求根公式求解初值问题 Clearx,y,h h=0.1; xn_:=n*h; DSolveyx=yx-2x/yx, y0=1,yx,x Table%/.x-xn,n,1,6; MatrixForm% y0 - 1 y0.1 - 1.09545 y0.2 - 1.18322 y0.3 - 1.26491 y0.4 - 1.34164 y0.5 - 1.41421 y0.6 - 1.48324 Mathematia程序 Clearx,y,h x0=0; y0=1; h=0.2; xn_:=n*h; fu_,v_:=v-2u/v K1n_:=fxn-1,yn-1 K2n_:=fxn-1+h,yn- 1+h*K1n; yn_:=yn-1+h/2*(K1n+K2n); Tablexn,yn,n,0,6/N; MatrixForm% 0 1. 0.1 1.09774 0.2 1.18757 0.3 1.27129 0.4 1.35013 0.5 1.42499 0.6 1.49657 比较 Euler近似解精确解 0 1. 0.1 1.1 0.2 1.19182 0.3 1.27744 0.4 1.35821 0.5 1.43513 0.6 1.50897 y0 - 1 y0.1 - 1.09545 y0.2 - 1.18322 y0.3 - 1.26491 y0.4 - 1.34164 y0.5 - 1.41421 y0.6 - 1.48324 0 1. 0.1 1.09774 0.2 1.18757 0.3 1.27129 0.4 1.35013 0.5 1.42499 0.6 1.49657 改进Euler近似解 作业业:1 用欧拉预预-校方法求解初值问题值问题 要求取步长长h=0.2,计计算y(1.2)和y(1.4)的近似值值,小数 点后至少保留5位。 2 解常微分方程的初值问题值问题 用欧拉法求解分别别取步长长h=0.1和h=0.05。 利用数值积分将微分方程离散化得梯形公式: 解决方法:有的可化为显格式,但有的不行 梯形方法为隐式算法 改进的Euler方法 梯形公式比欧拉法精度高一些,但计算量较大 实际计算中只迭代一次,这样建立的预测 校正系统称作改进的欧拉公式。 改进的Euler方法 改进的Euler方法 Clearx,y,h x0=0; y0=1; h=0.2; xn_:=n*h; fu_,v_:=fu,v; K1n_:=fxn-1,yn-1 K2n_:=fxn-1+h,yn-1+h*K1n; yn_:=yn-1+h/2*(K1n+K2n); Tablexn,yn,n,0,4/N; MatrixForm% Mathematica程序 例3 解 例 题 3 用求根公式求解初值问题 Clearx,y,h h=0.1; xn_:=n*h; DSolveyx=yx-2x/yx, y0=1,yx,x Table%/.x-xn,n,1,6; MatrixForm% y0 - 1 y0.1 - 1.09545 y0.2 - 1.18322 y0.3 - 1.26491 y0.4 - 1.34164 y0.5 - 1.41421 y0.6 - 1.48324 Mathematica程序 Clearx,y,h x0=0; y0=1; h=0.2; xn_:=n*h; fu_,v_:=v-2u/v K1n_:=fxn-1,yn-1 K2n_:=fxn-1+h,yn- 1+h*K1n; yn_:=yn-1+h/2*(K1n+K2n); Tablexn,yn,n,0,6/N; MatrixForm% 0 1. 0.1 1.09774 0.2 1.18757 0.3 1.27129 0.4 1.35013 0.5 1.42499 0.6 1.49657 Mathematica程序 Euler近似解精确解 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论