B样条曲线插值

B样条曲线反算控制点

1 De Boor算法

u ∈ [ u j , u j + 1 ) u\in[u_j,u_{j+1}) u[uj,uj+1) V i , 0 = V i V_{i,0}=V_i Vi,0=Vi,对于 i = j − p , ⋯   , j i=j-p,\cdots,j i=jp,,j

V i , k = u i + p + 1 − k − u u i + p + 1 − k − u i V i − 1 , k − 1 + u − u i u i + p + 1 − k − u i V i , k − 1 , k = 1 , ⋯   , p , i = j − p + k , ⋯   , j V_{i,k}=\dfrac{u_{i+p+1-k}-u}{u_{i+p+1-k}-u_i}V_{i-1,k-1}+\dfrac{u-u_i}{u_{i+p+1-k}-u_i}V_{i,k-1},\quad k=1,\cdots,p,\quad i=j-p+k,\cdots,j Vi,k=ui+p+1kuiui+p+1kuVi1,k1+ui+p+1kuiuuiVi,k1,k=1,,p,i=jp+k,,j

其中 V i V_i Vi为控制点, p p p为B样条的幂次, P ( u ) P(u) P(u)为B样条曲线,则
P ( u ) = V j , p . P(u)=V_{j,p}. P(u)=Vj,p.

2 B样条曲线上点的计算公式

u ∈ [ u j , u j + 1 ) u\in[u_j,u_{j+1}) u[uj,uj+1),则

p = 3 p=3 p=3时,
P ( u ) = ( u j + 1 − u ) 3 ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) ( u j + 1 − u j − 2 ) V j − 3 + [ ( u j + 1 − u ) 2 ( u − u j − 2 ) ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) ( u j + 1 − u j − 2 ) + ( u j + 1 − u ) ( u − u j − 1 ) ( u j + 2 − u ) ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) ( u j + 2 − u j − 1 ) + ( u − u j ) ( u j + 2 − u ) 2 ( u j + 1 − u j ) ( u j + 2 − u j ) ( u j + 2 − u j − 1 ) ] V j − 2 + [ ( u j + 1 − u ) ( u − u j − 1 ) 2 ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) ( u j + 2 − u j − 1 ) + ( u − u j ) ( u j + 2 − u ) ( u − u j − 1 ) ( u j + 1 − u j ) ( u j + 2 − u j ) ( u j + 2 − u j − 1 ) + ( u − u j ) 2 ( u j + 3 − u ) ( u j + 1 − u j ) ( u j + 2 − u j ) ( u j + 3 − u j ) ] V j − 1 + ( u − u j ) 3 ( u j + 1 − u j ) ( u j + 2 − u j ) ( u j + 3 − u j ) V j . \begin{aligned} P(u)=&\dfrac{(u_{j+1}-u)^3}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})(u_{j+1}-u_{j-2})}V_{j-3} +\left[\dfrac{(u_{j+1}-u)^2(u-u_{j-2})}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})(u_{j+1}-u_{j-2})}\right. \\ & \left. +\dfrac{(u_{j+1}-u)(u-u_{j-1})(u_{j+2}-u)}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})(u_{j+2}-u_{j-1})} +\dfrac{(u-u_j)(u_{j+2}-u)^2}{(u_{j+1}-u_j)(u_{j+2}-u_j)(u_{j+2}-u_{j-1})}\right]V_{j-2} \\ &+\left[\dfrac{(u_{j+1}-u)(u-u_{j-1})^2}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})(u_{j+2}-u_{j-1})} +\dfrac{(u-u_j)(u_{j+2}-u)(u-u_{j-1})}{(u_{j+1}-u_j)(u_{j+2}-u_j)(u_{j+2}-u_{j-1})} \right. \\ &\left. +\dfrac{(u-u_j)^2(u_{j+3}-u)}{(u_{j+1}-u_j)(u_{j+2}-u_j)(u_{j+3}-u_j)}\right]V_{j-1} +\dfrac{(u-u_j)^3}{(u_{j+1}-u_j)(u_{j+2}-u_j)(u_{j+3}-u_j)}V_j. \end{aligned} P(u)=(uj+1uj)(uj+1uj1)(uj+1uj2)(uj+1u)3Vj3+[(uj+1uj)(uj+1uj1)(uj+1uj2)(uj+1u)2(uuj2)+(uj+1uj)(uj+1uj1)(uj+2uj1)(uj+1u)(uuj1)(uj+2u)+(uj+1uj)(uj+2uj)(uj+2uj1)(uuj)(uj+2u)2]Vj2+[(uj+1uj)(uj+1uj1)(uj+2uj1)(uj+1u)(uuj1)2+(uj+1uj)(uj+2uj)(uj+2uj1)(uuj)(uj+2u)(uuj1)+(uj+1uj)(uj+2uj)(uj+3uj)(uuj)2(uj+3u)]Vj1+(uj+1uj)(uj+2uj)(uj+3uj)(uuj)3Vj.
p = 2 p=2 p=2时,
P ( u ) = ( u j + 1 − u ) 2 ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) V j − 2 + [ ( u j + 1 − u ) ( u − u j − 1 ) ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) + ( u − u j ) ( u j + 2 − u ) ( u j + 1 − u j ) ( u j + 2 − u j ) ] V j − 1 + ( u − u j ) 2 ( u j + 1 − u j ) ( u j + 2 − u j ) V j . \begin{aligned} P(u)=&\dfrac{(u_{j+1}-u)^2}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})}V_{j-2} +\left[\dfrac{(u_{j+1}-u)(u-u_{j-1})}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})} \right. \\ &\left.+\dfrac{(u-u_j)(u_{j+2}-u)}{(u_{j+1}-u_j)(u_{j+2}-u_j)}\right]V_{j-1} +\dfrac{(u-u_j)^2}{(u_{j+1}-u_j)(u_{j+2}-u_j)}V_j. \end{aligned} P(u)=(uj+1uj)(uj+1uj1)(uj+1u)2Vj2+[(uj+1uj)(uj+1uj1)(uj+1u)(uuj1)+(uj+1uj)(uj+2uj)(uuj)(uj+2u)]Vj1+(uj+1uj)(uj+2uj)(uuj)2Vj.
p = 1 p=1 p=1时,
P ( u ) = u j + 1 − u u j + 1 − u j V j − 1 + u − u j u j + 1 − u j V j . P(u)=\dfrac{u_{j+1}-u}{u_{j+1}-u_j}V_{j-1}+\dfrac{u-u_j}{u_{j+1}-u_j}V_j. P(u)=uj+1ujuj+1uVj1+uj+1ujuujVj.

