数值计算之第四期:追赶法和范数

上一期链接:https://blog.csdn.net/axehead/article/details/105855475

参考资料:
数值分析教程 刘长安 西北工业大学出版社
数值计算方法 黄云清 科学出版社
数值分析简明教程 王能超 高等教育出版社 第二版

追赶法解三对角矩阵

上一期末尾提到了cholesky分解和追赶法,但是没有展开来讲,这期就提一下追赶法的计算步骤.至于cholesky分解,后面会有专门针对正定矩阵的算法,这里就不说了.
设系数矩阵A为:
A = [ e 1 f 1 0 d 2 ⋱ ⋱ ⋱ ⋱ f n − 1 0 d n e n ] A=\begin{bmatrix} e_1 & f_1 & & 0\\ d_2 & \ddots & \ddots& \\ &\ddots &\ddots & f_{n-1}\\0 & & d_n& e_n\\ \end{bmatrix} A=e1d20f1dn0fn1en
我们将形似方阵A的矩阵称为三对角矩阵.
对这类矩阵,有如下分解:
A = L U = [ 1 0 l 2 1 ⋱ ⋱ 0 l n 1 ] ⋅ [ r 1 f 1 0 r 2 ⋱ ⋱ f n − 1 0 r n ] A=LU=\begin{bmatrix} 1 & & & 0\\ l_2 & 1 & & \\ &\ddots &\ddots & \\0 & & l_n& 1\\ \end{bmatrix}\cdot\begin{bmatrix} r_1 & f_1 & & 0\\ & r_2 & \ddots& \\ & &\ddots & f_{n-1}\\0 & & & r_n\\ \end{bmatrix} A=LU=1l201ln01r10f1r20fn1rn
得到分解的矩阵及具体的求解过程如下:
r 1 = e 1 r_1=e_1 r1=e1,然后对 i = 2 , . . . , n i=2,...,n i=2,...,n计算
l i = d i r i − 1 l_i=\frac {d_i}{r_{i-1}} li=ri1di r i = e i − l i × f i − 1 r_i=e_i-l_i\times f_{i-1} ri=eili×fi1
注意上三角矩阵U中的 f i f_i fi仍然是A中的对应元素.这样就做完分解了.接下来就是解方程 L y = b Ly=b Ly=b U x = y U_x=y Ux=y(其中b为方程组 A x = b Ax=b Ax=b中对应的b向量):
(1)令 y 1 = b 1 y_1=b_1 y1=b1,对 i = 2 , . . . , n i=2,...,n i=2,...,n计算:
y i = b i − l i × y i − 1 y_i=b_i-l_i\times y_{i-1} yi=bili×yi1
(2)令 x n = y n r n x_n=\frac {y_n}{r_n} xn=rnyn,再对 i = n − 1 , . . . , 1 i=n-1,...,1 i=n1,...,1计算:
x i = y i − f i × x i + 1 r i x_i=\frac {y_i-f_i\times x_{i+1}}{r_i} xi=riyifi×xi+1
该算法的计算量为 O ( n ) O(n) O(n),理论上为最优运算量的算法.

矩阵范数及向量范数

向量范数

