有限差分法的基本知识
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章有限差分法的基本知识 1、差分方程 2、截断误差 3、收敛性 4、稳定性
§1
差分方程
有限差分法和有限元法是解偏微分 方程的两种主要的数值方法。由于数字 电子计算机只能存储有限个数据和作有 限次运算,所以任何一种适用于计算机 解题的方法,都必须把连续问题离散化 ,最终化成有限形式的代数方程组。
对同一微分方程可以建 立种种不同形式的差分 格式。 在(1.1)中 u 对 t采用向前差商, u 对 x采用向后差商和中心 差商得
+1 n n n ⎧ un − − u u u j j j −1 ⎪ j +c =0 (左偏格式) ⎨ τ h 0 ⎪ u j = fj ⎩ +1 n n n ⎧ un − − u u u j j +1 j −1 ⎪ j +c =0 (中心格式) ⎨ τ 2h 0 ⎪ u j = fj ⎩
τ
+c
=0
(1.8 )
将 (1.8 )改写成便于计算的形式
n n n +1 λ un = u − c u − u ( j j j +1 j ),
j = 0,± 1,± 2, "
n = 0,1,2, " ,
(1.9 )
这里 λ = τ / h 称为网格比。 (1.8 )和(1.9 )称为(1.1) 的(有限)差分方程 (差分格式)。
= 0(τ + h ), (1.7 )
为了保证逼近精度要求 ,实际取步长 h 与 τ是较小的量, 特别在进行理论分析的 极限过程中它们都趋向 于零。 这样可以用方程
+1 n − un u j j n − un u j +1 j
h 近似代替,其中 u n j 表示 u( x j , t n )的近似值。
以最简单一维对流方程 为例,引入用差分 方法求偏微分方程数值 解的一些概念,说明求 解过程和原理。 考虑对流方程的初值问 题 ∂u ⎧ ∂u ⎪ +c = 0 x ∈ R, t > 0 ⎨ ∂t ∂x ⎪ u( x ,0 ) = f ( x ) x ∈ R ⎩ (1.1)
1 区域的剖分(区域的离散化)
q p
间 t是 q阶精度的,对空间 x是 p阶精度的。 特别,当 p = q时,说差分格式 p是阶精度的 .
§3
收敛性
一个差分格式能否在实际中使用, 最终要看能否任意地逼近微分方程的解 。这样对于每一个差分格式,人们便从 两个方面加以考虑:一是引入收敛性的 概念,考察差分格式在理论上的准确解 能否任意逼近微分方程的解;二是引入 稳定性的概念,考察差分格式在实际计 算中的近似解能否任意逼近差分方程的 解。
由于 u 是方程 (1.1)的解,所以满足 ∂ ∂ u( x j , t n ) + c u( x j , t n ) = 0 , ∂x ∂t
(1.6 )
因此从 (1.2 )和(1.3 )得到 u( x j , t n + 1 ) − u( x j , t n )
τ
+c
u( x j + 1 , t n ) − u( x j , t n ) h
就要分析这种误差传播 的情况。如果误差的影 响 越来越大,以至差分格 式的精确解的面貌完全 被 掩盖,那么此种差分格 式称为不稳定的。相反 地, 如果误差的影响是可以 控制的,差分格式的解 基 本上能计算出来,那么 这种差分格式就认为是 稳定的。
设初始层上引入了误差 ε 0 j , j = 0 , ± 1, " , 令ε n j , j = 0 , ± 1, " , 是第 n 层上的误差,如果 存在常数 K 使得
设 u 是微分方程的准确解, u n j 是相应差分方程 的准确解。如果当步长 h → 0,τ → 0时,对任何 ( j , n )有 un j → u( x j , t n ) 则称差分格式是收敛的
§4
稳定性
差分格式的计算是逐层 进行的,计算 n + 1层上
+1 n 的un 时,要用到第 层上计算出来的结果 因此 n u j j . n+1 计算 u n 时的舍入误差,必然会 影响 u j j 的值,从而
§2 截断误差
对于齐次问题,可以将 微分方程和 差分方程记为 Lu = 0 其中 L是微分算子 Lh u n 其中 Lh是相应的差分算子 j = 0,
∂u ∂u +c 方程 (1.1)微分算子 L为 Lu = ∂t ∂x n+1 n n n − − u u u u j j j +1 j 格式 (1.8 )相应差分算子 Lh为 Lh u n = + c j τ h
设 u 是所讨论的微分方程的 充分光滑的解,将算子 L 和 Lh分别作用于 u ,记两者在任意的结点 ( x j , t n )处的差 为 E ,即 E = Lh u( x j , t n ) − Lu ( x j , t n ) ( 2 . 1) 差分格式的截断误差是 指对 E 的估计。
讨论格式 (1.8 )的截断误差即 E = Lh u( x j , t n ) − Lu ( x j , t n ) = u( x j , t n + 1 ) − u( x j , t n )
1 2 3 4
1 1 在网格中,点 E , F , G , H依次为 ( n − , j − ), 2 2 1 1 1 1 1 1 ( n − , j + ), ( n + , j + ), ( n + , j − ), 2 2 2 2 2 2
t n+1 H n E n-1 j-1 o j j+1 x G F
其中 n x与 nt 分别是 L 的外法向单位向量 n 沿 x方向
把 (1.14 )左端分成在 L1, L2, L3, L4, 上的四个积分, ~ ~ ~ ~=0 得近似方程 − u h + cu τ + u h − cu τ ~ cτ 既 u3 = u1 − ~ ( u2 − u4 ) (1.15 ) h ~ ~是 L 与 L 的长度, 这里 h 是 L1与 L3的长度, τ 2 4 ui 是可按不同方式确定的 u在 Li 上的近似函数值。
1 n 1 n n −1 并取 u1 = ( u j + u j ),u 2 = ( u j + u n j + 1 ), 2 2 1 n+1 1 n n u 3 = ( u j + u j ), u4 = ( u j −1 + u n j ), 2 2 ~ ~ = τ , 从 (1.15 )得到 于是 h = h, τ cτ n n+1 n −1 ( u j +1 − u n (1.16 ) uj = uj − j −1 ) h 这是一个常用的差分格 式,称为蛙跳格式。
现在换一种方式,如图 ,在网格中,点 E, F , G, H 依次为 (n, j − 1),(n, j + 1),(n + 1, j + 1),(n + 1, j − 1),
t n+1 H
G
n o
E j-1 j
F j+1 x
1 n n n+1 n ), , , 并取 u1 = ( u j + 1 + u n = = = u u u u u u 4 2 3 j −1 j +1 j j −1 , 2 ~ ~ = τ , 从 (1.15 )得到 于是 h = 2 h, τ 1 n cτ n n+1 n ( u j +1 − u n u j = ( u j + 1 + u j −1 ) − j −1 ) 2 h 也可写成 1 n n+1 n n u j − ( u j +1 + u n j −1 ) − u u j +1 j −1 2 (1.17 ) +c =0 τ 2h 这个格式称为 Lax − Friedrichs 格式。
(1.12 )
(1.13 )
2 积分插值法
高等数学中,我们学习过Green公式:
设 闭区域 D由分段光滑的曲线 L围成, 函数 P ( x , y )及 Q ( x , y )在上 有一阶连续偏导数,则 有 ∂Q ∂P )dxdy = ∫ Pdx + Qdy = ∫ ( P cos α + Q cos β )ds ( − ∫∫ ∂x ∂y D L L 其中 L是 D的取正向的边界曲线。 其中 α ( x , y )、 β ( x , y )为有向曲线弧 L上( x , y )处的切线 向量的方向角。
在平面上,取矩形域为
积分区域,
L = L1 + L2 + L3 + L4是 D 的边界。将方程 ∂u ∂u (1 .1 )在 D 上积分,得到 ∫∫ +c ( ) dxdt = 0 ∂t ∂x D
t H L4 E o L1
L3
G L2 F x
利用 Green 公式,得 ∂u ∂u ( + c ) dxdt = ∫( un t + cun x )ds = 0 ∫∫ L x t ∂ ∂ D 与沿 t方向的两个分量。 (1.14 )
问题 (1.1)中的初始条件的离散形 式是 u0 j = f j = f ( x j ), j = 0,± 1,± 2, " , (1.10 )
初值问题 (1.1)的差分格式
+1 n n n ⎧ un u u u − − j j +1 j ⎪ j +c =0 (显式右偏格式) (1.11) ⎨ τ h 0 ⎪ u j = fj ⎩
0 解: 设在第 0层上每个网格点上的 u 0 有误差 ε j j ,即初值 0 0 0 0 + + u u 为u0 而不是 ,用 ε ε j j j j j 为初值进行计算,得到 的 n + 为un ε j j 。设想在这一计算过程 中没有引进别的误差, n + 那么 u n ε j j 应满足 ( 4 .2 ), 即 n+1 n n +1 (un + ) − ( + ε ε u j j j j )
网格剖分可以采用两组 平行于 x轴和 t轴 的直线形成的网覆盖区 域 Ω ,它们的交点称 为网格结点(节点) t = t n = n τ n = 0,1,2, " x = x j = jh j = 0,± 1,± 2, " 节点 ( x j , t n )记为( j , n ). 间距 h > 0称为空间步长,间距 τ > 0称为时间步长。
εn
h
≤ K ε0
h h
( 4 . 1) 是
n 2 ( ε ∑ j) h ∞
那么称差分格式是稳定 的,其中 某种尺度 (范数 ),它可以是 也可以取
εn
h
=
j = −∞
εn
h
= max ε n j .
j
∂u ∂u + 例 2 考虑逼近对流方程 =0 ∂t ∂x n n n +1 un u u u − − j j j j −1 的差分格式 + = 0 ( 4 .2 ) τ h 的稳定性。
t
( x j , tn )
0
x
1 微分方程离散(差分方程)
高等数学中,我们学习过Taylor公式:
设 f ( x ) 在 x0 的某个邻域 U ( x0 , δ ) 内具有直 到n + 1阶的导数,则 ∀x ∈ U ( x0 , δ ) 有
f ( x ) = f ( x0 ) + f ′( x0 )( x − x0 ) + " + f ( n ) ( x0 ) ( x − x0 )n + Rn ( x ) n!
Rn ( x )是余项,且 Rn ( x ) = o(( x − x0 )n )
( x → x0 ).
设 u 是方程 (1.1)的解,对于任何节点 ( j , n ), u 的微商 与差商之间的关系式 u( x j , t n + 1 ) − u( x j , t n ) ∂ = u( x j , t n ) + o(τ ), (向前差商) (1.2 ) τ ∂t u( x j + 1 , t n ) − u( x j , t n ) ∂ u( x j , t n ) + o( h ), (向前差商) (1.3 ) = h ∂x u( x j , t n ) − u( x j − 1 , t n ) ∂ u( x j , t n ) + o( h ), (向后差商) (1.4 ) = h ∂x u( x j + 1 , t n ) − u( x j − 1 , t n ) ∂ u( x j , t n ) + o( h 2 ), (中心差商) (1. = 2h ∂x
τ
−( ∂ u( x j , t n ) +c
+c
u( x j + 1 , t n ) − u( x j , t n )
τ
)
∂ u( x源自文库j , t n ) ∂x
∂t = o(τ + h )
我们也用“精度”一词 说明截断误差。 一般,如果一个差分格 式的截断误差 E = o( τ + h ),就说差分格式对时
§1
差分方程
有限差分法和有限元法是解偏微分 方程的两种主要的数值方法。由于数字 电子计算机只能存储有限个数据和作有 限次运算,所以任何一种适用于计算机 解题的方法,都必须把连续问题离散化 ,最终化成有限形式的代数方程组。
对同一微分方程可以建 立种种不同形式的差分 格式。 在(1.1)中 u 对 t采用向前差商, u 对 x采用向后差商和中心 差商得
+1 n n n ⎧ un − − u u u j j j −1 ⎪ j +c =0 (左偏格式) ⎨ τ h 0 ⎪ u j = fj ⎩ +1 n n n ⎧ un − − u u u j j +1 j −1 ⎪ j +c =0 (中心格式) ⎨ τ 2h 0 ⎪ u j = fj ⎩
τ
+c
=0
(1.8 )
将 (1.8 )改写成便于计算的形式
n n n +1 λ un = u − c u − u ( j j j +1 j ),
j = 0,± 1,± 2, "
n = 0,1,2, " ,
(1.9 )
这里 λ = τ / h 称为网格比。 (1.8 )和(1.9 )称为(1.1) 的(有限)差分方程 (差分格式)。
= 0(τ + h ), (1.7 )
为了保证逼近精度要求 ,实际取步长 h 与 τ是较小的量, 特别在进行理论分析的 极限过程中它们都趋向 于零。 这样可以用方程
+1 n − un u j j n − un u j +1 j
h 近似代替,其中 u n j 表示 u( x j , t n )的近似值。
以最简单一维对流方程 为例,引入用差分 方法求偏微分方程数值 解的一些概念,说明求 解过程和原理。 考虑对流方程的初值问 题 ∂u ⎧ ∂u ⎪ +c = 0 x ∈ R, t > 0 ⎨ ∂t ∂x ⎪ u( x ,0 ) = f ( x ) x ∈ R ⎩ (1.1)
1 区域的剖分(区域的离散化)
q p
间 t是 q阶精度的,对空间 x是 p阶精度的。 特别,当 p = q时,说差分格式 p是阶精度的 .
§3
收敛性
一个差分格式能否在实际中使用, 最终要看能否任意地逼近微分方程的解 。这样对于每一个差分格式,人们便从 两个方面加以考虑:一是引入收敛性的 概念,考察差分格式在理论上的准确解 能否任意逼近微分方程的解;二是引入 稳定性的概念,考察差分格式在实际计 算中的近似解能否任意逼近差分方程的 解。
由于 u 是方程 (1.1)的解,所以满足 ∂ ∂ u( x j , t n ) + c u( x j , t n ) = 0 , ∂x ∂t
(1.6 )
因此从 (1.2 )和(1.3 )得到 u( x j , t n + 1 ) − u( x j , t n )
τ
+c
u( x j + 1 , t n ) − u( x j , t n ) h
就要分析这种误差传播 的情况。如果误差的影 响 越来越大,以至差分格 式的精确解的面貌完全 被 掩盖,那么此种差分格 式称为不稳定的。相反 地, 如果误差的影响是可以 控制的,差分格式的解 基 本上能计算出来,那么 这种差分格式就认为是 稳定的。
设初始层上引入了误差 ε 0 j , j = 0 , ± 1, " , 令ε n j , j = 0 , ± 1, " , 是第 n 层上的误差,如果 存在常数 K 使得
设 u 是微分方程的准确解, u n j 是相应差分方程 的准确解。如果当步长 h → 0,τ → 0时,对任何 ( j , n )有 un j → u( x j , t n ) 则称差分格式是收敛的
§4
稳定性
差分格式的计算是逐层 进行的,计算 n + 1层上
+1 n 的un 时,要用到第 层上计算出来的结果 因此 n u j j . n+1 计算 u n 时的舍入误差,必然会 影响 u j j 的值,从而
§2 截断误差
对于齐次问题,可以将 微分方程和 差分方程记为 Lu = 0 其中 L是微分算子 Lh u n 其中 Lh是相应的差分算子 j = 0,
∂u ∂u +c 方程 (1.1)微分算子 L为 Lu = ∂t ∂x n+1 n n n − − u u u u j j j +1 j 格式 (1.8 )相应差分算子 Lh为 Lh u n = + c j τ h
设 u 是所讨论的微分方程的 充分光滑的解,将算子 L 和 Lh分别作用于 u ,记两者在任意的结点 ( x j , t n )处的差 为 E ,即 E = Lh u( x j , t n ) − Lu ( x j , t n ) ( 2 . 1) 差分格式的截断误差是 指对 E 的估计。
讨论格式 (1.8 )的截断误差即 E = Lh u( x j , t n ) − Lu ( x j , t n ) = u( x j , t n + 1 ) − u( x j , t n )
1 2 3 4
1 1 在网格中,点 E , F , G , H依次为 ( n − , j − ), 2 2 1 1 1 1 1 1 ( n − , j + ), ( n + , j + ), ( n + , j − ), 2 2 2 2 2 2
t n+1 H n E n-1 j-1 o j j+1 x G F
其中 n x与 nt 分别是 L 的外法向单位向量 n 沿 x方向
把 (1.14 )左端分成在 L1, L2, L3, L4, 上的四个积分, ~ ~ ~ ~=0 得近似方程 − u h + cu τ + u h − cu τ ~ cτ 既 u3 = u1 − ~ ( u2 − u4 ) (1.15 ) h ~ ~是 L 与 L 的长度, 这里 h 是 L1与 L3的长度, τ 2 4 ui 是可按不同方式确定的 u在 Li 上的近似函数值。
1 n 1 n n −1 并取 u1 = ( u j + u j ),u 2 = ( u j + u n j + 1 ), 2 2 1 n+1 1 n n u 3 = ( u j + u j ), u4 = ( u j −1 + u n j ), 2 2 ~ ~ = τ , 从 (1.15 )得到 于是 h = h, τ cτ n n+1 n −1 ( u j +1 − u n (1.16 ) uj = uj − j −1 ) h 这是一个常用的差分格 式,称为蛙跳格式。
现在换一种方式,如图 ,在网格中,点 E, F , G, H 依次为 (n, j − 1),(n, j + 1),(n + 1, j + 1),(n + 1, j − 1),
t n+1 H
G
n o
E j-1 j
F j+1 x
1 n n n+1 n ), , , 并取 u1 = ( u j + 1 + u n = = = u u u u u u 4 2 3 j −1 j +1 j j −1 , 2 ~ ~ = τ , 从 (1.15 )得到 于是 h = 2 h, τ 1 n cτ n n+1 n ( u j +1 − u n u j = ( u j + 1 + u j −1 ) − j −1 ) 2 h 也可写成 1 n n+1 n n u j − ( u j +1 + u n j −1 ) − u u j +1 j −1 2 (1.17 ) +c =0 τ 2h 这个格式称为 Lax − Friedrichs 格式。
(1.12 )
(1.13 )
2 积分插值法
高等数学中,我们学习过Green公式:
设 闭区域 D由分段光滑的曲线 L围成, 函数 P ( x , y )及 Q ( x , y )在上 有一阶连续偏导数,则 有 ∂Q ∂P )dxdy = ∫ Pdx + Qdy = ∫ ( P cos α + Q cos β )ds ( − ∫∫ ∂x ∂y D L L 其中 L是 D的取正向的边界曲线。 其中 α ( x , y )、 β ( x , y )为有向曲线弧 L上( x , y )处的切线 向量的方向角。
在平面上,取矩形域为
积分区域,
L = L1 + L2 + L3 + L4是 D 的边界。将方程 ∂u ∂u (1 .1 )在 D 上积分,得到 ∫∫ +c ( ) dxdt = 0 ∂t ∂x D
t H L4 E o L1
L3
G L2 F x
利用 Green 公式,得 ∂u ∂u ( + c ) dxdt = ∫( un t + cun x )ds = 0 ∫∫ L x t ∂ ∂ D 与沿 t方向的两个分量。 (1.14 )
问题 (1.1)中的初始条件的离散形 式是 u0 j = f j = f ( x j ), j = 0,± 1,± 2, " , (1.10 )
初值问题 (1.1)的差分格式
+1 n n n ⎧ un u u u − − j j +1 j ⎪ j +c =0 (显式右偏格式) (1.11) ⎨ τ h 0 ⎪ u j = fj ⎩
0 解: 设在第 0层上每个网格点上的 u 0 有误差 ε j j ,即初值 0 0 0 0 + + u u 为u0 而不是 ,用 ε ε j j j j j 为初值进行计算,得到 的 n + 为un ε j j 。设想在这一计算过程 中没有引进别的误差, n + 那么 u n ε j j 应满足 ( 4 .2 ), 即 n+1 n n +1 (un + ) − ( + ε ε u j j j j )
网格剖分可以采用两组 平行于 x轴和 t轴 的直线形成的网覆盖区 域 Ω ,它们的交点称 为网格结点(节点) t = t n = n τ n = 0,1,2, " x = x j = jh j = 0,± 1,± 2, " 节点 ( x j , t n )记为( j , n ). 间距 h > 0称为空间步长,间距 τ > 0称为时间步长。
εn
h
≤ K ε0
h h
( 4 . 1) 是
n 2 ( ε ∑ j) h ∞
那么称差分格式是稳定 的,其中 某种尺度 (范数 ),它可以是 也可以取
εn
h
=
j = −∞
εn
h
= max ε n j .
j
∂u ∂u + 例 2 考虑逼近对流方程 =0 ∂t ∂x n n n +1 un u u u − − j j j j −1 的差分格式 + = 0 ( 4 .2 ) τ h 的稳定性。
t
( x j , tn )
0
x
1 微分方程离散(差分方程)
高等数学中,我们学习过Taylor公式:
设 f ( x ) 在 x0 的某个邻域 U ( x0 , δ ) 内具有直 到n + 1阶的导数,则 ∀x ∈ U ( x0 , δ ) 有
f ( x ) = f ( x0 ) + f ′( x0 )( x − x0 ) + " + f ( n ) ( x0 ) ( x − x0 )n + Rn ( x ) n!
Rn ( x )是余项,且 Rn ( x ) = o(( x − x0 )n )
( x → x0 ).
设 u 是方程 (1.1)的解,对于任何节点 ( j , n ), u 的微商 与差商之间的关系式 u( x j , t n + 1 ) − u( x j , t n ) ∂ = u( x j , t n ) + o(τ ), (向前差商) (1.2 ) τ ∂t u( x j + 1 , t n ) − u( x j , t n ) ∂ u( x j , t n ) + o( h ), (向前差商) (1.3 ) = h ∂x u( x j , t n ) − u( x j − 1 , t n ) ∂ u( x j , t n ) + o( h ), (向后差商) (1.4 ) = h ∂x u( x j + 1 , t n ) − u( x j − 1 , t n ) ∂ u( x j , t n ) + o( h 2 ), (中心差商) (1. = 2h ∂x
τ
−( ∂ u( x j , t n ) +c
+c
u( x j + 1 , t n ) − u( x j , t n )
τ
)
∂ u( x源自文库j , t n ) ∂x
∂t = o(τ + h )
我们也用“精度”一词 说明截断误差。 一般,如果一个差分格 式的截断误差 E = o( τ + h ),就说差分格式对时