system: [SYSTEM]

user: 2. 格式的构造 2.1. 空间离散 非线性色散方程 { u t + ( u n ) x + ( u n ) x x x = 0 ，     a ≤ x ≤ b ，     0 < t ≤ T u ( x ， 0 ) = u 0 ( x ) (1) 通过引入辅助变量可将方程(1)改写成一阶方程组 { u t + ( v + p ) x = 0 p − q x = 0 q − v x = 0 v − u n = 0     a ≤ x ≤ b ， 0 < t ≤ T (2) 首先对求解区域 [ a ， b ] 进行剖分， a = x − 1 / 2 < x 1 / 2 < ⋯ < x N − 1 / 2 = b ， 其中 x j − 1 / 2 ( 0 ≤ j ≤ N ) 为求解区间的剖分节点，并定义控制单元 I j = ( x j − 1 / 2 ， x j + 1 / 2 ) ，且 x j = ( x j − 1 / 2 + x j + 1 / 2 ) / 2 ，     Δ x j = x j + 1 / 2 − x j − 1 / 2 ， f j − 1 / 2 + = lim x → x j − 1 / 2 + f ( x ) ，     f j − 1/2 − = lim x → x j − 1 / 2 − f ( x ) ，     h = max 0 ≤ j ≤ N Δ x j 选取控制单元 I j 1 = ( x j − 1 / 2 ， x j − 1 / 2 + 1 4 Δ x ) ，     I j 2 = ( x j − 1 / 2 + 1 4 Δ x ， x j + 1 / 2 − 1 4 Δ x ) ，     I j 3 = ( x j + 1 / 2 − 1 4 Δ x ， x j + 1 / 2 ) I j 上的试探函数空间 V h 相应基函数为 φ j ( 0 ) ( ξ ) = 2 ξ ( ξ − 1 2 ) ，       φ j ( 1 ) ( ξ ) = − 4 ( ξ − 1 2 ) ( ξ + 1 2 ) ，       φ j ( 2 ) ( ξ ) = 2 ξ ( ξ + 1 2 ) 因此单元形状函数可以表示为 u h ( x ， t ) = ∑ l = 0 2 u j l φ j ( l ) ( ξ ) ，其中 ξ = x − x j h 。 对于LDPG而言，控制单元 I j 1 ， I j 2 ， I j 3 上检验函数是一个分段常数函数 ψ j l = { 1 ， ∀ x ∈ I j l 0 ， otherwise ， l = 1 ， 2 ， 3 将方程组(2)两边同时乘以检验函数 ψ j l ，并在 I j l 上积分， l = 1 ， 2 ， 3 ，可以得到 ∫ I j l u t ψ j l d x + ∫ I j l ( v + p ) x ψ j l d x = 0 (3) ∫ I j l p ψ j l d x + ∫ I j l q x ψ j l d x = 0 (4) ∫ I j l q ψ j l d x + ∫ I j l v x ψ j l d x = 0 (5) 检验函数用相应基函数代替， v ， p ， q ， u 用 v h ， p h ， q h ， u h ∈ V h 代替得到 ∫ I j l ( u h ) t d x + ∫ I j l ( v h + p h ) x d x = 0 (6) ∫ I j l p h d x + ∫ I j l ( q h ) x d x = 0 (7) ∫ I j l p h d x + ∫ I j l ( q h ) x d x = 0 (8) 利用积分公式得 ( d u j 0 d t d u j 1 d t d u j 2 d t ) = A − 1 ( − [ ( v h + p h ) j − 1 / 2 + 1 / 4 Δ x − ( v ˜ h + p ^ h ) j − 1 / 2 ] − [ ( v h + p h ) j + 1 / 2 − 1 / 4 Δ x − ( v h + p h ) j − 1 / 2 + 1 / 4 Δ x ] − [ ( v ˜ h + p ^ h ) j + 1 / 2 − ( v h + p h ) j − 1 / 2 + 1 / 4 Δ x ] ) (9) ( p j 0 p j 1 p j 2 ) = A − 1 ( ( q h ) j − 1 / 2 + 1 / 4 Δ x − ( q ^ h ) j − 1 / 2 ( q h ) j + 1 / 2 − 1 / 4 Δ x − ( q h ) j − 1 / 2 + 1 / 4 Δ x ( q ^ h ) j + 1 / 2 − ( q h ) j + 1 / 2 − 1 / 4 Δ x ) (10) ( q j 0 q j 1 q j 2 ) = A − 1 ( ( v h ) j − 1 / 2 + 1 / 4 Δ x − ( v ^ h ) j − 1 / 2 ( v h ) j + 1 / 2 − 1 / 4 Δ x − ( v h ) j − 1 / 2 + 1 / 4 Δ x ( v ^ h ) j + 1 / 2 − ( v h ) j + 1 / 2 − 1 / 4 Δ x ) (11) 其中 A = ( 1 6 5 48 − 1 48 1 48 11 24 1 48 − 1 48 5 48 − 1 6 ) ， A − 1 = ( 19 3 − 5 3 1 − 1 3 7 3 − 1 3 1 − 5 3 19 3 ) 空间离散完毕，可得常微分方程组 { d u h d t = A − 1 G ( v h ， p h ) p h = A − 1 G ( q h ) q h = A − 1 G ( v h ) 上式中 p ^ ， q ^ ， v ^ 为数值流通量，在这里使用“交替型数值流通量” [ 10 ]。对于K(m， n)方程，若n为奇数，数值流通量做如下选取 p ^ h = p h + ，       q ^ h = q h + ，       v ^ h = v h − 若n为偶数，数值流通量做如下选取 p ^ h = p h + ，         v ^ h = v h + q ^ h = { q h + ，         if   ( u h + ) n − 1 + ( u h − ) n − 1 ≥ 0 q h − ，         otherwise 流通量 v ˜ h 为局部Lax-Friedrichs数值流通量 f ^ ( u − ， u + ) = 1 2 [ f ( u − ) + f ( u + ) − α ( u + − u − ) ] 其中 α = max u ∈ Ω | f ′ ( u ) | ，       Ω = [ min ( u − ， u + ) ， max ( u − ， u + ) ] 2.2. 时间离散 经过空间离散后的常微分方程组，利用三阶TVD Runge-Kutta方法来求解。令 d U h d t = L h ( U h ， t ) 其中 L h ( U h ， t ) = A − 1 G ( V h ， P h ) 则有 { u ( 1 ) = u n + Δ t L ( u n ， t n ) u ( 2 ) = 3 4 u n + 1 4 ( u ( 1 ) + Δ t L ( u ( 1 ) ， t n + Δ t ) ) u n + 1 = 1 3 + 2 3 ( u ( 2 ) + Δ t L ( u ( 2 ) ， t n + Δ t ) )