说到范数,我认为可以把它理解称n维空间上的一类特殊函数,一般来说,是一个实值函数,常常记为 ∥ x ∥ ( x ∈ R n ) \Vert x\Vert(x\in\mathbb R^n) x(xRn).
常用的范数就是p( p ∈ [ 1 , ∞ ) p\in[1,\infty) p[1,))范数:
∥ x ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 / p \Vert x\Vert _p=(\sum\limits^n_{i=1}|x_i|^p)^{1/p} xp=(i=1nxip)1/p
最为重要的就是1范数,2范数(或Euclid范数)和 ∞ \infty 范数,分别对应下面三个式子:
∥ x ∥ 1 = ∣ x 1 ∣ + ∣ x 2 ∣ + . . . + ∣ x n ∣ = ∑ i = 1 n ∣ x 1 ∣ \Vert x\Vert_1=|x_1|+|x_2|+...+|x_n|=\sum\limits^n_{i=1}|x_1| x1=x1+x2+...+xn=i=1nx1
∥ x ∥ 2 = ( ∑ i = 1 n ∣ x i ∣ 2 ) 1 / 2 \Vert x\Vert_2=(\sum\limits^n_{i=1}|x_i|^2)^{1/2} x2=(i=1nxi2)1/2
∥ x ∥ ∞ = max ⁡ { ∣ x 1 ∣ , . . . , ∣ x n ∣ } \Vert x\Vert_\infty=\max\{|x_1|,...,|x_n|\} x=max{x1,...,xn}
上面说到范数是一类特殊的函数,自然就满足某些性质:
x , y ∈ R n , a ∈ R x,y\in\mathbb R^n,a\in\mathbb R x,yRnaR
(1)非负性(也称正定性): x ≠ 0 x\neq0 x=0,成立 ∥ x ∥ > 0 , ∥ x ∥ = 0 \Vert x\Vert\gt0,\Vert x\Vert=0 x>0,x=0当且仅当 x = 0 x=0 x=0;
(2)齐次性: ∥ a x ∥ = ∣ a ∣ ∥ x ∥ \Vert ax\Vert=|a|\Vert x\Vert ax=ax;
(3)三角不等式: ∥ x + y ∥ ≤ ∥ x ∥ + ∥ y ∥ \Vert x+y\Vert\le\Vert x\Vert+\Vert y\Vert x+yx+y.
下面叙述几条相关的定理:
定理1:对 R n \mathbb R^n Rn中的任意向量范数, ∀ x , y ∈ R n \forall x,y\in\mathbb R^n x,yRn,成立
∣ ∥ x ∥ − ∥ y ∥ ∣ ≤ ∥ x − y ∥ |\Vert x\Vert-\Vert y\Vert|\le\Vert x-y\Vert xyxy
(利用范数的三角不等式性质证明)
定理2: R n \mathbb R^n Rn中的任意向量范数都是 R n \mathbb R^n Rn上的连续函数.
(利用定理1证明和范数的性质证明)
定理3: R n \mathbb R^n Rn空间上所有的范数都是等价的.用不同的下标表示不同的范数就是:总存在常数m和M, ∀ x ∈ R n \forall x\in\mathbb R^n xRn,成立
m ∥ x ∥ ( 1 ) ≤ ∥ x ∥ ( 2 ) ≤ M ∥ x ∥ ( 1 ) m\Vert x\Vert_{(1)}\le\Vert x\Vert_{(2)}\le M\Vert x\Vert_{(1)} mx(1)x(2)Mx(1)
(只需证明任意范数和某一确定的范数等价即可)
定理4: R n \mathbb R^n Rn中序列 { x ( k ) } \{x^{(k)}\} {x(k)}收敛于某一 x ∈ R n x\in\mathbb R^n xRn的充要条件为:
∥ x ( k ) − x ∥ → 0 , k → ∞ \Vert x^{(k)}-x\Vert\to0,k\to\infty x(k)x0,k

矩阵范数

