差分法欧拉格式浅谈
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
差分法欧拉格式浅谈
科学计算中常常求解常微分方程的定解这类问题的最简形式是一阶方程的初值问题
⎩⎨⎧=='00
)(),(y x y y x f y (1) 这里假定右函数),(y x f 适当光滑,譬如关于y 满足Lipschitz 条件,以保证上述初值问题的解y(x)存在且唯一。
虽然求解常微分方程有各种各样的解析方法,但解析方法只能用来求解一些特殊类型的方程。求解从实际问题当中归结出来的微分方程主要靠数值解法。
差分方法是一类重要的数值解法。这类方法回避解y(x)的函数表达式,而是寻求它在一系列离散节点
<<<< 上的近似值 ,,,,,21n o y y y y 。相邻的两个节点的间距n n x x h -=+1称作步长。假定步长为定数。 差分方法是一类离散化方法,这类方法将寻求解y(x)的分析问题转化为计算离散值n y 的代数问题,从而使问题获得了实质性的简化。然而随之带来的困难是,由于数据量{}n y 往往很大,差分方法所归结出的可能是个大规模的代数方程组。 初值问题的各种差分方法有个基本特点,它们都采取“步进式”,即求解过程顺着节点排列的次序一步一步地向前推进。描述这类算法,只要给出从已知信息 ,,,21--n n n y y y 计算1+n y 的递推公式。这类计算公式称作差分格式。 差分格式中仅含一个未知参数1+n y ,或者说,它是仅含一个变元1+n y 的代数方程,这就大大地缩短了计算问题的规模。 总之,差分方法的设计思想是,将寻求微分方程的解y(x)的分析问题化归为计算离散值{}n y 的代数问题,而“步进式”则进一步将计算模型化归为仅含一个变元1+n y 的代数方程——差分格式。 Euler 方法 方程(1)中含有导数项)(x y ',这是微分方程的本质特征,也正是它难以求 解的症结所在。导数是极限过程的结果,而计算过程则总是有限的。因此数值解法的第一步就是消除式(1)中的导数项y ',这项手续称作离散化。由于差商是是微分的近似计算,实现离散化的一种直截了当的途径是用差商替代导数。 Euler 格式 设在区间[]1,+n n x x 的左端点n x 列出方程(1)即 ))(,()(0n n x y x f x y =' 并用差商h x y x y n n )()(1-+替代其中的导数项)(n x y ',则有近似关系式 ))(,()()(1n n n n x y x hf x y x y +≈+ (2) 若用)(n x y 的近似值n y 代入上式右端,并记所得结果为1+n y ,这样设计出的计算公式 2,1,0),,(1=+=+n y x hf y y n n n n (3) 就是著名的Euler 格式。若初值0y 已知,则依据格式(3)可逐步算出数值解 21,y y 。 再从图形上看,假设节点),(n n n y x P 位于积分曲线)(x y y =上,则按Euler 格式定出的节点),(111+++n n n y x P 落在积分曲线)(x y y =的切线上,从这个角度也可以看出,Euler 格式是很粗糙的。 隐式Euler 格式 再在区间[]1,+n n x x 的右端点1+n x 列出方程(1),即 ))(,()(111+++='n n n x y x f x y 并改用点1+n x 处的向后差商h x y x y n n )()(1-+替代方程中的导数项)(1+'n x y ,再离散化,即可导出隐式Euler 格式 ),(111++++=n n n n y x hf y y (5) 这一格式与Euler 格式(3)有着本质的区别:Euler 格式(3)是关于1+n y 的一个直接的计算公式,称这类格式是显式的;而格式(5)的右端含有未知的1+n y 它实际上是个关于1+n y 的函数方程,这类格式是隐式的。隐式格式的计算远比显式格式困难。 由于数值微分的向前差商公式与向后差商公式具有同等精度,可以预料,隐式Euler 格式(5)与显式Euler 格式(3)的精度相当,两者精度都不高。 Euler 两步格式 为了改善精度,可以改用中心差商[])()(2111-+-n n x y x y h 替代方程 ))(,()(n n n x y x f x y =' 中的导数项,再离散化,即可导出下列格式: ),(211n n n n y x hf y y +=-+ (6) 无论是显式Euler 格式(3)还是隐式Euler 格式(5),它们都是单步法,其特点是计算1+n y 时只用到前一步的信息n y ;然而格式(6)除了n y 以外,还显含更前一步的信息1-n y ,即调用了前面两步的信息,Euler 两步格式因此而得名。 Euler 两步格式(6)虽然比Euler 格式或隐式Euler 格式具有更高的精度,但它是一种两步法。两步法不能自行启动,实际使用时除初值0y 外还需要借助于某种一步法再提供一个开始值y 1,这就增加了计算程序的复杂性。 梯形格式 设将方程),(y x f y ='的两端从n x 到1+n x 求积分,即得 ⎰++=+1 ))(,()()(1n n x x n n dx x y x f x y x y (7) 显然,为要通过这个积分关系式获得)(1+n x y 的近似值,只要近似地算出其中的积分项⎰+1 ))(,(n n x x dx x y x f ,而选择不同的计算方法计算这个积分项,就会得到 不同的差分格式。 例如,利用矩形方法计算积分项 ⎰+≈1 ))(,())(,(n n x x n n x y x hf dx x y x f 代入式(7)有近似关系式 ))(,()()(1n n n n x y x hf x y x y +≈+ 据此离散化又可导出Euler 格式(3)。由于数值积分的矩形方法精度很低,Euler 格式当然很粗糙。 为了提高精度,改用梯形方法计算积分项 []))(,())(,(2 ))(,(111+++≈⎰+n n n n x x x y x f x y x f h dx x y x f n n 再代入式(7),有 []))(,())(,(2 )()(111+++++≈n n n n n n x y x f x y x f h x y x y 设将式中的)(n x y ,)(1+n x y 分别用n y ,1+n y 替代,作为离散化的结果导出下列计算格式: []),(),(2 111+++++ =n n n n n n y x f y x f h y y (8) 与梯形求积公式相呼应的这一差分格式称作梯形格式。 容易看出,梯形格式(8)实际上是显式Euler 格式(3)与隐式Euler 格式 (5)的算术平均。 改进的Euler 格式 Euler 格式(3)是一种显式算法,其计算量小,但计算精度低;梯形格式(8)虽然提高了精度,但它是一种隐式算法,需要借助于迭代过程求解,计算量大。 可以综合使用这两种方法,先用Euler 格式求得一个初步的近似值1+n y ,称作预报值;预报值的精度不高,用它替代式(8)右端的1+n y 再直接计算,得到校正值1+n y ,这样建立的预报校正系统