system: [SYSTEM]

user: 2. 差分格式的建立 为了推导差分格式，取沿 x 1 方向和 x 2 方向的步长h和k，做两族分别 x 1 轴和 x 2 轴平行的直线： x 1 i = i h ， i = 0 ， 1 ， 2 ， ⋯ ， m ， x 2 j = j k ， j = 0 ， 1 ， 2 ， ⋯ n ， 两族直线的交点 ( x 1 i ， x 2 j ) 称为节点。若两个节点沿 x 1 轴方向(或 x 2 轴方向)只相差一个步长时，称两个节点是相邻的。以 Ω h = { ( x 1 i ， x 2 j ) | ( x 1 i ， x 2 j ) ∈ Ω } 表示所有属于 Ω 内部的节点集合，并称此类点为内节点。 以 Γ h 表示网格线 x 1 = x 1 i 或 x 2 = x 2 j 与 Γ 的交点的集合，并称此类点为边界节点。 记 Ω h 上的网格函数为： U = { U i j | 0 ≤ i ≤ m ， 0 ≤ j ≤ n } 其中 U i j = { u ( x 1 i ， x 2 j ) | 0 ≤ i ≤ m ， 0 ≤ j ≤ n } . 2.1. 交错五点差分格式 把问题(1)用极坐标下的差分格式： [ 1 r ∂ ∂ r ( r ∂ u ∂ r ) ] i j ≈ 1 r i ( Δ r ) 2 [ r i + 1 2 u ( r i + 1 ， θ j ) − ( r i + 1 2 + r i − 1 2 ) u ( r i ， θ j ) + r i − 1 2 u ( r i − 1 ， θ j ) ] (2) 离散 [ 10 ] ，其中 r = x 1 2 + x 2 2 ， tan ( θ ) = x 2 x 1 ，整个 x 1 ， x 2 平面映射为 r ， θ 平面上的半带型域 Θ = { ( r ， θ ) | 0 ≤ r ≤ ∞ ， 0 ≤ θ ≤ 2 π } 分两步离散： 第一步，对问题(1)中的 ∂ ∂ x i ( a i j ( x 1 ， x 2 ) ∂ u ( x 1 ， x 2 ) ∂ x j ) ，先把括号外面的一阶微分 ∂ ∂ x i 用半个步长的中心差分代替。即 ( a i j ( x 1 ， x 2 ) ∂ u ( x 1 ， x 2 ) ∂ x j ) | ( i + 1 2 ， j ) − ( a i j ( x 1 ， x 2 ) ∂ u ( x 1 ， x 2 ) ∂ x j ) | ( i − 1 2 ， j ) h ， 第二步，把第一步离散后的微分再用半个步长的中心差分代替，可得到问题(1)中的每一个微分项的离散格式如下： ∂ ∂ x 1 ( a 11 ∂ u ∂ x 1 ) = a i + 1 2 ， j 11 ( u i + 1 ， j − u i ， j ) − a i − 1 2 ， j 11 ( u i ， j − u i − 1 ， j ) h 2 + O ( h 2 ) ， (3) ∂ ∂ x 1 ( a 12 ∂ u ∂ x 2 ) = a i + 1 2 ， j 12 ( u i + 1 2 ， j + 1 2 − u i + 1 2 ， j - 1 2 ) − a i − 1 2 ， j 12 ( u i − 1 2 ， j + 1 2 − u i − 1 2 ， j − 1 2 ) h 2 + O ( k h ) ， (4) ∂ ∂ x 2 ( a 21 ∂ u ∂ x 1 ) = a i ， j + 1 2 21 ( u i + 1 2 ， j + 1 2 − u i − 1 2 ， j + 1 2 ) − a i ， j − 1 2 21 ( u i + 1 2 ， j − 1 2 − u i − 1 2 ， j − 1 2 ) h 2 + O ( k h ) ， (5) ∂ ∂ x 2 ( a 22 ∂ u ∂ x 2 ) = a i ， j + 1 2 22 ( u i ， j + 1 − u i ， j ) − a i ， j − 1 2 22 ( u i ， j − u i ， j − 1 ) k 2 + O ( k 2 ) ， (6) 其中变系数函数 a 11 ， a 12 ， a 21 ， a 22 在半个步长上的值为 a i + 1 2 ， j 11 ， a i + 1 2 ， j 12 ， a i ， j + 1 2 21 ， a i ， j + 1 2 22 ， a i − 1 2 ， j 11 ， a i − 1 2 ， j 12 ， a i ， j − 1 2 21 ， a i ， j − 1 2 22 . 以上离散格式(3)，(4)，(5)，(6)略去高阶项后代入到问题(1)得到如下差分格式： − a i + 1 2 ， j 11 h 2 u i + 1 ， j + ( a i + 1 2 ， j 11 + a i − 1 2 ， j 11 h 2 + a i ， j + 1 2 22 + a i ， j − 1 2 22 k 2 ) u i ， j − a i − 1 2 ， j 11 h 2 u i − 1 ， j − a i ， j + 1 2 22 k 2 u i ， j + 1 − a i ， j − 1 2 22 k 2 u i ， j − 1 − ( a i + 1 2 ， j 12 + a i ， j + 1 2 21 k h ) u i + 1 2 ， j + 1 2 + ( a i + 1 2 ， j 12 + a i ， j − 1 2 21 k h ) u i + 1 2 ， j − 1 2 + ( a i − 1 2 ， j 12 + a i ， j + 1 2 21 k h ) u i − 1 2 ， j + 1 2 − ( a i - 1 2 ， j 12 + a i ， j - 1 2 21 k h ) u i − 1 2 ， j − 1 2 = f i ， j (7) 其中 f i ， j = f ( x i ， x j ) 。 差分格式(7)是由节点和剖分所形成的网格的中心 ( ( i − 1 2 ， j − 1 2 ) ， ( i − 1 2 ， j + 1 2 ) ， ( i + 1 2 ， j − 1 2 ) ， ( i + 1 2 ， j + 1 2 ) ) (称为网格的中心点)交错得到的，从节点的角度看，用了五个节点 x i ， j + 1 ， x i ， j − 1 ， x i ， j ， x i − 1 ， j ， x i + 1 ， j ，但是计算的时候我们用到了网格的中心点，又可以看作是九个点的差分格式。因此，我们称差分格式(7)为交错五点差分格式。 2.2. 五点差分格式 观察差分格式(7)，我们需要计算节点和网格的中心点，计算量比较大。因此，我们用中点公式把网格的中心点转化到节点上。如下： u i + 1 2 ， j + 1 2 = u i + 1 ， j + u i ， j + 1 2 + O ( h 2 + k 2 ) ， (8) u i + 1 2 ， j − 1 2 = u i + 1 ， j + u i ， j − 1 2 + O ( h 2 + k 2 ) ， (9) u i − 1 2 ， j + 1 2 = u i − 1 ， j + u i ， j + 1 2 + O ( h 2 + k 2 ) ， (10) u i − 1 2 ， j − 1 2 = u i − 1 ， j + u i ， j − 1 2 + O ( h 2 + k 2 ) ， (11) 把所有网格的中心点都转化到节点上，这样方便计算，就得到较简单的五点差分格式： ( − a i + 1 2 ， j 11 h 2 + a i ， j − 1 2 21 − a i ， j + 1 2 21 2 k h ) u i + 1 ， j + ( a i + 1 2 ， j 11 + a i − 1 2 ， j 11 h 2 + a i ， j + 1 2 22 + a i ， j − 1 2 22 k 2 ) u i ， j + ( − a i − 1 2 ， j 11 h 2 + a i ， j + 1 2 21 − a i ， j − 1 2 21 2 k h ) u i − 1 ， j + ( − a i ， j + 1 2 22 k 2 + a i − 1 2 ， j 12 − a i + 1 2 ， j 12 2 k h ) u i ， j + 1 + ( − a i ， j − 1 2 22 k 2 + a i + 1 2 ， j 12 − a i − 1 2 ， j 12 2 k h ) u i ， j − 1 = f i ， j (12) 五点差分格式(12)简单，易于编程实现，并且很容易推广到其它复杂情形。由于交错五点差分格式(7)具备九点差分格式的特点，我们可以构造一般的九点差分格式，对比研究新格式(7)。以下是构造的一般九点差分格式。 2.3. 九点差分格式 同交错五点差分格式的离散一样，把问题(1)也用极坐标下的差分格式(2)进行离散，但是每个微分项不都用半个步长的中心差分来离散，构造以下九点差分格式时，微分项 ∂ ∂ x 1 ( a 11 ∂ u ∂ x 1 ) ， ∂ ∂ x 2 ( a 22 ∂ u ∂ x 2 ) 与交错五点差分格式的离散一样，分两步，每一步都是用了半个步长的中心差分离散 [ 10 ] ，而微分项 ∂ ∂ x 1 ( a 12 ∂ u ∂ x 2 ) ， ∂ ∂ x 2 ( a 21 ∂ u ∂ x 1 ) 分两步离散时 [ 11 ] ，都是用了一个步长的中心差分，因此，得到问题(1)的每一个微分项的离散格式如下： ∂ ∂ x 1 ( a 11 ∂ u ∂ x 1 ) = a i + 1 2 ， j 11 ( u i + 1 ， j − u i ， j ) − a i − 1 2 ， j 11 ( u i ， j − u i − 1 ， j ) h 2 + O ( h 2 ) ， (13) ∂ ∂ x 1 ( a 12 ∂ u ∂ x 2 ) = a i + 1 ， j 12 ( u i + 1 ， j + 1 − u i + 1 ， j − 1 ) − a i − 1 ， j 12 ( u i − 1 ， j + 1 − u i − 1 ， j − 1 ) 4 k h + O ( k h ) ， (14) ∂ ∂ x 2 ( a 21 ∂ u ∂ x 1 ) = a i ， j + 1 21 ( u i + 1 ， j + 1 − u i − 1 ， j + 1 ) − a i ， j - 1 21 ( u i + 1 ， j − 1 − u i − 1 ， j − 1 ) 4 k h + O ( k h ) ， (15) ∂ ∂ x 2 ( a 22 ∂ u ∂ x 2 ) = a i ， j + 1 2 22 ( u i ， j + 1 − u i ， j ) − a i ， j − 1 2 22 ( u i ， j − u i ， j − 1 ) h 2 + O ( k 2 ) ， (16) 以上离散格式(13)，(14)，(15)，(16)略去高阶项代入到问题(1)得到如下九点差分格式： − a i + 1 2 ， j 11 h 2 u i + 1 ， j + ( a i + 1 2 ， j 11 + a i − 1 2 ， j 11 h 2 + a i ， j + 1 2 22 + a i ， j − 1 2 22 k 2 ) u i ， j − a i − 1 2 ， j 11 h 2 u i − 1 ， j − a i ， j − 1 2 22 k 2 u i ， j − 1 − a i ， j + 1 2 22 k 2 u i ， j + 1 − ( a i + 1 ， j 12 + a i ， j + 1 21 4 k h ) u i + 1 ， j + 1 + ( a i + 1 ， j 12 + a i ， j − 1 21 4 k h ) u i + 1 ， j − 1 + ( a i - 1 ， j 12 + a i ， j + 1 21 4 k h ) u i − 1 ， j + 1 − ( a i − 1 ， j 12 + a i ， j − 1 21 4 k h ) u i − 1 ， j − 1 = f i ， j (17) 以下分别讨论三种差分格式的误差。