3 3次B样条曲线反求控制点

3.1 3次B样条曲线

p = 3 p=3 p=3并且 u ∈ [ u j , u j + 1 ) u\in[u_j,u_{j+1}) u[uj,uj+1)时,
P ( u ) = ∑ i = 0 n N i , 3 ( u ) V i = ∑ i = j − 3 j N i , 3 ( u ) V i . P(u)=\sum^n_{i=0}N_{i,3}(u)V_i=\sum^j_{i=j-3}N_{i,3}(u)V_i. P(u)=i=0nNi,3(u)Vi=i=j3jNi,3(u)Vi.
其中,
N j − 3 , 3 ( u ) = ( u j + 1 − u ) 3 ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) ( u j + 1 − u j − 2 ) . N j − 2 , 3 ( u ) = ( u j + 1 − u ) 2 ( u − u j − 2 ) ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) ( u j + 1 − u j − 2 ) + ( u j + 1 − u ) ( u − u j − 1 ) ( u j + 2 − u ) ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) ( u j + 2 − u j − 1 ) + ( u − u j ) ( u j + 2 − u ) 2 ( u j + 1 − u j ) ( u j + 2 − u j ) ( u j + 2 − u j − 1 ) . N j − 1 , 3 ( u ) = ( u j + 1 − u ) ( u − u j − 1 ) 2 ( u j + 1 − u j ) ( u j + 1 − u j − 1 ) ( u j + 2 − u j − 1 ) + ( u − u j ) ( u j + 2 − u ) ( u − u j − 1 ) ( u j + 1 − u j ) ( u j + 2 − u j ) ( u j + 2 − u j − 1 ) + ( u − u j ) 2 ( u j + 3 − u ) ( u j + 1 − u j ) ( u j + 2 − u j ) ( u j + 3 − u j ) . N j , 3 ( u ) = ( u − u j ) 3 ( u j + 1 − u j ) ( u j + 2 − u j ) ( u j + 3 − u j ) . \begin{aligned} N_{j-3,3}(u)=&\dfrac{(u_{j+1}-u)^3}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})(u_{j+1}-u_{j-2})}. \\ N_{j-2,3}(u)=&\dfrac{(u_{j+1}-u)^2(u-u_{j-2})}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})(u_{j+1}-u_{j-2})} +\dfrac{(u_{j+1}-u)(u-u_{j-1})(u_{j+2}-u)}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})(u_{j+2}-u_{j-1})} \\ &+\dfrac{(u-u_j)(u_{j+2}-u)^2}{(u_{j+1}-u_j)(u_{j+2}-u_j)(u_{j+2}-u_{j-1})}. \\ N_{j-1,3}(u)=&\dfrac{(u_{j+1}-u)(u-u_{j-1})^2}{(u_{j+1}-u_j)(u_{j+1}-u_{j-1})(u_{j+2}-u_{j-1})} +\dfrac{(u-u_j)(u_{j+2}-u)(u-u_{j-1})}{(u_{j+1}-u_j)(u_{j+2}-u_j)(u_{j+2}-u_{j-1})} \\ &+\dfrac{(u-u_j)^2(u_{j+3}-u)}{(u_{j+1}-u_j)(u_{j+2}-u_j)(u_{j+3}-u_j)}. \\ N_{j,3}(u)=&\dfrac{(u-u_j)^3}{(u_{j+1}-u_j)(u_{j+2}-u_j)(u_{j+3}-u_j)}. \end{aligned} Nj3,3(u)=Nj2,3(u)=Nj1,3(u)=Nj,3(u)=(uj+1uj)(uj+1uj1)(uj+1uj2)(uj+1u)3.(uj+1uj)(uj+1uj1)(uj+1uj2)(uj+1u)2(uuj2)+(uj+1uj)(uj+1uj1)(uj+2uj1)(uj+1u)(uuj1)(uj+2u)+(uj+1uj)(uj+2uj)(uj+2uj1)(uuj)(uj+2u)2.(uj+1uj)(uj+1uj1)(uj+2uj1)(uj+1u)(uuj1)2+(uj+1uj)(uj+2uj)(uj+2uj1)(uuj)(uj+2u)(uuj1)+(uj+1uj)(uj+2uj)(uj+3uj)(uuj)2(uj+3u).(uj+1uj)(uj+2uj)(uj+3uj)(uuj)3.
于是,可以得到
N j − 3 , 3 ( u j ) = ( u j + 1 − u j ) 2 ( u j + 1 − u j − 1 ) ( u j + 1 − u j − 2 ) . N j − 2 , 3 ( u j ) = ( u j + 1 − u j ) ( u j − u j − 2 ) ( u j + 1 − u j − 1 ) ( u j + 1 − u j − 2 ) + ( u j − u j − 1 ) ( u j + 2 − u j ) ( u j + 1 − u j − 1 ) ( u j + 2 − u j − 1 ) . N j − 1 , 3 ( u j ) = ( u j − u j − 1 ) 2 ( u j + 1 − u j − 1 ) ( u j + 2 − u j − 1 ) . N j , 3 ( u j ) = 0. \begin{aligned} N_{j-3,3}(u_j)=&\dfrac{(u_{j+1}-u_j)^2}{(u_{j+1}-u_{j-1})(u_{j+1}-u_{j-2})}. \\ N_{j-2,3}(u_j)=&\dfrac{(u_{j+1}-u_j)(u_j-u_{j-2})}{(u_{j+1}-u_{j-1})(u_{j+1}-u_{j-2})} +\dfrac{(u_j-u_{j-1})(u_{j+2}-u_j)}{(u_{j+1}-u_{j-1})(u_{j+2}-u_{j-1})}. \\ N_{j-1,3}(u_j)=&\dfrac{(u_j-u_{j-1})^2}{(u_{j+1}-u_{j-1})(u_{j+2}-u_{j-1})}. \\ N_{j,3}(u_j)=&0. \end{aligned} Nj3,3(uj)=Nj2,3(uj)=Nj1,3(uj)=Nj,3(uj)=(uj+1uj1)(uj+1uj2)(uj+1uj)2.(uj+1uj1)(uj+1uj2)(uj+1uj)(ujuj2)+(uj+1uj1)(uj+2uj1)(ujuj1)(uj+2uj).(uj+1uj1)(uj+2uj1)(ujuj1)2.0.
则有
P ( u j ) = ∑ i = j − 3 j N i , 3 ( u j ) V i = N j − 3 , 3 ( u j ) V j − 3 + N j − 2 , 3 ( u j ) V j − 2 + N j − 1 , 3 ( u j ) V j − 1 . P(u_j)=\sum^j_{i=j-3}N_{i,3}(u_j)V_i=N_{j-3,3}(u_j)V_{j-3}+N_{j-2,3}(u_j)V_{j-2} +N_{j-1,3}(u_j)V_{j-1}. P(uj)=i=j3jNi,3(uj)Vi=Nj3,3(uj)Vj3+Nj2,3(uj)Vj2+Nj1,3(uj)Vj1.

