7、+1建立数值解法,首先要将微分方程离散化,一般采用以下几种方法:(i)用差商近似导数y(x)−y(x)n+1n若用向前差商代替y'(x)代入(1)中的微分方程,则得nhy(x)−y(x)n+1n≈f(x,y(x))(n=0,1,L,N−1)nnh化简得y(x)≈y(x)+hf(x,y(x))n+1nnn如果用y(x)的近似值y代入上式右端,所得结果作为y(x)的近似值,记为y,nnn+1n+1则有y=y+hf(x,y)(n=0,1,L,N−1)(2)n+1nnn这样,问题(1)的近似解可通过求解下述问题⎧yn
8、+1=yn+hf(xn,yn)(n=0,1,L,N−1)⎨(3)y=y(a)⎩0得到,按式(3)由初值y可逐次算出y,y,L,y。式(3)是个离散化的问题,称012N为差分方程初值问题。-293-需要说明的是,用不同的差商近似导数,将得到不同的计算公式。(ii)用数值积分方法将问题(1)的解表成积分形式,用数值积分方法离散化。例如,对微分方程两端积分,得xn+1y(x)−y(x)=f(x,y(x))dx(n=0,1,L,N−1)(4)n+1n∫xn右边的积分用矩形公式或梯形公式计算。(iii)Taylor多项
9、式近似将函数y(x)在x处展开,取一次Taylor多项式近似,则得ny(x)≈y(x)+hy'(x)=y(x)+hf(x,y(x))n+1nnnnn再将y(x)的近似值y代入上式右端,所得结果作为y(x)的近似值y,得到离nnn+1n+1散化的计算公式y=y+hf(x,y)n+1nnn以上三种方法都是将微分方程离散化的常用方法,每一类方法又可导出不同形式的计算公式。其中的Taylor展开法,不仅可以得到求数值解的公式,而且容易估计截断误差。§2欧拉(Euler)方法2.1Euler方法Euler方法就是用差分
10、方程初值问题(3)的解来近似微分方程初值问题(1)的解,即由公式(3)依次算出y(x)的近似值y(n=1,2,L,N−1)。这组公式求问题(1)nn的数值解称为向前Euler公式。y(x)−y(x)n+1n如果在微分方程离散化时,用向后差商代替导数,即y'(x)≈,n+1h则得计算公式⎧yn+1=yn+hf(xn+1,yn+1)(n=0,1,L,N−1)⎨(5)y=y(a)⎩0用这组公式求问题(1)的数值解称为向后Euler公式。向后Euler法与Euler法形式上相似,但实际计算时却复杂得多。向前Euler
11、公式是显式的,可直接求解。向后Euler公式的右端含有y,因此是隐式公式,一般要用n+1迭代法求解,迭代公式通常为(0)⎧⎪yn+1=yn+hf(xn,yn)⎨(6)(k+1)(k)⎪⎩y=y+hf(x,y)(k=0,1,2,L)n+1nn+1n+12.2Euler方法的误差估计对于向前Euler公式(3)我们看到,当n=1,2,L,N−1时公式右端的y都是近似n的,所以用它计算的y会有累积误差,分析累积误差比较复杂,这里先讨论比较简n+1单的所谓局部截断误差。假定用(3)式时右端的y没有误差,即y=y(x)
12、,那么由此算出nnny=y(x)+hf(x,y(x))(7)n+1nnn-294-局部截断误差指的是,按(7)式计算由x到x这一步的计算值y与精确值y(x)nn+1n+1n+1之差y(x)−y。为了估计它,由Taylor展开得到的精确值y(x)是n+1n+1n+12h3y(x)=y(x)+hy'(x)+y''(x)+O(h)(8)n+1nnn2(7)、(8)两式相减(注意到y'=f(x,y))得2h