线性方程组数值解法:
(求解线性方程组: A x = b Ax = b Ax=b)
范数 | 表达式 |
---|---|
∞ \infty ∞-范数 | ∥ x ∥ ∞ = m a x ∣ x i ∣ \| x\|_{\infty} = max\mid x_i\mid ∥x∥∞=max∣xi∣ |
1 1 1-范数 | ∥ x ∥ 1 = ∑ ∣ x i ∣ \| x\|_{1} = \sum\mid x_i\mid ∥x∥1=∑∣xi∣ |
2 2 2-范数 | ∥ x ∥ 2 = ( x , x ) = ( ∑ x i 2 ) \| x\|_{2} = \sqrt{(x,x)} = \sqrt{(\sum x_i^2)} ∥x∥2=(x,x)=(∑xi2) |
p p p-范数 | ∥ x ∥ p = ( ∑ ∣ x i ∣ p ) p \| x\|_{p} = \sqrt[p]{(\sum \mid x_i \mid^p)} ∥x∥p=p(∑∣xi∣p) |
范数 | 表达式 |
---|---|
行范数 | ∥ A ∥ ∞ = m a x ∣ a i j ∣ \| A\|_{\infty} = max\mid a_{ij}\mid ∥A∥∞=max∣aij∣ |
列范数 | ∥ A ∥ 1 = m a x 1 ≤ j ≤ n ∑ i = 1 n ∣ a i j ∣ \| A\|_{1} = max_{1\le j \le n}\sum_{i=1}^n\mid a_{ij}\mid ∥A∥1=max1≤j≤n∑i=1n∣aij∣ |
2 2 2-范数 | ∥ A ∥ 2 = λ m a x ( A T A ) \| A\|_{2} = \sqrt{\lambda_{max}(A^TA)} ∥A∥2=λmax(ATA),其中 λ m a x \lambda_{max} λmax指矩阵最大特征值 |
设矩阵 A A A的某范数为 ∣ ∣ A ∣ ∣ k ||A||_{k} ∣∣A∣∣k,则称 c o n d ( A ) k = ∣ ∣ A − 1 ∣ ∣ k ∣ ∣ A ∣ ∣ k cond(A)_k = ||A^{-1}||_{k}||A||_{k} cond(A)k=∣∣A−1∣∣k∣∣A∣∣k为 A A A的 k k k条件数
=> 条件数刻画了方程组的病态程度,因此常用来作为矩阵是否病态的判断
常用的条件数:
(1)
c
o
n
d
(
A
)
∞
=
∣
∣
A
−
1
∣
∣
∞
∣
∣
A
∣
∣
∞
cond(A)_{\infty} = ||A^{-1}||_{\infty}||A||_{\infty}
cond(A)∞=∣∣A−1∣∣∞∣∣A∣∣∞
(2)
c
o
n
d
(
A
)
2
=
∣
∣
A
−
1
∣
∣
2
∣
∣
A
∣
∣
2
=
λ
m
a
x
(
A
T
A
)
λ
m
i
n
(
A
T
A
)
cond(A)_{2} = ||A^{-1}||_{2}||A||_{2} = \sqrt{\cfrac{\lambda_{max}(A^TA)}{\lambda_{min}(A^TA)}}
cond(A)2=∣∣A−1∣∣2∣∣A∣∣2=λmin(ATA)λmax(ATA),特殊地,当A为对称矩阵时,
c
o
n
d
(
A
)
2
=
∣
λ
m
a
x
(
A
)
λ
m
i
n
(
A
)
∣
cond(A)_{2} =|\frac{\lambda_{max}(A)}{\lambda_{min}(A)}|
cond(A)2=∣λmin(A)λmax(A)∣
(求解线性方程组: A x = b Ax = b Ax=b,通过对增广矩阵 ( A , b ) (A,b) (A,b)进行初等矩阵变换)
步骤 | 操作 |
---|---|
消元 | 通过矩阵初等行消法变换,将其化为上三角矩阵 A ′ A' A′(列向量 b b b也需相应变换为 b ′ b' b′,且主对角线元 a k k ≠ 0 a_{kk}\neq 0 akk=0) |
回代 | 从 A ′ A' A′第 n n n行的一次方程 a n n x n = b n a_{nn}x_n = b_n annxn=bn逐步回代,依次求解 x n , x n − 1 , . . . , x 1 x_n,x_{n-1},...,x_1 xn,xn−1,...,x1 |
=> A ′ A' A′中主对角线元 a k k ≠ 0 a_{kk}\neq 0 akk=0的充要条件: A A A的各阶顺序主子式 D k ≠ 0 D_k\neq 0 Dk=0
=> 为了避免主对角线元素 a k k a_{kk} akk过小而导致在消元的过程中误差增大,可通过矩阵变换使得绝对值相对最大的元素作为主对角线元素(一般按列选取即可,即仅进行初等行交换变换)
( L U LU LU分解定理:若 A A A的各阶顺序主子式 D k ≠ 0 D_k\neq 0 Dk=0,则 A A A可唯一分解为一个单位下三角矩阵 L L L和一个上三角矩阵 U U U的乘积的形式,即: A = L U A = LU A=LU)
(1) D o o l i t t l e Doolittle Doolittle分解:
步骤 | 操作 |
---|---|
计算 U U U和 L L L |
u
1
j
=
a
1
j
,
l
i
1
=
a
i
1
u
11
u_{1j} = a_{1_j}, l_{i1} = \cfrac{a_{i1}}{u_{11}}
u1j=a1j,li1=u11ai1 u i j = a i j − ∑ k = 1 i − 1 l i k u k j u_{ij} = a_{ij}- \sum_{k=1}^{i-1}l_{ik}u_{kj} uij=aij−∑k=1i−1likukj l i j = a i j − ∑ k = 1 j − 1 l i k u k j u j j l_{ij} = \cfrac{a_{ij}- \sum_{k=1}^{j-1}l_{ik}u_{kj}}{u_{jj}} lij=ujjaij−∑k=1j−1likukj |
求解 y y y | L y = b Ly = b Ly=b |
求解 x x x | U x = y Ux = y Ux=y |
(2)
C
h
o
l
e
s
k
y
Cholesky
Cholesky分解:(针对对称正定矩阵的分解)
(对称矩阵三角分解定理:若n阶阵
A
A
A的各阶顺序主子式
D
k
≠
0
D_k\neq 0
Dk=0,则
A
A
A可唯一分解为单位下三角矩阵
L
L
L和对角矩阵
D
D
D的对称积的形式,即:
A
=
L
D
L
T
A = LDL^T
A=LDLT,t特殊地,当A同时为正定矩阵时,则
A
A
A可唯一分解为一个实下三角矩阵
L
L
L的对称积的形式,即:
A
=
L
L
T
A = LL^T
A=LLT)
步骤 | 操作 |
---|---|
计算 L L L |
l
j
j
=
a
j
j
−
∑
k
=
1
j
−
1
l
j
k
2
l_{jj} =\sqrt{a_{jj}-\sum_{k=1}^{j-1}l^2_{jk}}
ljj=ajj−∑k=1j−1ljk2 l i j = a i j − ∑ k = 1 j − 1 l i k l j k l j j l_{ij} = \cfrac{a_{ij}-\sum_{k=1}^{j-1}l_{ik}l_{jk}}{l_{jj}} lij=ljjaij−∑k=1j−1likljk |
求解 y y y | L y = b Ly = b Ly=b |
求解 x x x | L T x = y L^Tx = y LTx=y |
(3)追赶法:(针对对角占优的三对角矩阵的分解)
(同样利用
L
U
LU
LU分解,分解形式如下所示)
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
γ
2
α
2
γ
3
α
3
.
.
.
.
.
.
γ
n
α
n
]
[
1
β
1
1
β
2
.
.
.
.
.
.
1
β
n
−
1
1
]
A = \left[\begin{matrix} b_1 & c_1 \\ a_2 & b_2 & c_2 \\ &...&...&... \\ & & a_{n-1} & b_{n-1} & c_{n-1}\\ & & & a_{n} & b_{n} \\ \end{matrix}\right] = \left[\begin{matrix} \alpha_1 & \\ \gamma_2 & \alpha_2 \\ & \gamma_3 & \alpha_3 \\ &...&... \\ & & & \gamma_n & \alpha_n \\ \end{matrix}\right] \left[\begin{matrix} 1&\beta_1 & \\ &1& \beta_2 \\ & &...&... \\ & & & 1& \beta_{n-1} \\ & & & &1 \\ \end{matrix}\right]
A=⎣⎢⎢⎢⎢⎡b1a2c1b2...c2...an−1...bn−1ancn−1bn⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡α1γ2α2γ3...α3...γnαn⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡1β11β2......1βn−11⎦⎥⎥⎥⎥⎤
步骤 | 操作 |
---|---|
计算 β i \beta_i βi |
β
1
=
c
1
b
1
\beta_1 = \frac{c_1}{b_1}
β1=b1c1 β i = c i b i − a i β i − 1 \beta_i = \cfrac{c_i}{b_i-a_i\beta_{i-1}} βi=bi−aiβi−1ci |
求解 L y = f Ly = f Ly=f |
y
1
=
f
1
b
1
y_1 = \frac{f_1}{b_1}
y1=b1f1 y i = f i − a i y i − 1 b i − a i β i − 1 y_i = \cfrac{f_i-a_iy_{i-1}}{b_i-a_i\beta_{i-1}} yi=bi−aiβi−1fi−aiyi−1 |
求解 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 x_i = y_i-\beta_ix_{i+1} xi=yi−βixi+1 |
=> 迭代法收敛定理:设有迭代方程:
x
=
B
x
+
f
x =Bx+f
x=Bx+f,则该方程对应的迭代法收敛的充要条件为
ρ
(
B
)
<
1
\rho(B)< 1
ρ(B)<1,并称:
R
(
B
)
=
−
ln
ρ
(
B
)
R(B) =- \ln\rho(B)
R(B)=−lnρ(B)为迭代法的收敛速度
-
七、 J a c o b i Jacobi Jacobi迭代法:
(求解线性方程组: A x = b Ax = b Ax=b,将矩阵 A A A分解成 A = D − L − U A = D-L-U A=D−L−U,其中 D D D是由A的所有主对角元组成的对角阵, L L L是由 A A A的主对角线元以下的元素组成下三角矩阵, U U U是由 A A A的主对角线元以上的元素组成上三角矩阵,得到迭代方程: x = B x + f x =Bx+f x=Bx+f,逐次迭代可得)
步骤 操作 计算 B B B B = D − 1 ( L + U ) B = D^{-1}(L+U) B=D−1(L+U) 计算 f f f f = D − 1 b f = D^{-1}b f=D−1b 选取初始解向量 x ( 0 ) x^{(0)} x(0) 迭代计算 x ( k + 1 ) = B x ( k ) + f x^{(k+1)} = Bx^{(k)}+f x(k+1)=Bx(k)+f
-
八、 G a u s s − S e i d e l Gauss-Seidel Gauss−Seidel迭代法:
(求解线性方程组: A x = b Ax = b Ax=b,将矩阵 A A A分解成 A = D − L − U A = D-L-U A=D−L−U,其中 D D D是由A的所有主对角元组成的对角阵, L L L是由 A A A的主对角线元以下的元素组成下三角矩阵, U U U是由 A A A的主对角线元以上的元素组成上三角矩阵,得到迭代方程: x = G x + f x =Gx+f x=Gx+f,逐次迭代可得)
步骤 操作 计算 G G G G = ( D − L ) − 1 U G = (D-L)^{-1}U G=(D−L)−1U 计算 f f f f = ( D − L ) − 1 b f = (D-L)^{-1}b f=(D−L)−1b 选取初始解向量 x ( 0 ) x^{(0)} x(0) 迭代计算 x ( k + 1 ) = G x ( k ) + f x^{(k+1)} =Gx^{(k)}+f x(k+1)=Gx(k)+f
-
九、超松弛迭代法:
(求解线性方程组: A x = b Ax = b Ax=b,将矩阵 A A A分解成 A = D − L − U A = D-L-U A=D−L−U,其中 D D D是由A的所有主对角元组成的对角阵, L L L是由 A A A的主对角线元以下的元素组成下三角矩阵, U U U是由 A A A的主对角线元以上的元素组成上三角矩阵,定义松弛因子 ω \omega ω,得到迭代方程: x = L ω x + f x =L_{\omega}x+f x=Lωx+f,逐次迭代可得,此方法是解大型稀疏矩阵方程组的有效办法)
步骤 操作 计算 L ω L_{\omega} Lω L ω = ( D − ω L ) − 1 [ ( 1 − ω ) D + ω U ] L_{\omega} = (D-\omega L)^{-1}[(1-\omega)D+\omega U] Lω=(D−ωL)−1[(1−ω)D+ωU] 计算 f f f f = ( D − ω L ) − 1 ω b f = (D-\omega L)^{-1}\omega b f=(D−ωL)−1ωb 选取初始解向量 x ( 0 ) x^{(0)} x(0) 迭代计算 x ( k + 1 ) = L ω x ( k ) + f x^{(k+1)} =L_{\omega}x^{(k)}+f x(k+1)=Lωx(k)+f => 超松弛迭代法收敛的必要条件: 0 < ω < 2 0<\omega<2 0<ω<2
=> 超松弛迭代法收敛的充分条件: 0 < ω < 2 0<\omega<2 0<ω<2且 A A A为对称正定矩阵