3.2 根据型值点列出方程组

假设

节点矢量 { 0 , 0 , 0 , u 1 , u 2 , ⋯   , u n − 1 , u n , 1 , 1 , 1 } \{0,0,0,u_1,u_2,\cdots,u_{n-1},u_n,1,1,1\} {0,0,0,u1,u2,,un1,un,1,1,1}

型值点序列 { P 1 , ⋯   , P n } \{P_1,\cdots,P_n\} {P1,,Pn}

控制点序列 { V 1 , ⋯   , V n + 2 } \{V_1,\cdots,V_{n+2}\} {V1,,Vn+2}


u 1 = 0 , u n = 1. V 1 = P 1 , V n + 2 = P n . \begin{aligned} &u_1=0,\quad u_n=1. \\ &V_1=P_1,\quad V_{n+2}=P_n. \\ \end{aligned} u1=0,un=1.V1=P1,Vn+2=Pn.
并且
( N 2 , 3 ( u 2 ) N 3 , 3 ( u 2 ) N 4 , 3 ( u 2 ) ⋱ ⋱ ⋱ N n − 1 , 3 ( u n − 1 ) N n , 3 ( u n − 1 ) N n + 1 , 3 ( u n − 1 ) ) ( V 2 ⋮ V n + 1 ) = ( P 2 ⋮ P n + 1 ) \begin{aligned} \begin{pmatrix} N_{2,3}(u_2) & N_{3,3}(u_2) & N_{4,3}(u_2) & & \\ & \ddots & \ddots & \ddots & \\ & & N_{n-1,3}(u_{n-1}) & N_{n,3}(u_{n-1}) & N_{n+1,3}(u_{n-1}) \\ \end{pmatrix} \begin{pmatrix} V_2 \\ \vdots \\ V_{n+1} \\ \end{pmatrix} =\begin{pmatrix} P_2 \\ \vdots \\ P_{n+1} \\ \end{pmatrix} \end{aligned} N2,3(u2)N3,3(u2)N4,3(u2)Nn1,3(un1)Nn,3(un1)Nn+1,3(un1)V2Vn+1=P2Pn+1
上式共有 n − 2 n-2 n2个方程,但有 n n n个控制点需要求解,因此需要补充端点条件。

