数值分析:线性方程组的直接解法

本篇文章适合个人复习翻阅,不建议新手入门使用
本专栏:数值分析复习 的前置知识主要有:数学分析、高等代数、泛函分析

线性方程组的直接解法

Gauss(高斯)消元法

设有线性方程组
{ a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋮ a n 1 x 1 + a n 2 x 2 + ⋯ + a n n x n = b n \begin{cases} a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2\\ \vdots\\ a_{n1}x_1+a_{n2}x_2+\cdots+a_{nn}x_n=b_n\\ \end{cases} a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2an1x1+an2x2++annxn=bn

或写为矩阵形式
( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ a n 1 a n 2 ⋯ a n n ) ( x 1 x 2 ⋮ x n ) = ( b 1 b 2 ⋮ b n ) \begin{pmatrix} a_{11}&a_{12}&\cdots&a_{1n}\\ a_{21}&a_{22}&\cdots&a_{2n}\\ \vdots\\ a_{n1}&a_{n2}&\cdots&a_{nn}\\ \end{pmatrix}\begin{pmatrix} x_1\\x_2\\\vdots\\x_n \end{pmatrix}=\begin{pmatrix} b_1\\b_2\\\vdots\\b_n \end{pmatrix} a11a21an1a12a22an2a1na2nann x1x2xn = b1b2bn

简记为 A x = b Ax=b Ax=b

解线性方程组的经典算法是以下所称的“Guass消元法”

定义:Guass(高斯)消元法
从第一列开始,依次将系数矩阵 A A A 每列对角线以下的元素变为零,得到一个上三角阵;方法是用该列对角线元素所在的行乘以相应倍数消去下面几行;
方程组化为
( a 11 ( 1 ) a 12 ( 1 ) ⋯ a 1 n ( 1 ) a 22 ( 2 ) ⋯ a 2 n ( 2 ) ⋱ a n n ( n ) ) ( x 1 x 2 ⋮ x n ) = ( b 1 ( 1 ) b 2 ( 2 ) ⋮ b n ( n ) ) \begin{pmatrix} a_{11}^{(1)}&a_{12}^{(1)}&\cdots&a_{1n}^{(1)}\\ &a_{22}^{(2)}&\cdots&a_{2n}^{(2)}\\ &&\ddots&\\ &&&a_{nn}^{(n)}\\ \end{pmatrix}\begin{pmatrix} x_1\\x_2\\\vdots\\x_n \end{pmatrix}=\begin{pmatrix} b_1^{(1)}\\b_2^{(2)}\\\vdots\\b_n^{(n)} \end{pmatrix} a11(1)a12(1)a22(2)a1n(1)a2n(2)ann(n) x1x2xn = b1(1)b2(2)bn(n)

这一步称为消元

然后依次计算 x n , x n − 1 , … , x 1 x_n,x_{n-1},\dots,x_1 xn,xn1,,x1,得到求解公式
{ x n = b n ( n ) a n n ( n ) x k = ( b k ( k ) − ∑ j = k + 1 n a k j ( k ) x j ) / a k k ( k ) , k = n − 1 , n − 2 , … , 1 \begin{cases} x_n=\frac{b_n^{(n)}}{a_{nn}^{(n)}}\\ x_k=(b_k^{(k)}-\sum\limits_{j=k+1}^na_{kj}^{(k)}x_j)/a_{kk}^{(k)},k=n-1,n-2,\dots,1 \end{cases} xn=ann(n)bn(n)xk=(bk(k)j=k+1nakj(k)xj)/akk(k),k=n1,n2,,1

这一步称为回代

Guass消元法的改进:选(列)主元的高斯消元法
一般的Guass消元法的缺点是:无法处理对角线元素为零的矩阵,原因是零无法做分母;并且如果对角线上的元素绝对值较小,可能会产生数量级较大的数,计算结果可能不稳定,从而造成较大误差;因此采用如下称为选主元的高斯消元法,其在原先方法的基础上,在对第 k k k 列进行消元时,考虑第 k k k 列的从第 k k k 行到最后一行的元素,选出绝对值最大的元素,将该元素所在的行与第 k k k 行交换,再进行消元

高斯消元法与矩阵的LU分解

高斯消元法的矩阵表示

高斯消元法的消元过程相当于对 A A A 依次左乘 n − 1 {n-1} n1 个下三角阵 L 1 , … , L n − 1 L_1,\dots,L_{n-1} L1,,Ln1,使其成为上三角阵U,记 L − 1 = L n − 1 ⋯ L 1 L^{-1}=L_{n-1}\cdots L_1 L1=Ln1L1
L 1 = ( 1 ∗ 1 ∗ 1 ⋮ ⋱ ∗ 1 ) , L 2 = ( 1 1 ∗ 1 ⋮ ⋱ ∗ 1 ) , … , L n − 1 = ( 1 1 ⋱ 1 ∗ 1 ) L_1=\begin{pmatrix} 1&&&&\\ *&1&&&\\ *&&1&&\\ \vdots&&&\ddots&\\ *&&&&1\\ \end{pmatrix},L_2=\begin{pmatrix} 1&&&&\\ &1&&&\\ &*&1&&\\ &\vdots&&\ddots&\\ &*&&&1\\ \end{pmatrix},\dots,L_{n-1}=\begin{pmatrix} 1&&&&\\ &1&&&\\ &&\ddots&&\\ &&&1&\\ &&&*&1\\ \end{pmatrix} L1= 1111 ,L2= 1111 ,,Ln1= 1111

命题
L − 1 = L n − 1 ⋯ L 1 L^{-1}=L_{n-1}\cdots L_1 L1=Ln1L1,则有
L − 1 = ( 1 ∗ 1 ∗ ∗ 1 ⋮ ⋮ ⋮ ⋱ ∗ ∗ ∗ ⋯ 1 ) L^{-1}=\begin{pmatrix} 1&&&&\\ *&1&&&\\ *&*&1&&\\ \vdots&\vdots&\vdots&\ddots&\\ *&*&*&\cdots&1\\ \end{pmatrix} L1= 1111

其中该矩阵的第一列与 L 1 L_1 L1 的第一列相同,第二列与 L 2 L_2 L2 的第二列相同……

证明
e i e_i ei 为单位向量, l i l_i li 的前 i i i 个元素为0,后面的元素来自矩阵 L i L_i Li 的第 i i i 列的第 i + 1 i+1 i+1 行到最后一行的元素
注意到
L k = I − l k ⋅ e k ′ L_k=I-l_k\cdot e_k' Lk=Ilkek

L k − 1 = I + l k ⋅ e k ′ L_k^{-1}=I+l_k\cdot e_k' Lk1=I+lkek

L k − 1 ⋅ L k + 1 − 1 = ( I + l k ⋅ e k ′ ) ( I + l k + 1 ⋅ e k + 1 ′ ) = I + l k ⋅ e k ′ + l k + 1 ⋅ e k + 1 ′ L_k^{-1}\cdot L_{k+1}^{-1}=(I+l_k\cdot e_k')(I+l_{k+1}\cdot e_{k+1}')=I+l_k\cdot e_k'+l_{k+1}\cdot e_{k+1}' Lk1Lk+11=(I+lkek)(I+lk+1ek+1)=I+lkek+lk+1ek+1

定义:矩阵的LU分解
矩阵 A ∈ C m × m A\in\mathbb{C}^{m\times m} ACm×m的LU分解:A=LU,其中L是单位下三角矩阵,U是上三角阵

Gauss消元法相当于先求出矩阵的 LU 分解,再解如下方程组
{ L y = b U x = y \begin{cases} Ly=b\\ Ux=y \end{cases} {Ly=bUx=y

高斯消元法
写成元素的形式,得到高斯消元法的具体公式为

第一步:写出矩阵 U U U 的第一行, L L L 的第一列
u 1 i = a 1 i ( i = 1 , 2 , … , n ) , l i 1 = a i 1 / u 11 , i = 2 , 3 , … , n u_{1i}=a_{1i}(i=1,2,\dots,n),l_{i1}=a_{i1}/u_{11},i=2,3,\dots,n u1i=a1i(i=1,2,,n),li1=ai1/u11,i=2,3,,n

第二步:对每个 r r r r = 2 , … , n r=2,\dots,n r=2,,n
计算 U U U 的第 r r r
u r i = a r i − ∑ k = 1 r − 1 l r k u k i , i = r , r + 1 , … , n u_{ri}=a_{ri}-\sum\limits_{k=1}^{r-1}l_{rk}u_{ki},i=r,r+1,\dots,n uri=arik=1r1lrkuki,i=r,r+1,,n

计算 L L L 的第 r r r
l i r = ( a i r − ∑ k = 1 r − 1 l i k u k r ) / u r r l_{ir}=(a_{ir}-\sum\limits_{k=1}^{r-1}l_{ik}u_{kr})/u_{rr} lir=(airk=1r1likukr)/urr

得到完整的矩阵 L , U L,U L,U

第三步:求解 L y = b Ly=b Ly=b
{ y 1 = b 1 y i = b i − ∑ k = 1 i − 1 l i k y k , i = 2 , 3 , … , n \begin{cases} y_1=b_1\\ y_i=b_i-\sum\limits_{k=1}^{i-1}l_{ik}y_k,i=2,3,\dots,n \end{cases} y1=b1yi=bik=1i1likyk,i=2,3,,n

第四步:求解 U x = y Ux=y Ux=y
{ x n = y n / u n n x i = ( y i − ∑ k = i + 1 n u i k x k ) / u i i , i = n − 1 , n − 2 , … , 1 \begin{cases} x_n=y_n/u_{nn}\\ x_i=(y_i-\sum\limits_{k=i+1}^nu_{ik}x_k)/u_{ii},i=n-1,n-2,\dots,1 \end{cases} xn=yn/unnxi=(yik=i+1nuikxk)/uii,i=n1,n2,,1

其中第二步的公式称为杜利特尔(Doolittle)分解

选主元的高斯消元法
在高斯消元法的基础上,修改为

第零步:初始设置一个 n n n 维空数组 I p I_p Ip ,选取矩阵 A A A 的第一列的主元
a i 1 = max ⁡ 1 ≤ i ≤ n ∣ a i 1 ∣ a_{i_1}=\max\limits_{1\leq i\leq n}|a_{i1}| ai1=1inmaxai1

将第1行与第 i 1 i_1 i1 行交换,把新的矩阵的 i − j i-j ij 元重新记为 a i j a_{ij} aij,把 i 1 i_1 i1 写入 I p I_p Ip 的第一个位置

第一步:写出矩阵 U U U 的第一行, L L L 的第一列
u 1 i = a 1 i ( i = 1 , 2 , … , n ) , l i 1 = a i 1 / u 11 , i = 2 , 3 , … , n u_{1i}=a_{1i}(i=1,2,\dots,n),l_{i1}=a_{i1}/u_{11},i=2,3,\dots,n u1i=a1i(i=1,2,,n),li1=ai1/u11,i=2,3,,n

第二步:对每个 r r r r = 2 , … , n r=2,\dots,n r=2,,n
计算 U U U 的第 r r r 行第 r r r
s i = a i r − ∑ k = 1 r − 1 l i k u k r , i = r , r + 1 , … , n s_i=a_{ir}-\sum\limits_{k=1}^{r-1}l_{ik}u_{kr},i=r,r+1,\dots,n si=airk=1r1likukr,i=r,r+1,,n
选取第 r r r 列的主元
∣ s i r ∣ = max ⁡ r ≤ i ≤ n ∣ s i ∣ |s_{i_r}|=\max\limits_{r\leq i\leq n}|s_i| sir=rinmaxsi

交换第 i i i 行与第 i r i_r ir 行,把新的矩阵的 i − j i-j ij 元重新记为 a i j a_{ij} aij,把 i r i_r ir 写入 I p I_p Ip 的第 r r r 个位置

计算 U U U 的第 r r r
u r i = a r i − ∑ k = 1 r − 1 l r k u k i , i = r , r + 1 , … , n u_{ri}=a_{ri}-\sum\limits_{k=1}^{r-1}l_{rk}u_{ki},i=r,r+1,\dots,n uri=arik=1r1lrkuki,i=r,r+1,,n

计算 L L L 的第 r r r
l i r = ( a i r − ∑ k = 1 r − 1 l i k u k r ) / u r r l_{ir}=(a_{ir}-\sum\limits_{k=1}^{r-1}l_{ik}u_{kr})/u_{rr} lir=(airk=1r1likukr)/urr
得到完整的矩阵 L , U L,U L,U ,和记录排列阵信息的数组 I p I_p Ip

第三步:对 i = 1 , 2 , 3 , … , n i=1,2,3,\dots,n i=1,2,3,,n
交换向量 b b b 的第 i i i 行和第 i r i_r ir 行,记新的向量的第 i i i 个分量仍为 b i b_i bi ,计算如下公式
y i = { b 1 , i = 1 b i − ∑ k = 1 i − 1 l i k y k , i = 2 , … , n y_i=\begin{cases} b_1,&i=1\\ b_i-\sum\limits_{k=1}^{i-1}l_{ik}y_k,&i=2,\dots,n\\ \end{cases} yi= b1,bik=1i1likyk,i=1i=2,,n

第四步:求解 U x = y Ux=y Ux=y
{ x n = y n / u n n x i = ( y i − ∑ k = i + 1 n u i k x k ) / u i i , \begin{cases} x_n=y_n/u_{nn}\\ x_i=(y_i-\sum\limits_{k=i+1}^nu_{ik}x_k)/u_{ii}, \end{cases} xn=yn/unnxi=(yik=i+1nuikxk)/uii,

注:在实际算法中,常将矩阵 L , U L,U L,U 记在同一个矩阵里,矩阵的上三角部分源于 U U U ,下三角部分(除对角线外)源于 L L L

对称正定矩阵的楚列斯基分解

对称阵的三角分解定理
A A A n n n 阶对称矩阵,且 A A A 的所有顺序主子式均不为零,则 A A A 可唯一分解为
A = L D L T A=LDL^T A=LDLT

其中 L L L 为单位下三角阵, D D D 为对角阵

证明
设矩阵 A A A 的LU分解
A = L 1 U 1 A=L_1U_1 A=L1U1

其中 L 1 L_1 L1 为单位下三角阵, U 1 U_1 U1 为对角阵; U 1 U_1 U1 可分解为
U 1 = ( u 11 u 22 ⋱ u n n ) ( 1 u 12 u 11 ⋯ u 1 n u 11 1 ⋯ u 2 n u 22 ⋱ ⋮ 1 ) = D U 0 U_1=\begin{pmatrix} u_{11}&&&\\ &u_{22}&&\\ &&\ddots&\\ &&&u_{nn}\\ \end{pmatrix}\begin{pmatrix} 1&\frac{u_{12}}{u_{11}}&\cdots&\frac{u_{1n}}{u_{11}}\\ &1&\cdots&\frac{u_{2n}}{u_{22}}\\ &&\ddots&\vdots\\ &&&1\\ \end{pmatrix}=DU_0 U1= u11u22unn 1u11u121u11u1nu22u2n1 =DU0

其中 D D D 为对角阵, U 0 U_0 U0 为单位上三角阵,从而
A = L 1 D U 0 A=L_1DU_0 A=L1DU0

其转置为
A = U 0 T D L 1 T A=U_0^TDL_1^T A=U0TDL1T

由 LU 分解的唯一性可得 L 1 = U 0 T L_1=U_0^T L1=U0T ,即
A = L 1 D L 1 T A=L_1DL_1^T A=L1DL1T
命题:对称正定矩阵的cholesky(楚列斯基)分解
A A A n n n 阶对称正定矩阵,则存在一个实的非奇异下三角阵 L L L,使得
A = L L T A=LL^T A=LLT

称为 A A A 的cholesky分解,若限定 L L L 的对角元为正,则分解唯一

证明思路
注意到以下事实是显然的,在上述 A = L D L T A=LDL^T A=LDLT 中,有
D = ( u 11 u 22 ⋱ u n n ) = ( u 11 u 22 ⋱ u n n ) ( u 11 u 22 ⋱ u n n ) ≜ D 0 2 D=\begin{pmatrix} u_{11}&&&\\ &u_{22}&&\\ &&\ddots&\\ &&&u_{nn}\\ \end{pmatrix}=\begin{pmatrix} \sqrt{u_{11}}&&&\\ &\sqrt{u_{22}}&&\\ &&\ddots&\\ &&&\sqrt{u_{nn}}\\ \end{pmatrix}\begin{pmatrix} \sqrt{u_{11}}&&&\\ &\sqrt{u_{22}}&&\\ &&\ddots&\\ &&&\sqrt{u_{nn}}\\ \end{pmatrix}\triangleq D_0^2 D= u11u22unn = u11 u22 unn u11 u22 unn D02

解对称正定方程组的平方根法

平方根法
解对称正定方程组 A x = b Ax=b Ax=b ,使用cholesky分解
A = ( l 11 l 21 l 22 ⋮ ⋮ ⋱ l n 1 l n 2 ⋯ l n n ) ( l 11 l 21 ⋯ l n 1 l 22 ⋯ l n 2 ⋱ ⋮ l n n ) A=\begin{pmatrix} l_{11}&&&\\ l_{21}&l_{22}&&\\ \vdots&\vdots&\ddots&\\ l_{n1}&l_{n2}&\cdots&l_{nn}\\ \end{pmatrix}\begin{pmatrix} l_{11}&l_{21}&\cdots&l_{n1}\\ &l_{22}&\cdots&l_{n2}\\ &&\ddots&\vdots\\ &&&l_{nn}\\ \end{pmatrix} A= l11l21ln1l22ln2lnn l11l21l22ln1ln2lnn
算法如下:

第一步:对于 j = 1 , 2 , … , n j=1,2,\dots,n j=1,2,,n
l j j = ( a j j − ∑ k = 1 j − 1 l j k 2 ) 1 2 l_{jj}=(a_{jj}-\sum\limits_{k=1}^{j-1}l_{jk}^2)^{\frac{1}{2}} ljj=(ajjk=1j1ljk2)21

l i j = ( a i j − ∑ k = 1 j − 1 l i k l j k ) / l j j , i = j + 1 , … , n l_{ij}=(a_{ij}-\sum\limits_{k=1}^{j-1}l_{ik}l_{jk})/l_{jj},i=j+1,\dots,n lij=(aijk=1j1likljk)/ljj,i=j+1,,n

第二步:求解 L y = b Ly=b Ly=b
y i = ( b i − ∑ k = 1 i − 1 l i k y k ) / l i i , i = 1 , 2 , … , n y_i=(b_i-\sum\limits_{k=1}^{i-1}l_{ik}y_k)/l_{ii},i=1,2,\dots,n yi=(bik=1i1likyk)/lii,i=1,2,,n

第三步:求解 L T x = y L^Tx=y LTx=y
x i = ( b i − ∑ k = i + 1 n l k i x k ) / l i i , i = n , n − 1 , … , 1 x_i=(b_i-\sum\limits_{k=i+1}^nl_{ki}x_k)/l_{ii},i=n,n-1,\dots,1 xi=(bik=i+1nlkixk)/lii,i=n,n1,,1

注:观察第一步中的公式,容易发现 L L L 是对角占优的,故算法稳定

平方根法的公式需要用到开方运算,为了避免这一点,有如下的改进算法

改进的平方根法
解对称正定方程组 A x = b Ax=b Ax=b ,使用分解式
A = ( 1 l 21 1 ⋮ ⋮ ⋱ l n 1 l n 2 ⋯ 1 ) ( d 1 d 2 ⋱ d n ) ( 1 l 21 ⋯ l n 1 1 ⋯ l n 2 ⋱ ⋮ 1 ) A=\begin{pmatrix} 1&&&\\ l_{21}&1&&\\ \vdots&\vdots&\ddots&\\ l_{n1}&l_{n2}&\cdots&1\\ \end{pmatrix}\begin{pmatrix} d_1&&&\\ &d_2&&\\ &&\ddots&\\ &&&d_n\\ \end{pmatrix}\begin{pmatrix} 1&l_{21}&\cdots&l_{n1}\\ &1&\cdots&l_{n2}\\ &&\ddots&\vdots\\ &&&1\\ \end{pmatrix} A= 1l21ln11ln21 d1d2dn 1l211ln1ln21

算法如下:

第一步:对于 i = 1 , 2 , … , n i=1,2,\dots,n i=1,2,,n


t i j = l i j d j t_{ij}=l_{ij}d_j tij=lijdj
从而
l i j = ( a i j − ∑ k = 1 j − 1 t i k l j k ) d j , j = 1 , 2 , … , i − 1 l_{ij}=(a_{ij}-\sum\limits_{k=1}^{j-1}t_{ik}l_{jk})d_j,j=1,2,\dots,i-1 lij=(aijk=1j1tikljk)dj,j=1,2,,i1

d i = a i i − ∑ k = 1 i − 1 t i k 2 l i k d_i=a_{ii}-\sum\limits_{k=1}^{i-1}t_{ik}^2l_{ik} di=aiik=1i1tik2lik

第二步:求解 L y = b Ly=b Ly=b
y 1 = b 1 y_1=b_1 y1=b1

y i = b i − ∑ k = 1 i − 1 l i k y k , i = 2 , … , n y_i=b_i-\sum\limits_{k=1}^{i-1}l_{ik}y_k,i=2,\dots,n yi=bik=1i1likyk,i=2,,n

第三步:求解 D L T x = y DL^Tx=y DLTx=y
x n = y n / d n x_n=y_n/d_n xn=yn/dn

x i = y i / d i − ∑ k = i + 1 n l k i x k , i = n − 1 , … , 1 x_i=y_i/d_i-\sum\limits_{k=i+1}^nl_{ki}x_k,i=n-1,\dots,1 xi=yi/dik=i+1nlkixk,i=n1,,1

注:实际算法中常将 L , D L,D L,D 的元素储存在同一个矩阵中

追赶法

设对角占优的三对角方程组
( b 1 c 1 a 2 b 2 c 2 ⋱ ⋱ ⋱ a n − 1 b n − 1 c n − 1 a n b n ) ( x 1 x 2 ⋮ x n − 1 x n ) = ( f 1 f 2 ⋮ f n − 1 f n ) \begin{pmatrix} b_1&c_1&&&\\ a_2&b_2&c_2&&\\ &\ddots&\ddots&\ddots&\\ &&a_{n-1}&b_{n-1}&c_{n-1}\\ &&&a_n&b_n\\ \end{pmatrix} \begin{pmatrix} x_1\\x_2\\\vdots\\x_{n-1}\\x_n \end{pmatrix}= \begin{pmatrix} f_1\\f_2\\\vdots\\f_{n-1}\\f_n\\ \end{pmatrix} b1a2c1b2c2an1bn1ancn1bn x1x2xn1xn = f1f2fn1fn

简记为 A x = f Ax=f Ax=f ,其中 A A A 是行对角占优的,且 b 1 , c 1 , a n , b n ≠ 0 b_1,c_1,a_n,b_n\neq 0 b1,c1,an,bn=0

追赶法
解对称正定的三对角方程组 A x = f Ax=f Ax=f ,使用分解式
A = ( b 1 c 1 a 2 b 2 c 2 ⋱ ⋱ ⋱ a n − 1 b n − 1 c n − 1 a n b n ) = ( α 1 r 2 α 2 ⋱ ⋱ r n α n ) ( 1 β 1 1 ⋱ ⋱ β n − 1 1 ) A=\begin{pmatrix} b_1&c_1&&&\\ a_2&b_2&c_2&&\\ &\ddots&\ddots&\ddots&\\ &&a_{n-1}&b_{n-1}&c_{n-1}\\ &&&a_n&b_n\\ \end{pmatrix}=\begin{pmatrix} \alpha_1&&&\\ r_2&\alpha_2&&\\ &\ddots&\ddots&\\ &&r_n&\alpha_n\\ \end{pmatrix}\begin{pmatrix} 1&\beta_1&&\\ &1&\ddots&&\\ &&\ddots&\beta_{n-1}\\ &&&1\\ \end{pmatrix} A= b1a2c1b2c2an1bn1ancn1bn = α1r2α2rnαn 1β11βn11

算法如下:

第一步:计算 β i \beta_i βi
β 1 = c 1 / b 1 \beta_1=c_1/b_1 β1=c1/b1

β i = c i / ( b i − a i β i − 1 ) , i = 2 , 3 , … , n − 1 \beta_i=c_i/(b_i-a_i\beta_{i-1}),i=2,3,\dots,n-1 βi=ci/(biaiβi1),i=2,3,,n1

第二步:求解 L y = f Ly=f Ly=f
y 1 = f 1 / b 1 y_1=f_1/b_1 y1=f1/b1

y i = ( f i − a i y i − 1 ) / ( b i − a β i − 1 ) , i = 2 , 3 , … , n y_i=(f_i-a_iy_{i-1})/(b_i-a\beta_{i-1}),i=2,3,\dots,n yi=(fiaiyi1)/(biaβi1),i=2,3,,n

第三步:求解 U x = y Ux=y Ux=y
x n = y n x_n=y_n xn=yn

x i = y i − β i x i + 1 , i = n − 1 , n − 2 , … , 1 x_i=y_i-\beta_ix_{i+1},i=n-1,n-2,\dots,1 xi=yiβixi+1,i=n1,n2,,1

参考书籍:《数值分析》李庆扬 王能超 易大义 编

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值