system: [SYSTEM]

user: 2. 算法格式 2.1. Legendre-Gauss-Lobatto节点 n次Legendre多项式的定义如下： L n ( t ) = ( − 1 ) n 2 n n ! d n ( ( 1 − t 2 ) n ) d t n ， n = 0 ， 1 ， ⋯ ， t ∈ [ − 1 ， 1 ] . 选取 t k ( 0 ≤ k ≤ n ) 为多项式 ( 1 − t 2 ) ∂ t L n ( t ) 的 n + 1 个互异的零点，也即为Legendre-Gauss-Lobatto节点。 以Legendre-Gauss-Lobatto节点为配置点来构造含参数三次样条函数，然后用含参数的三次样条函数来逼近求解热传导方程初边值问题。 2.2. 含参数的三次样条函数 使用变量变换 x = x ( t ) ， t ∈ [ − 1 ， 1 ] ，将求解区间 [ a ， b ] 映射到区间 [ − 1 ， 1 ] 。并将区间 [ a ， b ] 划分成n个小的子区间 [ x i ， x i + 1 ] ， x i = x ( t i ) ， h i + 1 = x i + 1 − x i ， a = x 0 < ⋯ < x i < ⋯ < x n = b ， i = 0 ， 1 ， ⋯ ， n − 1 。 一般来说，对函数 u ( x ) 在插值节点 x k ( 0 ≤ k ≤ n ) 处进行插值形成的含参三次样条插值函数的好坏程度，即 S ( x ， ξ ) ( S ( x ， ξ ) ∈ C 2 [ a ， b ] ) 逼近函数 u ( x ) 的好坏程度，取决于参数 ξ ( ξ > 0 ) 的适当选取以及当参数 ξ → 0 时三次样条函数在区间 [ a ， b ] 上的改变程度。 该样条函数 S ( x ， ξ ) = S ( x ) 在区间 [ x i ， x i + 1 ] 上满足以下的微分方程 [ 9 ] ： S ″ ( x ) + ξ S ( x ) = ( S ″ ( x i ) + ξ S ( x i ) ) x i + 1 − x h i + 1 + ( S ″ ( x i + 1 ) + ξ S ( x i + 1 ) ) x − x i h i + 1 ， i = 0 ， 1 ， ⋯ ， n − 1. (1) 公式(1)是一类二阶常系数非齐次常微分方程。它的通解与相对应的齐次方程的通解以及它自己本身的一个特解有关。 显然，与公式(1)相对应的齐次方程的通解如下： S ( x ) = C 1 cos ξ x + C 2 sin ξ x . 同时，有公式(1)的一个特解如下： S * ( x ) = ( S ″ ( x i ) + ξ S ( x i ) ) x i + 1 − x ξ h i + 1 + ( S ″ ( x i + 1 ) + ξ S ( x i + 1 ) ) x − x i ξ h i + 1 . 令 ω i + 1 = h i + 1 ξ 1 / 2 ，再由插值条件： S ( x i ) = u i ， S ( x i + 1 ) = u i + 1 ，则可以得到公式(1)的通解，如下： S ( x ) = − h i + 1 2 ω i + 1 2 sin ω i + 1 [ S ″ ( x i + 1 ) sin ( ω i + 1 ( x − x i ) h i + 1 ) + S ″ ( x i ) sin ( ω i + 1 ( x i + 1 − x ) h i + 1 ) ]     + h i + 1 2 ω i + 1 2 [ x − x i h i + 1 ( S ″ ( x i + 1 ) + ω i + 1 2 h i + 1 2 S ( x i + 1 ) ) + x i + 1 − x h i + 1 ( S ″ ( x i ) + ω i + 1 2 h i + 1 2 S ( x i ) ) ] . (2) 对公式(2)两端进行求导并令 x = x i ，则有： S ′ ( x i + 0 ) = − S ″ ( x i + 1 ) − S ″ ( x i ) cos ω i + 1 ξ 1 / 2 sin ω i + 1 + S ″ ( x i + 1 ) − S ″ ( x i ) ξ h i + 1 + S ( x i + 1 ) − S ( x i ) h i + 1 ; 当 x ∈ [ x i − 1 ， x i ] 时，有 h i = x i − x i − 1 ， ω i = h i ξ 1 / 2 。类似上面步骤，可以得到： S ′ ( x i − 0 ) = − S ″ ( x i ) cos ω i − S ″ ( x i − 1 ) ξ 1 / 2 sin ω i + S ″ ( x i ) − S ″ ( x i − 1 ) ξ h i + S ( x i ) − S ( x i − 1 ) h i . 由 S ′ ( x ) 在节点 x i 处的连续性条件，可以得到： α i M i − 1 + ( β i + 1 + β i ) M i + α i + 1 M i + 1 = u i + 1 h i + 1 − ( 1 h i + 1 + 1 h i ) u i + u i − 1 h i ， i = 1 ， ⋯ ， n − 1. (3) 其中： α i = h i ( ω i csc ω i − 1 ) ω i 2 = 1 ξ 1 / 2 sin ω i − 1 ξ h i ， S ( x i ) = u i ; β i = h i ( 1 − ω i cot ω i ) ω i 2 = 1 ξ h i − cot ω i ξ 1 / 2 ， S ″ ( x i ) = M i . 2.3. 热传导方程算法格式 带Dirichlet边界条件热传导方程： { u t = u x x − f ( x ， t ) ， 0 < x < l ， t > 0 ; u | t = 0 = φ ( x ) ， 0 ≤ x ≤ l ; u | x = 0 = μ ( t ) ， u | x = l = v ( t ) ， t > 0. (4) 用三次样条函数 S ( x ) ( x ∈ [ 0 ， l ] ) 来逼近方程(4)的解，由(4)式可得： ∂ u i ( t ) ∂ t = ∂ 2 u i ( t ) ∂ x 2 − f i ( t ) = M i ( t ) − f i ( t ) ， i = 1 ， 2 ， ⋯ ， n − 1. 其中： f i ( t ) = f ( x i ， t ) ; u i ( t ) = u ( x i ， t ) ; M i ( t ) = u x x ( x i ， t ) ， i = 0 ， 1 ， ⋯ ， n 。 考虑 ∂ u i ( t ) ∂ t 前面的系数，有： M i = q i ∂ u i ( t ) ∂ t + f i ( t ) . (5) 记 ∂ u i ( t ) ∂ t 为 u ′ i ( t ) ，并将(5)代入(3)中得到： ( α i q i − 1 u ′ i − 1 + ( β i + β i + 1 ) q i u ′ i + α i + 1 q i + 1 u ′ i + 1 ) + ( α i f i − 1 + ( β i + β i + 1 ) f i + α i + 1 f i + 1 ) = u i − 1 h i − ( 1 h i + 1 h i + 1 ) u i + u i + 1 h i + 1 ， i = 1 ， 2 ， ⋯ ， n − 1. (6) 由(4)中给出的边界条件，处理得： u ′ 0 ( t ) = μ ′ ( t ) ， u ′ n ( t ) = v ′ ( t ) ，则(6)可写成如下形式： ( ( β 1 + β 2 ) q 1 u ′ 1 + α 2 q 2 u ′ 2 ) + ( α 1 f 0 + ( β 1 + β 2 ) f 1 + α 2 f 2 + α 1 q 0 u ′ 0 − u 0 h 1 ) = − ( 1 h 1 + 1 h 2 ) u 1 + u 2 h 2 ， i = 1 ; (7) ( α i q i − 1 u ′ i − 1 + ( β i + β i + 1 ) q i u ′ i + α i + 1 q i + 1 u ′ i + 1 ) + ( α i f i − 1 + ( β i + β i + 1 ) f i + α i + 1 f i + 1 ) = u i − 1 h i − ( 1 h i + 1 h i + 1 ) u i + u i + 1 h i + 1 ， i = 2 ， ⋯ ， n − 2 ; (8) ( α n − 1 q n − 2 u ′ n − 2 + ( β n − 1 + β n ) q n − 1 u ′ n − 1 ) + ( α n − 1 f n − 2 + ( β n − 1 + β n ) f n − 1 + α n f n + α n q n u ′ n − u n h n ) = u n − 2 h n − 1 − ( 1 h n + 1 h n − 1 ) u n − 1 ， i = n − 1. (9) 由(4)的初值条件： u ( x ， 0 ) = ϕ ( x ) ( 0 ≤ x ≤ l ) ，得： u ( x k ， 0 ) = ϕ ( x k ) ， k = 0 ， 1 ， ⋯ ， n 。 为方便处理，记： X ( t ) = ( u 1 ( t ) ， u 2 ( t ) ， ⋯ ， u n − 1 ( t ) ) T ； X 0 = ( ϕ ( x 1 ) ， ϕ ( x 2 ) ， ⋯ ， ϕ ( x n − 1 ) ) T ； A = [ q 1 ( β 1 + β 2 ) q 2 α 2 q 1 α 2 q 2 ( β 2 + β 3 ) q 3 α 3 ⋱ ⋱ ⋱ q n − 3 α n − 2 q n − 2 ( β n − 2 + β n − 1 ) q n − 1 α n − 1 q n − 2 α n − 1 q n − 1 ( β n − 1 + β n ) ] ; B = [ − ( 1 h 1 + 1 h 2 ) 1 h 2 1 h 2 − ( 1 h 2 + 1 h 3 ) 1 h 3 ⋱ ⋱ ⋱ 1 h n − 2 − ( 1 h n − 2 + 1 h n − 1 ) 1 h n − 1 1 h n − 1 − ( 1 h n − 1 + 1 h n ) ] ; F ( t ) = [ α 1 f 0 + ( β 1 + β 2 ) f 1 + α 2 f 2 + α 1 q 0 u ′ 0 − u 0 h 1 α 2 f 1 + ( β 2 + β 3 ) f 2 + α 3 f 3 ⋮ α i f i − 1 + ( β i + β i + 1 ) f i + α i + 1 f i + 1 ⋮ α n − 2 f n − 3 + ( β n − 2 + β n − 1 ) f n − 2 + α n − 1 f n − 1 α n − 1 f n − 2 + ( β n − 1 + β n ) f n − 1 + α n f n + α n q n u ′ n − u n h n ] . 有了以上的符号说明，则(7)~(9)可以写成如下形式： { A d X ( t ) d t = B X ( t ) − F ( t ) ， t > 0 ; X ( 0 ) = X 0 . (10)