3.3 端点条件

如果给定端点切矢, P 1 ′ = T 1 P_1'=T_1 P1=T1 P n ′ = T n P_n'=T_n Pn=Tn,即
T 1 = P 1 ′ = 3 u 2 − u 1 ( V 2 − V 1 ) . T n = P n ′ = 3 u n − u n − 1 ( V n + 2 − V n + 1 ) . \begin{aligned} &T_1=P_1'=\dfrac{3}{u_2-u_1}(V_2-V_1). \\ &T_n=P_n'=\dfrac{3}{u_n-u_{n-1}}(V_{n+2}-V_{n+1}). \\ \end{aligned} T1=P1=u2u13(V2V1).Tn=Pn=unun13(Vn+2Vn+1).
如果取自由端点条件,则 P 1 ′ ′ = 0 P_1''=0 P1=0 P n ′ ′ = 0 P_n''=0 Pn=0,即
0 = P 1 ′ ′ = 6 ( u 2 − u 1 ) 2 ( V 1 − V 2 ) − 6 ( u 2 − u 1 ) ( u 3 − u 1 ) ( V 2 − V 3 ) . 0 = P n ′ ′ = 6 ( u n − u n − 1 ) ( u n − u n − 2 ) ( V n − V n + 1 ) − 6 ( u n − u n − 1 ) 2 ( V n + 1 − V n + 2 ) . \begin{aligned} &0=P_1''=\dfrac{6}{(u_2-u_1)^2}(V_1-V_2)-\dfrac{6}{(u_2-u_1)(u_3-u_1)}(V_2-V_3). \\ &0=P_n''=\dfrac{6}{(u_n-u_{n-1})(u_n-u_{n-2})}(V_n-V_{n+1})-\dfrac{6}{(u_n-u_{n-1})^2}(V_{n+1}-V_{n+2}). \\ \end{aligned} 0=P1=(u2u1)26(V1V2)(u2u1)(u3u1)6(V2V3).0=Pn=(unun1)(unun2)6(VnVn+1)(unun1)26(Vn+1Vn+2).
于是得到如下方程组
( b 1 c 1 N 2 , 3 ( u 2 ) N 3 , 3 ( u 2 ) N 4 , 3 ( u 2 ) ⋱ ⋱ ⋱ N n − 1 , 3 ( u n − 1 ) N n , 3 ( u n − 1 ) N n + 1 , 3 ( u n − 1 ) a n b n ) ( V 2 V 3 ⋮ V n V n + 1 ) = ( d 1 P 2 ⋮ P n − 1 d n ) \begin{aligned} \begin{pmatrix} b_1 & c_1 & & & \\ N_{2,3}(u_2) & N_{3,3}(u_2) & N_{4,3}(u_2) & & \\ & \ddots & \ddots & \ddots & \\ & & N_{n-1,3}(u_{n-1}) & N_{n,3}(u_{n-1}) & N_{n+1,3}(u_{n-1}) \\ & & & a_n & b_n \\ \end{pmatrix} \begin{pmatrix} V_2 \\ V_3 \\ \vdots \\ V_n \\ V_{n+1} \\ \end{pmatrix} =\begin{pmatrix} d_1 \\ P_2 \\ \vdots \\ P_{n-1} \\ d_n \\ \end{pmatrix} \end{aligned} b1N2,3(u2)c1N3,3(u2)N4,3(u2)Nn1,3(un1)Nn,3(un1)anNn+1,3(un1)bnV2V3VnVn+1=d1P2Pn1dn
其中,