对于一般的矩阵范数,它们是满足上面所说的三条范数的性质的,下面讲一类特殊的矩阵范数,叫做矩阵的从属范数.
R n \mathbb R^n Rn上的任意范数,对任一 A ∈ R n × n A\in \mathbb R^{n\times n} ARn×n,定义:
∥ A ∥ = max ⁡ x ≠ 0 ∥ A x ∥ ∥ x ∥ = max ⁡ ∥ x ∥ = 1 ∥ A x ∥ \Vert A\Vert=\max\limits_{x\ne0}\frac {\Vert Ax \Vert}{\Vert x\Vert}=\max\limits _{\Vert x\Vert=1}\Vert Ax\Vert A=x=0maxxAx=x=1maxAx
为A的从属范数.(注意!这里的矩阵范数是有向量范数导出的)
下面分别给出1范数,2范数和 ∞ \infty 范数的计算公式:
∥ A ∥ 1 = max ⁡ j ∑ i = 1 n ∣ a i j ∣ \Vert A\Vert_1=\max\limits_j\sum\limits^n_{i=1}|a_{ij}| A1=jmaxi=1naij
∥ A ∥ ∞ = max ⁡ i ∑ j = 1 n ∣ a i j ∣ \Vert A\Vert_{\infty}=\max\limits_i\sum\limits^n_{j=1}|a_{ij}| A=imaxj=1naij
∥ A ∥ 2 = λ m a x \Vert A\Vert_2=\sqrt{\lambda_{max}} A2=λmax
矩阵的从属范数除了满足一般范数的性质外,还满足相容性条件。即:
(4) ∥ A x ∥ ≤ ∥ A ∥ ⋅ ∥ x ∥ , ∀ x ∈ R n \Vert Ax\Vert\le\Vert A\Vert\cdot\Vert x\Vert,\forall x\in\mathbb R^n AxAx,xRn;
(5) ∥ A ⋅ B ∥ ≤ ∥ A ∥ ⋅ ∥ B ∥ , ∀ A , B ∈ R n × n \Vert A\cdot B\Vert\le\Vert A\Vert \cdot\Vert B\Vert,\forall A,B\in\mathbb R^{n\times n} ABAB,A,BRn×n.
此外矩阵的范数之间也是等价的,特别地,1范数,2范数,F范数和 ∞ \infty 范数的关系如下:
∥ A ∥ 2 ≤ ∥ A ∥ F ≤ n ∥ A ∥ 2 \Vert A\Vert_2\le\Vert A\Vert_F\le\sqrt{n}\Vert A\Vert_2 A2AFn A2
1 n ∥ A ∥ ∞ ≤ ∥ A ∥ 2 ≤ n ∥ A ∥ ∞ \frac {1}{\sqrt{n}}\Vert A\Vert_\infty\le\Vert A\Vert_2\le\sqrt{n}\Vert A\Vert_{\infty} n 1AA2n A
1 n ∥ A ∥ 1 ≤ ∥ A ∥ 2 ≤ n ∥ A ∥ 1 \frac {1}{\sqrt{n}}\Vert A\Vert_1\le\Vert A\Vert_2\le\sqrt{n}\Vert A\Vert_1 n 1A1A2n A1
其中,F范数的定义为:
∥ A ∥ F = ( ∑ i = 1 n ∑ j = 0 n a i j 2 ) 1 2 \Vert A\Vert_F=(\sum_{i=1}^n \sum_{j=0}^n a_{ij}^2)^{\frac 12} AF=(i=1nj=0naij2)21,可以证明F范数也满足相容性

谱半径

ρ ( A ) = max ⁡ { ∣ λ ∣ : λ ∈ σ ( A ) } \rho(A)=\max\{|\lambda|:\lambda \in\sigma(A)\} ρ(A)=max{λ:λσ(A)},为n阶方阵的谱半径,其中 σ ( A ) \sigma(A) σ(A)表示A特征值的全体.
显然,谱半径就是最大特征根,且有 ∥ A ∥ 2 = ρ ( A T A ) \Vert A\Vert_2=\sqrt{\rho(A^TA)} A2=ρ(ATA)
特别地,当A对称时,还有 ∥ A ∥ 2 = ρ ( A ) \Vert A\Vert_2=\rho(A) A2=ρ(A)
下面给出几个关于谱半径的重要结论:
定理5:对任意一种A的从属范数,有 ρ ( A ) ≤ ∥ A ∥ \rho(A)\le\Vert A\Vert ρ(A)A
定理6:谱半径 ρ ( A ) \rho (A) ρ(A)是A的所有范数的下确界,即:
ρ ( A ) = inf ⁡ μ ∥ A ∥ μ \rho(A)=\inf\limits_{\mu}\Vert A\Vert _{\mu} ρ(A)=μinfAμ
(这个定理的证明比较繁琐,要用到若尔当标准型,感兴趣的朋友可查查资料)
定理7:设 A ∈ R n × n A\in\mathbb R^{n\times n} ARn×n, lim ⁡ k → ∞ A k = 0 \lim\limits_{k\to\infty}A^k=0 klimAk=0的充要条件是 ρ ( A ) < 1 \rho(A)<1 ρ(A)<1.
(这里其实还涉及到矩阵级数的收敛性,篇幅问题就不说明了)

说明

mathor cup临近,下一期估计就要等到月底了。下一期讲讲线性方程组的扰动分析。然后的话,我想了想,追赶法的程序我过两天再上传吧,想要下载的朋友就点我的头像,找找我上传的资源,里面就会有啦。

你可能感兴趣的:(数值分析)