第7章常微分方程初值问题的数值解法 71引言 72离散变量法 73欧拉法 74龙格-库塔法 75单步法的收敛性与稳定性 7.6线性多步法 77方程组与高阶方程初值问题的数值解法 78数值实验 CQUPT
CQUPT 第7章 常微分方程初值问题的数值解法 7.1 引言 7.3 欧拉法 7.5 单步法的收敛性与稳定性 7.2 离散变量法 7.6 线性多步法 7.4 龙格-库塔法 7.7 方程组与高阶方程初值问题的数值解法 7.8 数值实验
71引言 工程和科学技术中的许多实际问题都可以用微分方程描述 y2,a≤t≤b 例71种群阻滞增长模型dt yla=y 其中y(D)为t时刻某种群的数量,常数a>0表示净增长率, 常数β>0表示自然资源和环境条件对该种群的限制率 CQUPT
CQUPT 7.1 引言 工程和科学技术中的许多实际问题都可以用微分方程描述. 例 7.1 种群阻滞增长模型 = = − 0 2 ( ) , y a y y y a t b dt dy 其中 y(t) 为t 时刻某种群的数量, 常数 0表示净增长率, 常数 0 表示自然资源和环境条件对该种群的限制率
阶常微分方程初值问题的数值解法 要角容 f(x,y),a≤x≤b (7.1) vla 其中∫(x,y)为已知函数,y(a)=y称为初值条件 预备知识 定理71设(xy)在区城D=(xy)≤x≤b,-0, 使得f(x,y1)-f(x,y2)≤Ly1-y21都成立, 则初值问题(7.1)在[anb]上存在唯一的连续可微解y=y(x) CQUPT
CQUPT 一阶常微分方程初值问题的数值解法. = = 0 ( ) ( , ), y a y f x y a x b dx dy (7.1) 其中 f (x, y) 为已知函数, 0 y(a) = y 称为初值条件. 定理 7.1 设 f (x, y) 在区域 D = (x, y) a x b, − y +上连续, 且关于 y 满足 Lipschitz 条件,即对 x[a,b]以及 1 2 y , y ,存在常数 L 0 , 使得 1 2 1 2 f (x, y ) − f (x, y ) L y − y 都成立, 则初值问题(7.1)在[a,b]上存在唯一的连续可微解 y = y(x) . 主要内容 预备知识
若初值问题(7.1)有唯一解y(x),对任意E>0,存在常数δ>0, 使得当y0-<δ时,有y(x)-y(x)<E (72) 其中,y(x)表示(7.1)中方程以为初值的解,则称初值问题(.) 关于初值是稳定的 定理7,2若定理71的条件成立,则初值问题71) 关于初值是稳定的 例72证明下面的初值问题关于初值是稳定的 ax-y+1,0≤x≤1 y(0)=1 CQUPT
CQUPT 若初值问题(7.1)有唯一解 y(x) ,对任意 0 ,存在常数 0, 使得当 y0 − y0 时,有 y(x) − y(x) (7.2) 其中, y(x) 表示(7.1)中方程以 0 y 为初值的解,则称初值问题(7.1) 关于初值是稳定的. 定理 7.2 若定理 7.1 的条件成立,则初值问题(7.1) 关于初值是稳定的. 例 7.2 证明下面的初值问题关于初值是稳定的. = = − + (0) 1 1, 0 1 y x y x dx dy
f(x,y),a≤x≤b y(a=y 微分方程数值解法,就是求初值问题(1)的解y(x)在一系列 离散节点x:a=x0<x1<x2<…<xn1<xn=b处的 解y(x)的近似值y(=0,1,…,m)的方法 其中[a,b称为求解区间,h=x+1-x称为步长 CQUPT
CQUPT = = 0 ( ) ( , ), y a y f x y a x b dx dy (7.1) 微分方程数值解法,就是求初值问题(7.1)的解 y(x) 在一系列 离散节点 xi : a = x0 x1 x2 .... xn−1 xn = b 处的 解 ( ) i y x 的近似值 y (i 0,1, ,n) i = 的方法. 其中 [a,b] 称为求解区间, i i i h = x − x +1 称为步长
72离散变量法 f(x,y)2a≤x≤b 、差商代替导数法 y(a)=yo (7.1) 建立数值解法,首先要将微分方程离散化 三种离散化方法:差商代替导数法,数值积分法和泰勒展开法 在问题(71)中,若用向前差商 y(x+1)-y(x 代替y(x1),则得 h y(x+1)-y(x ≈f(x12y1(x1))(n=0,1,…,n-1) h y(x)用其 LVi+1=yi+hf(xi, yi) 近似值y代替 y(x0) 差分 方法 CQUPT
CQUPT 7.2 离散变量法 建立数值解法,首先要将微分方程离散化. 三种离散化方法:差商代替导数法,数值积分法和泰勒展开法. 在问题(7.1)中,若用向前差商 h y x y x i i ( ) ( ) +1 − 代替 ( ) i y x ,则得 ( , ( )) ( 0,1, , 1) ( ) ( ) 1 = − + − f x y x n n h y x y x i i i i i 一、差商代替导数法 = = 0 ( ) ( , ), y a y f x y a x b dx dy ……(7.1) ( ) i y x 用其 近似值 i y 代替 ( 0,1, , 1) ( ) ( , ) 0 0 1 = − = + = + i n y y x y y h f x y i i i i 差分 方法
f(x,y)2a≤x≤b 数值积分法 y(a)=yo (7.1) 对微分方程在区间[x12x]上积分,可得 y(x1+1)-y(x)=f(x,y(x))dx(i=0,1 若对右端积分使用数值积分公式,则可得到 解初值问题(7.1)的数值方法 利用左矩形公式 Vi+1=yi+hf(i,yi) (i=0 yo=y(no CQUPT
CQUPT 对微分方程在区间[ , ] i i+1 x x 上积分,可得 ( ) ( ) ( , ( ) ) ( 0,1, , 1) 1 1 − = = − + y x + y x f x y x d x i n i i x x i i 二、数值积分法 = = 0 ( ) ( , ), y a y f x y a x b dx dy ……(7.1) 若对右端积分使用数值积分公式,则可得到 解初值问题(7.1)的数值方法. ( 0,1, , 1) ( ) ( , ) 0 0 1 = − = + = + i n y y x y y h f x y 利用左矩形公式 i i i i
f(x,y)2a≤x≤b 、泰勒展开法 y(a)=yo (7.1) 设初值问题(71)满足定理7.1的条件,且函数八(xy)是足够次可微的 泰勒展开 0,l(x+h)=y(x)+p(x,y,h)+ p+1,、(p+1) (2)(7 其中Φ(x,y,h)=f(x,y(x)+bf(x,y(x)++-hp-f(p-)(x,y(x) 取x=x,并截去最后一项,得到离散化公式 y1=y1+hc(x1,y(x,),h)(.) CQUPT
CQUPT 设初值问题(7.1)满足定理 7.1 的条件,且函数 f(x,y)是足够次可微的. 三、泰勒展开法 = = 0 ( ) ( , ), y a y f x y a x b dx dy ……(7.1) ( ) ( 1)! 1 ( ) ( ) ( , , ) 1 ( 1) + + + + = + + p p h y p y x h y x h x y h (7.4) 其中 ( , ( ) ) ! 1 ( , ( ) ) ... 2! 1 ( , , ) ( , ( ) ) 1 ( 1) h f x y x p x y h f x y x hf x y x p− p− = + + + . 取 i x = x ,并截去最后一项,得到离散化公式 ( , ( ), ) yi+1 = yi + h xi y xi h (7.5) 泰勒展开
误差合 定义7.』假设y1=y(x)为准确值,考虑计算下一步所产生的误差, 即用某种数值算法计算y(x1)所产生的误差R1=y(x1)-yn1 称为该数值算法的局部截断误差 定义7.2考虑用某种数值算法计算时,因前面的计算不准确而引起的 准确解y(x)与数值解y的误差e1=y(x)-y 称为该数值算法在节点x处的整体截断误差 CQUPT
CQUPT 定义 7.1 假设 ( ) i i y = y x 为准确值,考虑计算下一步所产生的误差, 即用某种数值算法计算 ( ) i+1 y x 所产生的误差 ( ) i+1 = i+1 − i+1 R y x y 称为该数值算法的局部截断误差. 误差概念 定义 7.2 考虑用某种数值算法计算时,因前面的计算不准确而引起的 准确解 ( ) i y x 与数值解 i y 的误差 i i i e = y(x ) − y 称为该数值算法在节点 i x 处的整体截断误差
定义73如果某个数值解法的局部截断误差为O(h+),则 称该算法为p阶算法(P阶精度) 当步长h<1时,p越大,则局部截断误差越小,计算精度就越高. CQUPT
CQUPT 定义 7.3 如果某个数值解法的局部截断误差为 ( ) p+1 O h ,则 称该算法为 p 阶算法( p 阶精度). 当步长 h 1时, p 越大,则局部截断误差越小,计算精度就越高