当给定端点切矢时,
b 1 = 3 u 2 − u 1 . c 1 = 0. d 1 = P 1 ′ + 3 u 2 − u 1 P 1 . a n = 0. b n = 3 u n − u n − 1 . d n = 3 u n − u n − 1 P n − P n ′ . \begin{aligned} &b_1=\dfrac{3}{u_2-u_1}. \\ &c_1=0. \\ &d_1=P_1'+\dfrac{3}{u_2-u_1}P_1. \\ &a_n=0. \\ &b_n=\dfrac{3}{u_n-u_{n-1}}. \\ &d_n=\dfrac{3}{u_n-u_{n-1}}P_n-P_n'. \end{aligned} b1=u2u13.c1=0.d1=P1+u2u13P1.an=0.bn=unun13.dn=unun13PnPn.
当取自由端点条件时,
b 1 = 6 ( u 2 − u 1 ) 2 + 6 ( u 2 − u 1 ) ( u 3 − u 1 ) . c 1 = − 6 ( u 2 − u 1 ) ( u 3 − u 1 ) . d 1 = 6 ( u 2 − u 1 ) 2 P 1 . a n = − 6 ( u n − u n − 1 ) ( u n − u n − 2 ) . b n = 6 ( u n − u n − 1 ) ( u n − u n − 2 ) + 6 ( u n − u n − 1 ) 2 . d n = 6 ( u n − u n − 1 ) 2 P n . \begin{aligned} &b_1=\dfrac{6}{(u_2-u_1)^2}+\dfrac{6}{(u_2-u_1)(u_3-u_1)}. \\ &c_1=-\dfrac{6}{(u_2-u_1)(u_3-u_1)}. \\ &d_1=\dfrac{6}{(u_2-u_1)^2}P_1. \\ &a_n=-\dfrac{6}{(u_n-u_{n-1})(u_n-u_{n-2})}. \\ &b_n=\dfrac{6}{(u_n-u_{n-1})(u_n-u_{n-2})}+\dfrac{6}{(u_n-u_{n-1})^2}. \\ &d_n=\dfrac{6}{(u_n-u_{n-1})^2}P_n. \\ \end{aligned} b1=(u2u1)26+(u2u1)(u3u1)6.c1=(u2u1)(u3u1)6.d1=(u2u1)26P1.an=(unun1)(unun2)6.bn=(unun1)(unun2)6+(unun1)26.dn=(unun1)26Pn.
两种端点条件可以混合使用。但首、末端点都分别与首、末型值点重合,即
V 1 = P 1 , V n + 2 = P n . V_1=P_1,\quad V_{n+2}=P_n. V1=P1,Vn+2=Pn.

