【数值分析】三次样条插值

三次样条插值

2023年11月5日
#analysis


文章目录

  • 三次样条插值
    • 1. 样条函数
        • 1.1 截断多项式
    • 2. 三次样条插值
        • 2.1 B样条为基底的三次样条插值函数
            • 2.1.1 第一种边界条件
            • 2.1.2 第二种边界条件
            • 2.1.3 第三种边界条件
        • 2.2 三弯矩法求三次样条插值函数
            • 2.2.1 第一种边界条件
            • 2.2.2 第二种边界条件
            • 2.2.3 第三种边界条件
    • 下链


1. 样条函数

样条函数即满足一定光滑性的分段多项式。
对区间 ( − ∞ , + ∞ ) {(-\infty,+\infty)} (,+) 的一个分割:
Δ : − ∞ < x 1 < x 2 < ⋯ < x n < + ∞ \Delta : -\infty<x_1<x_2< \cdots < x_n< +\infty Δ:<x1<x2<<xn<+
分段函数 s ( x ) {s(x)} s(x) 满足条件:

  1. 在每个区间 ( − ∞ , x 1 ] , [ x j , x j + 1 ] ( j = 1 , ⋯ , n 1 ) {(-\infty,x_1],[x_j,x_{j+1}](j=1, \cdots ,n1)} (,x1],[xj,xj+1](j=1,,n1) [ x n , + ∞ ) {[x_n,+\infty)} [xn,+) 上, s ( x ) {s(x)} s(x) 是一个次数不超过 m {m} m 的实系数代数多项式。
  2. 光滑性要求: s ( x ) {s(x)} s(x) 在整个区间 ( − ∞ , + ∞ ) {(-\infty,+\infty)} (,+) 上具有直至 m − 1 {m-1} m1 阶的连续微商(导数)

