第8章常微分方程 实际中,很多问题的数学模型都是微分方程。我们可以研究它们的一些 性质。但是,只有极少数特殊的方程有解析解。对于绝大部分的微分方程是 没有解析解的。 常微分方程作为微分方程的基本类型之一,在自然界与工程界有很广泛 的应用。很多问题的数学表述都可以归结为常微分方程的定解问题。很多偏 微分方程问题,也可以化为常微分方程问题来近似求解。 本章讨论常微分方程的数值解法
第8章 常微分方程 实际中,很多问题的数学模型都是微分方程。我们可以研究它们的一些 性质。但是,只有极少数特殊的方程有解析解。对于绝大部分的微分方程是 没有解析解的。 常微分方程作为微分方程的基本类型之一,在自然界与工程界有很广泛 的应用。很多问题的数学表述都可以归结为常微分方程的定解问题。很多偏 微分方程问题,也可以化为常微分方程问题来近似求解。 本章讨论常微分方程的数值解法
对于一个常微分方程 f(x,y),x∈[a,b 通常会有无穷个解。如: =c0(x)→y=$m(x)+aN∈ 因此,我们要加入一个限定条件。通常会在端点出给出,如下面的初值问题: dh =f(x,y),x∈[a,b] dx y(a)=yo 为了使解存在唯一,一般,要加限制条件在/上,要求∫付y满足 Lipschita条件: f(x,y)-f(x,y2)5Lly-y2
对于一个常微分方程: ' f (x, y) , x [a,b] dx dy y = = 通常会有无穷个解。如: x y x a a R dx dy = cos( ) = sin( ) + , 因此,我们要加入一个限定条件。通常会在端点出给出,如下面的初值问题: = = 0 ( ) ( , ) , [ , ] y a y f x y x a b dx dy 为了使解存在唯一,一般,要加限制条件在f上,要求f对y满足Lipschitz条件: 1 2 1 2 f (x, y ) − f (x, y ) L y − y
常微分方程的解是一个函数,但是,计算机没有办法对函数进行运算。 因此,常微分方程的数值解并不是求函数的近似,而是求解函数在某些节 点的近似值。 例:我们对区间做等距分割:x1=hi,h=(b-a)/m 设解函数在节点的近似为{y},则: =f(x, y dx x-xi 由数值微分公式,我们有 向前差商公式 y+1-y ≈f(x2y) h y+1=y1+hf(x12y) 可以看到,给出初值,就可以用上式求出所有的{y}
常微分方程的解是一个函数,但是,计算机没有办法对函数进行运算。 因此,常微分方程的数值解并不是求函数的近似,而是求解函数在某些节 点的近似值。 例:我们对区间做等距分割: , ( ) / i x h i h b a m = = − 设解函数在节点的近似为 { }i y 由数值微分公式,我们有 i i x x x x f x y dx dy = = = ( , ) ,则: ( , ) 1 i i i i f x y h y y + − 向前差商公式 ( , ) i 1 i i i y = y + h f x y + 可以看到,给出初值,就可以用上式求出所有的 { }i y
这种方法,称为数值离散方法。求的是在一系列离散点列上,求未知函数y在这些 点上的值的近似 基本步骤如下: ①对区间作分割:△:a=<x1<…<xn=b 求y(x)在x1上的近似值y。{v}称为分割△上的格点函数 我们的目的,就是求这个格点函数 ②由微分方程出发,建立求格点函数的差分方程。这个方程应该满足: A、解存在唯一;B、稳定,收敛;C、相容 ③解差分方程,求出格点函数 数值方法,主要研究步骤②,即如何建立差分方程,并研究差分方程的性质
基本步骤如下: ③ 解差分方程,求出格点函数 ① 对区间作分割: I : a = x0 x1 xn = b 求 y(x) 在 xi 上的近似值 yi 。 { }i y 称为分割 I 上的格点函数 ② 由微分方程出发,建立求格点函数的差分方程。这个方程应该满足: A、解存在唯一;B、稳定,收敛;C、相容 数值方法,主要研究步骤②,即如何建立差分方程,并研究差分方程的性质。 这种方法 ,称为数值离散方法。求的是在一系列离散点列上,求未知函数y在这些 点上的值的近似。 我们的目的,就是求这个格点函数
为了考察数值方法提供的数值解,是否有实用价值,需要知道如下几个结论: ①步长充分小时,所得到的数值解能否逼近问题得真解;即收敛性问题 ②误差估计 ③产生得舍入误差,在以后得各步计算中,是否会无限制扩大;稳定性问题
为了考察数值方法提供的数值解,是否有实用价值,需要知道如下几个结论: ① 步长充分小时,所得到的数值解能否逼近问题得真解;即收敛性问题 ② 误差估计 ③ 产生得舍入误差,在以后得各步计算中,是否会无限制扩大;稳定性问题
81 Euler公式 做等距分割,利用数值微分代替导数项,建立差分方程。 b △;∴:x 称为局部截断误差 显然,这个误差在逐 1、向前差商公式 步计算过程中会传播, 积累。因此还要估计 y(n+)-yn=y(n)+oy"(5n) h 这种积累 h y(n+d-y(n) n=f(x,y(x))+y(sn) y(x)=(*)+h(x,,y(*, )+y(5m 所以,可以构造差分方程 Mn+1=yn+ hf(xn, ymn)
8.1 Euler公式 做等距分割,利用数值微分代替导数项,建立差分方程。 i m b a x I i − : = 1、向前差商公式 ''( ) 2 '( ) ( ) ( ) 1 n n n n y h y x h y x y x = + + − ''( ) 2 ( , ( )) ( ) ( ) 1 n n n n n y h f x y x h y x y x = + + − ''( ) 2 ( ) ( ) ( , ( )) 2 n 1 n n n n y h y x + = y x + hf x y x + 所以,可以构造差分方程 ( , ) n 1 n n n y = y + hf x y + 称为局部截断误差。 显然,这个误差在逐 步计算过程中会传播, 积累。因此还要估计 这种积累
定义在假设y=y(x),即第i步计算是精确的前提下,考虑 的截断误差R1=y(x1)-y1称为局部截断误差/loca truncation error*。 定义若某算法的局部截断误差为O(+),则称该算法有p 阶精度。 2、收敛性 考察局部误差的传播和积累 y(xn+)=y(xn)+hf(xn,y(xn)+y"(2n) ym1=yn+hf(n,yn) 记为h +1
定义 在假设 yi = y(xi ),即第 i 步计算是精确的前提下,考虑 的截断误差 Ri = y(xi+1 ) − yi+1 称为局部截断误差 /* local truncation error */。 定义 若某算法的局部截断误差为O(h p+1 ),则称该算法有p 阶精度。 记为 2、收敛性 ''( ) 2 ( ) ( ) ( , ( )) 2 n 1 n n n n y h y x + = y x + hf x y x + ( , ) n 1 n n n y = y + hf x y + hTn+1 考察局部误差的传播和积累
en+=v(xn+1)=,u ly(n)-ynl+hf(rn,y(x, )-f(n,yn)+h n+1 en +hly(x,),+hTm+ ≤(1+M)en+hT,T=max (1+hL)(+hL)lem-+hr)+hT =(+hD)an+(+bD)+1)7 ≤(1+hL)3(1+hL)en2+h7)+(1+hL)+1)h7 +hD)n2+(1+1)2+(+h)+)k7
1 1 1 ( ) n+ = n+ − n+ e y x y 1 ( ) ( , ( )) ( , ) n − n + n n − n n + hTn+ y x y h f x y x f x y 1 ( ) n + n − n + hTn+ e hL y x y j j (1+ hL) en + hT , T = max T (1+ hL)((1+ hL) en−1 + hT)+ hT (1 hL) en 1 ((1 hL) 1)hT 2 = + − + + + (1 hL) ((1 hL) en 2 hT) ((1 hL) 1)hT 2 + + − + + + + (1 hL) en ((1 hL) (1 hL) 1)hT 2 2 3 = + − + + + + +
≤(1+My|2+(1+)y+…+(1+hD)+1 (1+hL)"*leo+ 1-(1+M) hT 1-(1+h) ≤(1+M)y|o+ (1+hL) hT hL (+ 0 (1+x)<e n+1hL I T e T=O(h) L 是1阶方法 称为整体截断误差 en=O(h)
hL e ( hL hL )hT n n (1 ) 0 (1 ) (1 ) 1 1 + + + + + + + + hT hL hL hL e n n 1 (1 ) 1 (1 ) (1 ) 1 0 1 − + − + = + + + + hT hL hL hL e n n 1 0 1 (1 ) (1 ) + + + + + + + + L T hL e n 0 1 (1 ) + L T e (n 1)hL ( ) en+1 = O h ( ) (1 ) 0 0 T O h x e e n nx = + = 称为整体截断误差 是1阶方法
3、稳定性一误差在以后各步的计算中不会无限制扩大。是格式对舍入误差的抑止作用 我们考虑一种简单情况,即仅初值有误差,而其他计算步骤无误差。 设{=}是初值有误差后的计算值,则 yn=y,+hf(n,yn) n+1 二n+hf(xn2=n) 所以,我们有: en+=ym+ sle +hf(x,,ym,)-f(n,2n) <len +hLym -=n=len (+hL) ≤…≤lo(+bL)s lele(nth)hl 可以看出,向前差商公式关于初值是稳定的。当初始误差充分小,以后各步的误差 也充分小
3、稳定性-误差在以后各步的计算中不会无限制扩大。是格式对舍入误差的抑止作用 我们考虑一种简单情况,即仅初值有误差,而其他计算步骤无误差。 设 { }i z 是初值有误差后的计算值,则 ( , ) ( , ) 1 1 n n n n n n n n z z hf x z y y hf x y = + = + + + 所以,我们有: ( , ) ( , ) n 1 n 1 n 1 n n n n n e y − z e + h f x y − f x z + + + e hL y z e (1 hL) n + n − n = n + n n hL e hL e e ( 1) 0 1 0 (1 ) + + + 可以看出,向前差商公式关于初值是稳定的。当初始误差充分小,以后各步的误差 也充分小