3.4 追赶法求解方程组

A = ( a 1 c 1 b 2 a 2 c 2 ⋱ ⋱ ⋱ b n − 1 a n − 1 c n − 1 b n a n ) A=\begin{pmatrix}a_1 & c_1 & & & \\b_2 & a_2 & c_2 & & \\& \ddots & \ddots & \ddots & \\ & & b_{n-1} & a_{n-1} & c_{n-1} \\ & & & b_n & a_n \end{pmatrix} A=a1b2c1a2c2bn1an1bncn1an,对于一切 ∣ i − j ∣ > 1 |i-j|>1 ij>1 A i j = 0 A_{ij}=0 Aij=0

如果 A A A满足Doolittle分解,即
L U = A = ( 1 p 2 1 ⋱ ⋱ p n − 1 1 p n 1 ) ( q 1 c 1 q 2 c 2 ⋱ ⋱ q n − 1 c n − 1 q n ) \begin{aligned} LU=A=\begin{pmatrix} 1 & & & & \\ p_2 & 1 & & & \\ & \ddots & \ddots & & \\ & & p_{n-1} & 1 & \\ & & & p_n & 1 \end{pmatrix} \begin{pmatrix} q_1 & c_1 & & & \\ & q_2 & c_2 & & \\ & & \ddots & \ddots & \\ & & & q_{n-1} & c_{n-1} \\ & & & & q_n \\ \end{pmatrix} \end{aligned} LU=A=1p21pn11pn1q1c1q2c2qn1cn1qn
其中
{ q 1 = a 1 , p i = b i q i − 1 , i = 2 , ⋯   , n q i = a i − p i c i − 1 , i = 2 , ⋯   , n \begin{aligned} \begin{cases} q_1=a_1, \\ p_i=\dfrac{b_i}{q_{i-1}},\quad i=2,\cdots,n \\ q_i=a_i-p_ic_{i-1},\quad i=2,\cdots,n \\ \end{cases} \end{aligned} q1=a1,pi=qi1bi,i=2,,nqi=aipici1,i=2,,n
于是,求 A x = b Ax=b Ax=b等价于求 { L y = b U x = y \begin{cases}Ly=b \\Ux=y\end{cases} {Ly=bUx=y,其中 b = ( b 1 , ⋯   , b n ) T b=(b_1,\cdots,b_n)^T b=(b1,,bn)T,故有
( 1 p 2 1 ⋱ ⋱ p n 1 ) ( y 1 y 2 ⋮ y n ) = ( b 1 b 2 ⋮ b n ) \begin{aligned} \begin{pmatrix} 1 & & & \\ p_2 & 1 & & \\ & \ddots & \ddots & \\ & & p_n & 1 \\ \end{pmatrix} \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \\ \end{pmatrix} =\begin{pmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \\ \end{pmatrix} \end{aligned} 1p21pn1y1y2yn=b1b2bn
解得 { y 1 = b 1 , y i = b i − p i y i − 1 , i = 2 , ⋯   , n . \begin{cases}y_1=b_1, \\y_i=b_i-p_iy_{i-1},\quad i=2,\cdots,n.\end{cases} {y1=b1,yi=bipiyi1,i=2,,n.

再由
( q 1 c 1 ⋱ ⋱ q n − 1 c n − 1 q n ) ( x 1 ⋮ x n − 1 x n ) = ( y 1 ⋮ y n − 1 y n ) \begin{aligned} \begin{pmatrix} q_1 & c_1 & & \\ & \ddots & \ddots & \\ & & q_{n-1} & c_{n-1} \\ & & & q_n \\ \end{pmatrix} \begin{pmatrix} x_1 \\ \vdots \\ x_{n-1} \\ x_n \\ \end{pmatrix} =\begin{pmatrix} y_1 \\ \vdots \\ y_{n-1} \\ y_n \\ \end{pmatrix} \end{aligned} q1c1qn1cn1qnx1xn1xn=y1yn1yn
解得 { x n = y n q n , x i = y i − c i x i + 1 q i , i = n − 1 , ⋯   , 1. \begin{cases}x_n=\dfrac{y_n}{q_n},\\ x_i=\dfrac{y_i-c_ix_{i+1}}{q_i},\quad i=n-1,\cdots,1.\end{cases} xn=qnyn,xi=qiyicixi+1,i=n1,,1.

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值