则称 y = s ( x ) {y=s(x)} y=s(x) 为对应于分割 Δ { \Delta } Δ m {m} m 次样条函数, x 1 , x 2 , ⋯ , x n {x_1,x_2, \cdots ,x_n } x1,x2,,xn 为样条节点。
x 1 , x 2 , ⋯ , x n {x_1,x_2, \cdots ,x_n } x1,x2,,xn 为样条节点的 m {m} m 次样条函数的全体记为:
s m ( x 1 , x 2 , ⋯ , x n ) s_m(x_1,x_2, \cdots ,x_n) sm(x1,x2,,xn)
s ( x ) = { p 0 ( x ) , x ≤ x 1 p 1 ( x ) , x 1 ≤ x ≤ x 2 ⋮ p j ( x ) , x j ≤ x ≤ x j + 1 ⋮ p n ( x ) , x n ≤ x , p j ( x ) ∈ P m ( j = 0 , 1 , ⋯ , n ) s(x)= \begin{cases} p_0(x)&,x\le x_1\\ p_1(x)&,x_1\le x\le x_2\\ &\vdots \\ p_j(x)&,x_j\le x\le x_{j+1}\\ & \vdots \\ p_n(x)&,x_n\le x \end{cases} \,\,\,\,\,\,\,\,\,,\,\, p_j(x)\in P_m(j=0,1,\cdots,n ) s(x)= p0(x)p1(x)pj(x)pn(x),xx1,x1xx2,xjxxj+1,xnx,pj(x)Pm(j=0,1,,n)
对样条函数而言,若令相邻两段函数的差:
q j ( x ) = p j ( x ) − p j − 1 ( x ) ∈ P m q_j(x)=p_j(x)-p_{j-1}(x)\in P_m qj(x)=pj(x)pj1(x)Pm
⇒ q j ( i ) ( x ) = p j ( i ) ( x ) − p j − 1 ( i ) ( x ) = 0 , i = 0 , 1 , ⋯ , m − 1 \Rightarrow q_j^{(i)}(x)=p_j^{(i)}(x)-p_{j-1}^{(i)}(x)=0 \,\,,\,\, i=0,1,\cdots,m-1 qj(i)(x)=pj(i)(x)pj1(i)(x)=0,i=0,1,,m1
⇒ q j ( x ) = c j ( x − x j ) m , 也叫做光滑因子 \Rightarrow q_j(x)=c_j(x-x_j)^m \,\,,\,\, \text{也叫做光滑因子} qj(x)=cj(xxj)m,也叫做光滑因子
x j {x_j} xj q j ( x ) {q_j(x)} qj(x) m {m} m 重根。所以如果函数是样条函数,则相邻两段函数满足:
p j ( x ) = p j − 1 ( x ) + c j ( x − x j ) m , j = 0 , 1 , ⋯ , n p_j(x)=p_{j-1}(x)+c_j(x-x_j)^m \,\,,\,\, j=0,1,\cdots,n pj(x)=pj1(x)+cj(xxj)m,j=0,1,,n
所以s(x)是m次样条的充要条件
p 0 ( x ) = a 0 + a 1 x + ⋯ + a m x m p n ( x ) = p 0 ( x ) + ∑ j = 1 n c j ( x − x j ) m \begin{align*} p_0(x)=&a_0+a_1x+ \cdots +a_mx^m \\ \\ p_n(x)=&p_0(x)+ \sum_{j=1}^{ n}c_j(x-x_j)^m \end{align*} p0(x)=pn(x)=a0+a1x++amxmp0(x)+j=1ncj(xxj)m

1.1 截断多项式

为了方便表示分段信息,引进截断多项式:
( x − a ) + m = { ( x − a ) m , x ≥ a 0 , x < a (x-a)_+^m= \begin{cases} (x-a)^m &,x\ge a\\ \\ 0&,x<a \end{cases} (xa)+m= (xa)m0,xa,x<a
显然 ( x − a ) + m {(x-a)_+^m} (xa)+m ( − ∞ , + ∞ ) {(-\infty,+\infty)} (,+) m − 1 {m-1} m1 次连续可微函数的集合( C m − 1 ( − ∞ , + ∞ ) { \mathbb C^{m-1}(-\infty,+\infty)} Cm1(,+) 类的分段 m {m} m 次多项式)。
使用阶段多项式表示样条函数有:任意 s ( x ) ∈ S m ( x 1 , x 2 , ⋯ , x n ) {s(x)\in S_m(x_1,x_2, \cdots ,x_n)} s(x)Sm(x1,x2,,xn) c j ∈ R {{c_j\in \mathbb R} } cjR 均可唯一地表示为:
s ( x ) = p m ( x ) + ∑ j = 1 n c j ( x − x j ) + m , − ∞ < x < + ∞ s(x)= p_m(x)+ \sum_{j=1}^{ n} c_j(x-x_j)_+^m \,\,,\,\, -\infty<x<+\infty s(x)=pm(x)+j=1ncj(xxj)+m,<x<+
样条函数的基底:
S m = span { 1 , x , ⋯ , x m , ( x − x 1 ) + m , ( x − x 2 ) + m , ⋯ , ( x − x n ) + m } S_m= \text{span} \lbrace 1,x,\cdots ,x^m,(x-x_1)_+^m,(x-x_2)_+^m,\cdots ,(x-x_n)_+^m \rbrace Sm=span{1,x,,xm,(xx1)+m,(xx2)+m,,(xxn)+m}
dim ( S m ) = m + n + 1 \text{dim} (S_m)=m+n+1 dim(Sm)=m+n+1

[!example]-
验证分片多项式是三次样条函数
s ( x ) = { 1 − 2 x , x < − 3 28 + 25 x + 9 x 2 + x 3 , − 3 ≤ x < − 1 26 + 19 x + 3 x 2 − x 3 , − 1 ≤ x < 0 26 + 19 x + 3 x 2 , 0 ≤ x s(x)= \begin{cases} 1-2x &,x<-3\\ 28+25x+9x^2+x^3&,-3\le x<-1 \\ 26+19x+3x^2-x^3&, -1\le x<0\\ 26+19x+3x^2&,0\le x \end{cases} s(x)= 12x28+25x+9x2+x326+19x+3x2x326+19x+3x2,x<3,3x<1,1x<0,0x
解:利用光滑因子验证。
( 28 x + 25 x + 9 x 2 + x 3 ) − ( 1 − 2 x ) = ( x + 3 ) 3 (28x+25x+9x^2+x^3)-(1-2x)=(x+3)^3 (28x+25x+9x2+x3)(12x)=(x+3)3
( 26 + 19 x + 3 x 2 − x 3 ) − ( 28 + 25 x + 9 x 2 + x 3 ) = − 2 ( x + 1 ) 3 (26+19x+3x^2-x^3)-(28+25x+9x^2+x^3)=-2(x+1)^3 (26+19x+3x2x3)(28+25x+9x2+x3)=2(x+1)3
( 26 + 19 x + 3 x 2 ) − ( 26 + 19 x + 3 x 2 − x 3 ) = x 3 (26+19x+3x^2)-(26+19x+3x^2-x^3)=x^3 (26+19x+3x2)(26+19x+3x2x3)=x3
该函数为三次样条函数。
光滑因子的零点是已知的,即为边界,光滑因子的常数项只需看等式左边最高次多项式的系数就能得到。之后把右边的多项式展开,看是不是和左边的相等就行。


2. 三次样条插值

设给定节点 a = x 0 < x 1 < ⋯ < x n = b {a=x_0<x_1<\cdots <x_n=b} a=x0<x1<<xn=b ,及节点上的函数值
f ( x i ) = y i , i = 0 , 1 , ⋯ , n f(x_i)=y_i \,\,,\,\, i=0,1,\cdots,n f(xi)=yi,i=0,1,,n
节点是中间的点!头尾点不是!三次样条问题就是构造 s ( x ) ∈ S 3 ( x 1 , x 2 , ⋯ , x n − 1 ) {s(x)\in S_3(x_1,x_2,\cdots ,x_{n-1})} s(x)S3(x1,x2,,xn1) 满足插值条件
s ( x i ) = y i , i = 0 , 1 , ⋯ , n s(x_i)=y_i \,\,,\,\, i=0,1,\cdots,n s(xi)=yi,i=0,1,,n
且有一定光滑性。
边界条件分类

  1. s ′ ′ ( x 0 ) = y 0 ′ ′ , s ′ ′ ( x n ) = y n ′ ′ {s''(x_0)=y_0'' \,\,,\,\, s''(x_n)=y_n''} s′′(x0)=y0′′,s′′(xn)=yn′′ ,当 y 0 ′ ′ = y n ′ ′ = 0 {y_0''=y_n''=0} y0′′=yn′′=0 ,为自然样条/自然边界
  2. s ′ ( x 0 ) = y 0 ′ , s ′ ( x n ) = y n ′ {s'(x_0)=y_0' \,\,,\,\, s'(x_n)=y_n'} s(x0)=y0,s(xn)=yn
  3. s ′ ( x 0 + ) = s ′ ( x n − ) , s ′ ′ ( x 0 + ) = s ′ ′ ( x n − ) {s'(x_0^+)=s'(x_n^-) \,\,,\,\, s''(x_0^+)=s''(x_n^-)} s(x0+)=s(xn),s′′(x0+)=s′′(xn) 起始点和终止点导数相等,适用于周期函数
2.1 B样条为基底的三次样条插值函数

[ a , b ] {[a,b]} [a,b] 进行 n {n} n 等分 时候的情况
s ( x ) = ∑ j = 0 n + 2 c j Ω 3 ( x − x j − 1 h ) , a ≤ x ≤ b , h = b − a n s(x)= \sum_{j=0}^{ n+2}c_j \Omega_3(\frac{x-x_{j-1}}{h}) \,\,,\,\, a\le x\le b \,\,,\,\, h= \frac{b-a}{n} s(x)=j=0n+2cjΩ3(hxxj1),axb,h=nba
其中B样条函数
$$
\Omega_3 (y)= \begin{cases}
0 &, |y|\ge2 \\
\frac{1}{2}|y|3-y2+ \frac{2}{3}&,|y|\le1 \ \

  • \frac{1}{6} |y|3+y2-2|y|+ \frac{4}{3} &, 1<|y|<2
    \end{cases}
    $$
    关键在于求 c j {c_j} cj
2.1.1 第一种边界条件

对第一种边界条件,有三对角矩阵方程组:
[ 4 1 0 ⋯ 0 1 4 1 ⋯ 0 ⋮ ⋱ ⋱ ⋱ ⋮ 0 ⋯ 1 4 1 0 ⋯ 0 1 4 ] [ c 2 c 3 ⋮ c n − 1 c n ] = [ 6 y 1 − y 0 + h 2 6 y 0 ′ ′ 6 y 2 6 y 3 ⋮ 6 y n − 1 6 y n − 1 − y n + h 2 6 y n ′ ′ ] \begin{bmatrix} 4 & 1 & 0 & \cdots & 0 \\ 1 & 4 & 1 & \cdots & 0 \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ 0 & \cdots & 1 & 4 & 1 \\ 0 & \cdots & 0 & 1 & 4 \end{bmatrix}\begin{bmatrix} c_2 \\c_3\\ \vdots \\c_{n-1}\\c_n \end{bmatrix}= \begin{bmatrix} 6y_1-y_0+ \frac{h^2}{6}y_0''\\ 6y_2\\ 6y_3 \\ \vdots \\6y_{n-1}\\6y_{n-1}-y_n+ \frac{h^2}{6}y_n'' \end{bmatrix} 4100140110410014 c2c3cn1cn = 6y1y0+6h2y0′′6y26y36yn16yn1yn+6h2yn′′
{ c 0 = 2 c 1 − c 2 + h 2 y 0 ′ ′ c 1 = y 0 − h 2 6 y 0 ′ ′ c n + 1 = y n − h 2 6 y n ′ ′ c n + 2 = 6 c n − 1 − c n + h 2 y n ′ ′ \begin{cases} c_0=2c_1-c_2+h^2y_0'' \\ \\ c_1=y_0- \frac{h^2}{6}y_0'' \\ \\ c_{n+1}=y_n- \frac{h^2}{6}y_n''\\ \\ c_{n+2}=6c_{n-1}-c_n+ h^2y_n'' \end{cases} c0=2c1c2+h2y0′′c1=y06h2y0′′cn+1=yn6h2yn′′cn+2=6cn1cn+h2yn′′
求出所有式子后带入B样条为基底的样条函数就得到了样条插值函数。

2.1.2 第二种边界条件

[ 4 2 0 ⋯ 0 1 4 1 ⋯ 0 ⋮ ⋱ ⋱ ⋱ ⋮ 0 ⋯ 1 4 1 0 ⋯ 0 2 4 ] [ c 1 c 2 ⋮ c n c n + 1 ] = [ 6 y 0 + 2 h y 0 ′ 6 y 1 6 y 2 ⋮ 6 y n − 1 6 y n − 2 h y n ] \begin{bmatrix} 4 & 2 & 0 & \cdots & 0 \\ 1 & 4 & 1 & \cdots & 0 \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ 0 & \cdots & 1 & 4 & 1 \\ 0 & \cdots & 0 & 2 & 4 \end{bmatrix}\begin{bmatrix} c_1 \\ c_2\\ \vdots \\c_{n}\\c_{n+1} \end{bmatrix}= \begin{bmatrix} 6y_0+ 2hy_0'\\ 6y_1\\ 6y_2 \\ \vdots \\6y_{n-1}\\6y_{n}-2hy_n \end{bmatrix} 4100240110420014 c1c2cncn+1 = 6y0+2hy06y16y26yn16yn2hyn
{ c 0 = c 2 − 2 h y 0 ′ c n + 2 = c n + 2 h y n ′ \begin{cases} c_0=c_2-2hy_0' \\ \\ c_{n+2}=c_n+2hy_n' \end{cases} c0=c22hy0cn+2=cn+2hyn

2.1.3 第三种边界条件

[ 4 1 0 ⋯ 1 1 4 1 ⋯ 0 ⋮ ⋱ ⋱ ⋱ ⋮ 0 ⋯ 1 4 1 1 ⋯ 0 1 4 ] [ c 2 c 3 ⋮ c n c n + 1 ] = [ 6 y 1 6 y 2 6 y 3 ⋮ 6 y n − 1 6 y n ] \begin{bmatrix} 4 & 1 & 0 & \cdots & 1 \\ 1 & 4 & 1 & \cdots & 0 \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ 0 & \cdots & 1 & 4 & 1 \\ 1 & \cdots & 0 & 1 & 4 \end{bmatrix}\begin{bmatrix} c_2 \\c_3\\ \vdots \\c_{n}\\c_{n+1} \end{bmatrix}= \begin{bmatrix} 6y_1\\ 6y_2\\ 6y_3 \\ \vdots \\6y_{n-1}\\6y_{n} \end{bmatrix} 4101140110411014 c2c3cncn+1 = 6y16y26y36yn16yn
{ c n + 2 = c 2 c 1 = c n + 1 c 0 = c n \begin{cases} c_{n+2}=c_2 \\ \\ c_1=c_{n+1} \\ \\ c_0=c_n \end{cases} cn+2=c2c1=cn+1c0=cn

[!example]-
x ∣ ∣ x 0 = 1 ∣ x 1 = 2 ∣ x 2 = 3 ∣ = = = = = = = = f ( x ) ∣ ∣ 2 ∣ 4 ∣ 8 ∣ − − − − − − − − f ′ ( x ) ∣ ∣ 1.3863 ∣ ∣ 5.5452 ∣ \begin{array}{cccccc} x&||& x_0=1 &|& x_1=2 &|& x_2=3 &| \\=&=&=&=&=&=&=&= \\ f(x) &||& 2 &|& 4 &|& 8 &| \\ -&-&-&-&-&-&-&- \\ f'(x) &||& 1.3863 &|& &|& 5.5452 &| \end{array} x=f(x)f(x)∣∣=∣∣∣∣x0=1=21.3863=x1=2=4=x2=3=85.5452=
求三次样条插值函数。使其满足 s ( x i ) = f ( x i ) , s ′ ( x 0 ) = f ′ ( x 0 ) , s ′ ( x 2 ) = f ′ ( x 2 ) {s(x_i)=f(x_i) \,\,,\,\, s'(x_0)=f'(x_0) \,\,,\,\, s'(x_2)=f'(x_2)} s(xi)=f(xi),s(x0)=f(x0),s(x2)=f(x2)
解:边界条件二,区间上被分成两段, n = 2 {n=2} n=2
[ 4 2 0 1 4 1 0 2 4 ] [ c 1 c 2 c 3 ] = [ 6 y 0 + 2 h y 0 ′ 6 y 1 6 y 2 − 2 h y 2 ′ ] = [ 14.7726 24 36.9096 ] \begin{bmatrix} 4 & 2 & 0 \\ 1 & 4 & 1 \\ 0 & 2 & 4 \end{bmatrix}\begin{bmatrix} c_1\\c_2\\c_3 \end{bmatrix}= \begin{bmatrix} 6y_0+2hy_0'\\6y_1\\6y_2-2hy_2' \end{bmatrix}= \begin{bmatrix} 14.7726\\24\\36.9096 \end{bmatrix} 410242014 c1c2c3 = 6y0+2hy06y16y22hy2 = 14.77262436.9096
[ c 1 c 2 c 3 ] = [ 1.84657 3.69317 7.38081 ] \begin{bmatrix} c_1\\c_2\\c_3 \end{bmatrix}= \begin{bmatrix} 1.84657\\3.69317\\7.38081 \end{bmatrix} c1c2c3 = 1.846573.693177.38081

c 0 = c 2 − 2 h y 0 ′ = 0.92057 c_0=c_2-2hy_0'=0.92057 c0=c22hy0=0.92057
c 4 = c 2 + 2 h y 2 ′ = 14.7836 c_4=c_2+2hy_2'=14.7836 c4=c2+2hy2=14.7836
∴ s ( x ) = 0.92057 Ω 3 ( x − 0 ) + 1.84657 Ω 3 ( x − 1 ) + 3.69317 Ω 3 ( x − 2 ) + 7.38081 Ω 3 ( x − 3 ) + 14.7836 Ω 3 ( x − 4 ) 1 ≤ x ≤ 3 \begin{align*} \therefore s(x)=&0.92057\Omega_3(x-0)+1.84657\Omega_3(x-1)\\ &+3.69317\Omega_3(x-2)+7.38081\Omega_3(x-3)+14.7836\Omega_3(x-4)\\ &1\le x\le 3 \end{align*} s(x)=0.92057Ω3(x0)+1.84657Ω3(x1)+3.69317Ω3(x2)+7.38081Ω3(x3)+14.7836Ω3(x4)1x3

2.2 三弯矩法求三次样条插值函数

用于 区间长度 h {h} h 不一致的情况
s ( x ) = M i − 1 6 h i ( x i − x ) 3 + M i 6 h i ( x − x i − 1 ) 3 + ( y i − 1 h i − M i − 1 6 h i ) ( x i − x ) + ( y i h i − M i 6 h i ) ( x − x i ) x i − 1 ≤ x ≤ x i , i = 1 , 2 , ⋯ , n \begin{align*} s(x)=& \frac{M_{i-1}}{6h_i}(x_i-x)^3+ \frac{M_i}{6h_i}(x-x_{i-1})^3\\&+(\frac{y_{i-1}}{h_i}- \frac{M_{i-1}}{6}h_i)(x_i-x)+(\frac{y_i}{h_i}- \frac{M_i}{6}h_i)(x-x_i)\\ &x_{i-1}\le x\le x_i \,\,,\,\, i=1,2, \cdots ,n \end{align*} s(x)=6hiMi1(xix)3+6hiMi(xxi1)3+(hiyi16Mi1hi)(xix)+(hiyi6Mihi)(xxi)xi1xxi,i=1,2,,n
关键在求M。三弯矩方程
r i M i − 1 + 2 M i + α i M i + 1 = β i , i = 1 , 2 , ⋯ , n − 1 r_iM_{i-1}+2M_i+ \alpha_iM_{i+1}= \beta_i \,\,,\,\, i=1,2,\cdots ,n-1 riMi1+2Mi+αiMi+1=βi,i=1,2,,n1
α i = h i + 1 h i + h i + 1 , r i = 1 − α i \alpha_i= \frac{h_{i+1}}{h_i+h_{i+1}} \,\,,\,\, r_i=1- \alpha_i αi=hi+hi+1hi+1,ri=1αi
β i = 6 h i + h i + 1 ( y i + 1 − y i h i + 1 − y i − y i − 1 h i ) \beta_i= \frac{6}{h_i+h_{i+1}} \bigg( \frac{y_{i+1}-y_i}{h_{i+1}}- \frac{y_i-y_{i-1}}{h_i} \bigg) βi=hi+hi+16(hi+1yi+1yihiyiyi1)
可以求得
α 1 ⋯ α n − 1 , r 1 ⋯ r n − 1 , β 1 ⋯ β n − 1 \alpha_1 \cdots \alpha_{n-1} \,\,,\,\, r_1 \cdots r_{n-1} \,\,,\,\, \beta_1 \cdots \beta_{n-1} α1αn1,r1rn1,β1βn1

2.2.1 第一种边界条件

α 0 = 0 , β 0 = 2 y 0 ′ ′ , r n = 0 , β n = 2 y n ′ ′ \alpha_0=0 \,\,,\,\, \beta_0=2y_0'' \,\,,\,\, r_n=0 \,\,,\,\, \beta_n=2y_n'' α0=0,β0=2y0′′,rn=0,βn=2yn′′

[ 2 α 0 r 1 2 α 1 ⋱ r n − 1 2 α n − 1 r n 2 ] [ M 0 M 1 ⋮ M n − 1 M n ] = [ β 0 β 1 ⋮ β n − 1 β n ] \begin{bmatrix} 2 & \alpha_0 & & & \\ r_1 & 2 & \alpha_1 & & \\ & & \ddots & & \\ & & r_{n-1} & 2 & \alpha_{n-1} \\ & & & r_n & 2 \end{bmatrix}\begin{bmatrix} M_0\\M_1\\ \vdots \\M_{n-1}\\ M_n \end{bmatrix}= \begin{bmatrix} \beta_0\\ \beta_1\\ \vdots \\ \beta_{n-1}\\ \beta_n \end{bmatrix} 2r1α02α1rn12rnαn12 M0M1Mn1Mn = β0β1βn1βn
可得 M 0 , M 1 , ⋯ , M n {M_0,M_1, \cdots , M_n} M0,M1,,Mn

2.2.2 第二种边界条件

α 0 = 1 , r n = 1 \alpha_0=1 \,\,,\,\, r_n=1 α0=1,rn=1
β 0 = 6 h 1 ( y 1 − y 0 h 1 − y 0 ′ ) , β n = 6 h n ( y n ′ − y n − y n − 1 h n ) \beta_0= \frac{6}{h_1}(\frac{y_1-y_0}{h_1}-y_0') \,\,,\,\, \beta_n= \frac{6}{h_n} (y_n'-\frac{y_n-y_{n-1}}{h_n}) β0=h16(h1y1y0y0),βn=hn6(ynhnynyn1)
代入的矩阵式子和第一种边界条件的式子相同。求得 M 0 {M_0} M0 M n {M_n} Mn

2.2.3 第三种边界条件

M 0 = M n , α n = h 1 h 1 + h n , r n = 1 − α n M_0=M_n \,\,,\,\, \alpha_n= \frac{h_1}{h_1+h_n} \,\,,\,\, r_n=1- \alpha_n M0=Mn,αn=h1+hnh1,rn=1αn
β n = 6 h 1 + h n ( y 1 − y 0 h 1 − y n − y n − 1 h n ) \beta_n = \frac{6}{h_1+h_n}(\frac{y_1-y_0}{h_1}- \frac{y_n-y_{n-1}}{h_n}) βn=h1+hn6(h1y1y0hnynyn1)
[ 2 α 1 r 1 r 2 2 α 2 ⋱ r n − 1 2 α n − 1 α n r n 2 ] [ M 1 M 1 ⋮ M n − 1 M n ] = [ β 1 β 1 ⋮ β n − 1 β n ] \begin{bmatrix} 2 & \alpha_1 & & & r_1 \\ r_2 & 2 & \alpha_2 & & \\ & & \ddots & & \\ & & r_{n-1} & 2 & \alpha_{n-1} \\ \alpha_n & & & r_n & 2 \end{bmatrix}\begin{bmatrix} M_1\\M_1\\ \vdots \\M_{n-1}\\ M_n \end{bmatrix}= \begin{bmatrix} \beta_1\\ \beta_1\\ \vdots \\ \beta_{n-1}\\ \beta_n \end{bmatrix} 2r2αnα12α2rn12rnr1αn12 M1M1Mn1Mn = β1β1βn1βn


下链


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/592061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万界星空科技低代码平台基本模块与优势

低代码平台&#xff08;Low-Code Development Platform&#xff0c;LCDP&#xff09;就是使用低代码的方式进行开发&#xff0c;能快速设置和部署的平台。低代码平台旨在简化应用开发过程&#xff0c;降低开发难度&#xff0c;缩短开发周期&#xff0c;并使非专业程序员&#x…

线性代数笔记3 1.1

学习视频&#xff1a; 2.2 矩阵运算&#xff08;二&#xff09;_哔哩哔哩_bilibili 包括内容&#xff1a; p10矩阵运算&#xff08;二&#xff09; p11特殊矩阵 p12逆矩阵&#xff08;一&#xff09; p13逆矩阵&#xff08;二&#xff09;

JSON与XML的比较:优缺点分析与应用场景选择

JSON&#xff08;JavaScript Object Notation&#xff09;和XML&#xff08;eXtensible Markup Language&#xff09;都是用于存储和传输数据的格式&#xff0c;它们各自具有一些优点和缺点&#xff0c;适用于不同的应用场景。 JSON的优点&#xff1a; 易读性&#xff1a;JSO…

基于Python +Selenium的爬虫详解

今天我们来详细学习一些 selenium 的强大用法 一、selenium简介 由于requests模块是一个不完全模拟浏览器行为的模块&#xff0c;只能爬取到网页的HTML文档信息&#xff0c;无法解析和执行CSS、JavaScript代码&#xff0c;因此需要我们做人为判断&#xff1b; 1、什么是sele…

几个实用网站

论文短语&#xff1a;https://www.phrasebank.manchester.ac.uk/ 翻译&#xff1a;https://www.deepl.com/en/translator 润色&#xff1a;https://quillbot.com/ 榜单&#xff1a;www.paperwithcode.com ****NLP民工的乐园: 几乎最全的中文NLP资源库&#xff1a;****https…

Python将两个或多个列表合并为一个列表,并根据每个输入列表中的元素的位置将其组合在一起

将两个或多个列表合并为一个列表&#xff0c;并根据每个输入列表中的元素的位置将其组合在一起。 这个需求在实际开发过程中应该说非常常见&#xff0c;当然python也给我们内置了相关方法&#xff01; zip(*iterables, strictFalse) 在多个迭代器上并行迭代&#xff0c;从每…

PowerShell——多任务后台作业

PowerShell——多任务后台作业 实验环境&#xff1a;操作系统为Windows8(或之后)或者Windows Server2012&#xff08;或之后&#xff09;运行PowerShell v3或更新版本的计算机 任务: 创建一个后台作业获取计算机上系统事件日志中最近的26条错误记录&#xff0c;之后将记录导出…

算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解

引言&#xff0c;少年们&#xff0c;大家好。在这里祝大家元旦快乐&#xff0c;我是博主那一脸阳光&#xff0c;今天来介绍二分查找 在计算机科学领域&#xff0c;搜索算法是数据处理和问题解决的重要工具之一。其中&#xff0c;**二分查找算法&#xff08;Binary Search&#…

最小费用最大流

package tgb.第三章; import java.util.ArrayDeque; import java.util.Arrays; import java.util.Queue; import java.util.Scanner; public class ok货物调配{ static int maxData 0x7fffffff; static Queue dl new ArrayDeque(); static int head[] new int[5001]; stat…

Git开发工具基本使用

文章目录 前言Git仓库基本概念基本环境安装清除原先配置生成秘钥配置Host添加公钥Github添加Gitee添加测试 本地仓库基本概览查看提交日志(log)版本回退添加文件至忽略列表分支分支冲突 远程仓库推送到远程仓库从远程仓库中抓取和拉取 在Idea中使用Git总结 前言 这里只是对Git…

react--自定义列表字段

支持react表格自由选择展示的字段&#xff0c;支持全选 1、组件代码如下 import type { ModalProps } from "antd"; import type { CheckboxChangeEvent } from "antd/lib/checkbox"; import type { CheckboxValueType } from "antd/lib/checkbox/…

Perforce:2024年改变数字化格局的五大技术趋势

自去年ChatGPT发布以来&#xff0c;生成式人工智能占据了头条、会议&#xff0c;甚至占据了我自己工作场合的对话。人工智能技术如此迅速地改变工作流程和公司的关注点&#xff0c;真是令人难以置信。 我叫瑞安&#xff0c;在技术领域工作了近二十年&#xff0c;拥有15年的全栈…

图像分割实战-系列教程3:unet医学细胞分割实战1(医学数据集、图像分割、语义分割、unet网络、代码逐行解读)

&#x1f341;&#x1f341;&#x1f341;图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 unet医学细胞分割实战1 unet医学细胞分割实战2 unet医学细胞分割实战3 unet医学细胞分割实战4 unet…

计算图与动态图机制

一、计算图 计算图是用来描述运算的有向无环图 计算图有两个主要元素&#xff1a;结点&#xff08;Node&#xff09;和边&#xff08;Edge&#xff09; 结点表示数据&#xff0c;如向量&#xff0c;矩阵&#xff0c;张量边表示运算&#xff0c;如加减乘除卷积等 用计算图表…

redis安装与配置(Ubuntu)

目录 1. 切换到 root 用户 2. 搜索安装包 3. 安装 redis 4. 查看 redis 是否正常存在 5. 修改ip 6. 重新启动服务器 7. 连接服务器 1. 切换到 root 用户 通过 su 命令切换到 root 用户。 2. 搜索安装包 apt search redis 这里安装的是下面的版本&#xff1a; 3. 安装 …

UE5.1_AI随机漫游

UE5.1_AI随机漫游 目录 UE5.1_AI随机漫游 AI随机漫游方法 方法1:AI角色蓝图直接写方法

vue 开发npm插件

第一步 注册npm账号&#xff0c;附上官网链接npm官网 第二步 初始化项目&#xff0c;执行如下指令&#xff1a; npm init根据命令行提示填写对应信息&#xff0c;不需要则直接回车&#xff0c;最后会根据你填写的信息生成对应的package.json文件。 第三步 在package.json同级…

基于美国应对网络生物安全风险的报告的思考

文章目录 前言一、美国为什么要加强网络生物安全的应对手段?二、 网络生物安全威胁因素1、合成生物学可及性的增强2、全球高生物安全等级设施的扩增3、生物目标的广泛性4、攻击途径的多样化5、自动化的快速发展三、美国网络生物安全的主要漏洞四、美国出现的典型安全漏洞1、恶…

LaTeX写论文,公式后段落取消缩进方法:\noindent

在论文的段落中&#xff0c;需要插入一个公式&#xff0c;按道理公式后应该紧接着是段落的文本内容&#xff0c;但如果直接写的话&#xff0c;编译得到的PDF中呈现出来的却是开头缩进的样子 如果需要取消公式后面的段落缩进&#xff0c;可以使用命令 \noindent 该命令的作用…