system: [SYSTEM]

user: 3. 全离散格式及算法 首先引入中间变量 P = D U x ，则(1)式可改写为以下形式 { ∂ t U − D ( P x ) = f ， P = D U x . (5) 其全离散格式为：寻找 u ， p ∈ V N ⊗ S M ，使得对任意的 v ， z ∈ V N ⊗ S M * 有 { ( ∂ t u ， v ) I i × J j + D [ − ∫ J j ( p ^ ⋅ v − ) i ， t d t + ∫ J j ( p ^ ⋅ v + ) i − 1 ， t d t + ( p ， w x ) I i × J j ] = ( f ， v ) I i × J j ， ( p ， z ) I i × J j + D [ − ∫ J j ( u ^ ⋅ z − ) i ， t d t + ∫ J j ( u ^ ⋅ z + ) i − 1 ， t d t + ( u ， z x ) I i × J j ] = 0 ， (6) 其中“ ^ ”表示数值流通量。在本文中，我们选取如下交替形式的数值流通量，这有助于其后对于时空局部间断谱元法全离散格式收敛性的证明。 u ^ ( x i ， t ) = u ( x i − ， t ) ， p ^ ( x i ， t ) = p ( x i + ， t ) ， 且 v i ， t − = v ( x i − ， t ) ， v i − 1 ， t + = v ( x i − 1 + ， t ) ， z i ， t − = z ( x i − ， t ) ， z i − 1 ， t + = z ( x i − 1 + ， t ) . 定义 L n ( x ) 为 n 次Legendre多项式。本文中局部基函数的选取方式如下，空间方向上试探基函数为 φ 0 ( i ) ( x ) = 1 2 ( L 0 ( x ¯ ) − L 1 ( x ¯ ) ) ， φ 1 ( i ) ( x ) = 1 2 ( L 0 ( x ¯ ) + L 1 ( x ¯ ) ) ， φ k ( i ) ( x ) = L k ( x ¯ ) − L k − 2 ( x ¯ ) ， x ∈ I i ，其中 i = 1 ， 2 ， ⋯ ， K 1 ， k = 2 ， 3 ， ⋯ ， N i 。检验基函数为 φ ˜ n ( i ) ( x ) = φ n ( i ) ( x ) ， x ∈ I i ，其中 i = 1 ， 2 ， ⋯ ， K 1 ， n = 0 ， 1 ， ⋯ ， N i 。 时间方向上试探基函数为 ψ 0 ( 1 ) ( t ) = 1 + t ， ψ l ( 1 ) ( t ) = ( 1 + t ) ( L l ( t ¯ ) − L l + 1 ( t ¯ ) ) ， t ∈ J 1 ，其中 l = 1 ， 2 ， ⋯ ， M 1 − 2 ， ψ 0 ( j ) ( t ) = ( 1 + t ) ( 1 + ( t ¯ ) ) ， ψ l ( j ) ( t ) = ( 1 + t ) ( L l ( t ¯ ) − L l + 2 ( t ¯ ) ) ， t ∈ J j ，其中 j = 2 ， 3 ， ⋯ ， K 2 ， l = 1 ， 2 ， ⋯ ， M j − 3 。检验基函数为 ψ ˜ m ( j ) ( t ) = ( 1 − t ) L m ( j ) ( t ¯ ) ， t ∈ J j ，其中 j = 1 ， 2 ， ⋯ ， K 2 ， m = 0 ， 1 ， ⋯ ， M j − 1 。 局部试探基函数为 φ k ( i ) ( x ¯ ) ψ l ( j ) ( t ¯ ) ，局部检验基函数为 φ ˜ n ( i ) ( x ¯ ) ψ ˜ m ( j ) ( t ¯ ) ，其中 ( x ， t ) ∈ I i × J j ， ( x ¯ ， t ¯ ) ∈ Ω 。 记 M 1 ( i ) = ( φ ˜ n ( i ) ( x ) ， φ k ( i ) ( x ) ) I i ， M 2 ( j ) = ( ψ l ( j ) ( t ) ， ψ ˜ m ( j ) ( t ) ) J j ， S 1 ( i ) = ( φ ˜ n ( i ) ( x ) ∂ x ， φ k ( i ) ( x ) ) I i ， S 2 ( j ) = ( ψ l ( j ) ( t ) ∂ t ， ψ ˜ m ( j ) ( t ) ) J j . N 1 ( i ) = ( φ ˜ n ( i ) ( x ) ， L k ( i ) ( x ) ) I i ， N 2 ( j ) = ( L l ( j ) ( t ) ， ψ ˜ m ( j ) ( t ) ) J j . 由Legendre多项式的正交性，可计算出以上矩阵中的元素。从而式(6)可转化为如下矩阵方程 { M 1 U i ， j S 2 + D [ − A 21 P i + 1 ， j M 2 + A 11 P i ， j M 2 + S 1 P i ， j M 1 ] = N 1 F i ， j N 2 ， M 1 P i ， j M 2 + D [ − A 22 U i ， j M 2 + A 12 U i − 1 ， j M 2 + S 1 U i ， j M 1 ] = 0 ， (7) 其中 F i ， j 为 f 的系数矩阵，且 A 11 = ( φ ˜ n ( i ) ( x i − 1 ) ， φ k ( i ) ( x i − 1 ) ) I i ，   A 12 = ( φ ˜ n ( i ) ( x i − 1 ) ， φ k ( i − 1 ) ( x i − 1 ) ) I i ， A 21 = ( φ ˜ n ( i ) ( x i − 1 ) ， φ k ( i + 1 ) ( x i ) ) I i ，   A 22 = ( φ ˜ n ( i ) ( x i ) ， φ k ( i ) ( x i ) ) I i . 在计算线性问题时，对空间区域的方程联立求解，并利用克罗内克积将其写成标准的 A u = f 代数方程形式。增加空间方向区域个数，求解方法类似。依次在每个 1 ≤ j ≤ K 2 区域上进行求解，每个时间子区域上的求解过程类似。 以空间二区域时间多区域为例，求解时间区间 J j 时： A = [ S 2 T ⊗ M 1 O D [ M 2 T ⊗ A 11 + M 2 T ⊗ S 1 ] − D [ M 1 T ⊗ A 21 ] D [ − M 2 T ⊗ A 22 + M 2 T ⊗ S 1 ] D [ M 2 T ⊗ A 12 ] M 2 T ⊗ M 1 O O S 2 T ⊗ M 1 − D [ M 2 T ⊗ A 21 ] D [ M 2 T ⊗ A 11 + M 2 T ⊗ S 1 ] D [ M 2 T ⊗ A 12 ] D [ − M 2 T ⊗ A 22 + M 2 T ⊗ S 1 ] O M 2 T ⊗ M 1 ] f = [ ( N 2 T ⊗ N 1 ) v e c ( F 1 ， j ) ， O ， ( N 2 T ⊗ N 1 ) v e c ( F 2 ， j ) ， O ] T . (8) 可得数值解系数矩阵 u j = [ v e c ( U 1 ， j ) ， v e c ( U 2 ， j ) ， v e c ( P 1 ， j ) ， v e c ( P 2 ， j ) ] T ， 在T时刻，方程解由下式给出 u ( i ， K 2 ) ( x ， T ) = ∑ j = 1 K 2 u ( i ， j ) ( x ， b j ) + U 0 ( i ) ( x ) . 该方法也适用于非线性问题，考虑如下形式的一维非线性反应扩散方程 ∂ t U − D ∂ x 2 U + G ( U ) = f ( x ， t ) ， ( x ， t ) ∈ Ω = I x × J t ， (9) 初始值为 U ( x ， − 1 ) = U 0 ( x ) ， x ∈ I x 。其中 G ( U ) 是关于 U 的非线性项，并考虑周期边界条件。类似求解线性问题的过程，首先引入中间变量 P = D U x 改写方程为 { ∂ t U − D ( P x ) + G ( U ) = f ， P = D U x . (10) 式(10)的空间LDG谱元法时间Legendre Dual-Petrov-Galerkin谱元法的全离散格式为：寻找 u ， p ∈ V N ⊗ S M 使得对任意的 v ， z ∈ V N ⊗ S M * ， 有 { ( ∂ t u ， v ) I i × J j + D [ − ∫ J j ( p ^ ⋅ v − ) i ， t d t + ∫ J j ( p ^ ⋅ v + ) i − 1 ， t d t + ( p ， w x ) I i × J j ] + ( ∏ N i ， M j C G ， v ) I i × J j = ( f ， v ) I i × J j ， ( p ， z ) I i × J j + D [ − ∫ J j ( u ^ ⋅ z − ) i ， t d t + ∫ J j ( u ^ ⋅ z + ) i − 1 ， t d t + ( u ， z x ) I i × J j ] = 0 ， (11) 其中“ ^ ”是所选取交替形式的数值流通量。对于非线性项，采用CGL插值进行处理。 以下简明的描述了求解非线性问题的算法。在求解非线性问题的过程中，对于非线性项的处理至关重要。结合迭代法求解，使用上一次迭代所获得的值代入非线性项 G ，在下一次迭代中使用。类似线性多区域的计算方式，可以将其重写为以下格式。当求解第 k + 1 次迭代时形如 A [ k + 1 ] u [ k + 1 ] = f [ k + 1 ] − g ( u [ k ] ) ， 其中 g = [ ( N 2 T ⊗ N 1 ) v e c ( G ( u [ k ] ) 1 ， j ) ， O ， ( N 2 T ⊗ N 1 ) v e c ( G ( u [ k ] ) 2 ， j ) ， O ] T ， 将已得的 u [ k ] 代入非线性项。然后可以通过Chebyshev-Gauss-Lobatto插值得到系数矩阵。使用 u [ 0 ] 为初始迭代值，我们可以从 A [ 1 ] u [ 1 ] = f [ 1 ] − g ( u [ 0 ] ) 中得到第一个迭代值 u [ 1 ] ，依次进行迭代计算。将插值结果 u ( i ， j − 1 ) ( x ， b j − 1 ) 作为时间方向第 j 小区域迭代的初始值。 根据函数的性质，设置迭代的终止条件 ε 和最大迭代次数。当 ‖ u [ k + 1 ] − u [ k ] ‖ L 2 ≤ ε 或者小区域迭代次数flag大于所设置的最大值时，本次时间小区域内的迭代计算结束。