线性方程组直接解法的误差分析

线性方程组的直接解法参考: 线性方程组的直接解法

​病态方程组

由于计算机舍入误差,在求解方程组 A x = b Ax=b Ax=b时总会有误差,实际上是在求解 ( A + δ A ) ( x + δ x ) = b + δ b (A+\delta A)(x+\delta x)=b+\delta b (A+δA)(x+δx)=b+δb
有时方程组的解对于系数矩阵和右端向量的扰动非常敏感,此时称为病态方程组

矩阵范数

一个线性映射 A : X → Y A:X\rightarrow Y AXY称为有界的,是指存在常数 C > 0 , s . t . ∀ x ∈ X , ∣ ∣ A x ∣ ∣ Y ≤ C ∣ ∣ x ∣ ∣ X C>0,s.t. \forall x\in X,||Ax||_Y\le C||x||_X C>0,s.t.∀xX,∣∣AxYC∣∣xX,对于有界线性算子 A A A可以定义: ∣ ∣ A ∣ ∣ : = s u p ∣ ∣ x ∣ ∣ X = 1 ∣ ∣ A x ∣ ∣ Y < + ∞ ||A||:=sup_{||x||_X=1}||Ax||_Y<+ \infty ∣∣A∣∣:=sup∣∣xX=1∣∣AxY<+ 为算子 A A A的范数

可以证明
几种常见矩阵范数的表达式

矩阵条件数

讨论加入扰动后方程可解性: A + δ A = A ( I + A − 1 δ A ) A+\delta A=A(I+A^{-1}\delta A) A+δA=A(I+A1δA)

引理:
∣ ∣ B ∣ ∣ < 1 ||B||<1 ∣∣B∣∣<1,则 I ± B I\pm B I±B可逆,且 ( I ± B ) − 1 ≤ 1 1 − ∣ ∣ B ∣ ∣ (I\pm B)^{-1}\le\frac{1}{1-||B||} (I±B)11∣∣B∣∣1

证明:反证法

定理:
d e t A ≠ 0 , b ≠ 0 , ∣ ∣ A − 1 ∣ ∣ ∣ ∣ δ A ∣ ∣ < − 1 det A\ne0,b\ne0,||A^{-1}||||\delta A||<-1 detA=0,b=0,∣∣A1∣∣∣∣δA∣∣<1,则有
∣ ∣ δ x ∣ ∣ ∣ ∣ x ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ∣ ∣ A − 1 ∣ ∣ 1 − ∣ ∣ A ∣ ∣ ∣ ∣ A − 1 ∣ ∣ ∣ ∣ δ A ∣ ∣ ∣ ∣ A ∣ ∣ ( ∣ ∣ δ A ∣ ∣ ∣ ∣ A ∣ ∣ + ∣ ∣ δ b ∣ ∣ ∣ ∣ b ∣ ∣ ) \frac{||\delta x||}{||x||}\le \frac{||A|| ||A^{-1}||}{1-||A||||A^{-1}||\frac{||\delta A||}{||A||}}( \frac{||\delta A||}{||A||}+\frac{||\delta b||}{||b||}) ∣∣x∣∣∣∣δx∣∣1∣∣A∣∣∣∣A1∣∣∣∣A∣∣∣∣δA∣∣∣∣A∣∣∣∣A1∣∣(∣∣A∣∣∣∣δA∣∣+∣∣b∣∣∣∣δb∣∣)

由此可以看到,舍入误差可能会被放大 ∣ ∣ A ∣ ∣ ∣ ∣ A − 1 ∣ ∣ ||A|| ||A^{-1}|| ∣∣A∣∣∣∣A1∣∣倍,定义矩阵条件数

d e t A ≠ 0 detA\ne0 detA=0,令 c o n d ( A ) = ∣ ∣ A ∣ ∣ ⋅ ∣ ∣ A − 1 ∣ ∣ cond(A)=||A||·||A^{-1}|| cond(A)=∣∣A∣∣∣∣A1∣∣称为矩阵 A A A条件数

条件数越大,线性方程越病态

那么找到一个解 x ^ \hat{x} x^,当 r = b − A x ^ r=b-A\hat{x} r=bAx^很小时,是否可以说明 x ^ \hat{x} x^是线性方程组一个很好的近似?
答案是不可以!

后验误差误差估计定理:
1 c o n d ( A ) ∣ ∣ r ∣ ∣ ∣ ∣ b ∣ ∣ ≤ ∣ ∣ x − x ^ ∣ ∣ ∣ ∣ x ∣ ∣ ≤ c o n d ( A ) ∣ ∣ r ∣ ∣ ∣ ∣ b ∣ ∣ \frac{1}{cond(A)}\frac{||r||}{||b||}\le\frac{||x-\hat{x}||}{||x||}\le cond(A)\frac{||r||}{||b||} cond(A)1∣∣b∣∣∣∣r∣∣∣∣x∣∣∣∣xx^∣∣cond(A)∣∣b∣∣∣∣r∣∣

如何改善近似解

当矩阵条件数不是太大,可以用如下迭代法来改善:

  1. r 0 = b , k = 1 r_0=b,k=1 r0=b,k=1
  2. 用直接解法解线性方程组 A x k = r k − 1 Ax_k=r_{k-1} Axk=rk1
  3. 获取残差 r k = b − A x k r_k=b-Ax_k rk=bAxk
  4. ∣ ∣ r k ∣ ∣ > ϵ ||r_k||>\epsilon ∣∣rk∣∣>ϵ k + = 1 k+=1 k+=1,返回1,否则输出 x = x k x=x_k x=xk

通常按照上述方法迭代几次可以提高几位有效数字,但是如果矩阵条件数太大,此方法无效。如果条件数太大,需要对原矩阵做一些处理,以期降低其条件数,思路:
找到矩阵 P , Q P,Q P,Q,
原线性方程组可以修改为 P A Q Q − 1 x = P b PAQQ^{-1}x=Pb PAQQ1x=Pb,令 P A Q = A ~ , P b = b ~ PAQ=\tilde{A},Pb=\tilde{b} PAQ=A~,Pb=b~,使得 c o n d ( A ~ ) ≪ c o n d ( A ) cond(\tilde{A})\ll cond(A) cond(A~)cond(A)
为了简化计算,通常选择较简单形式的 P , Q P,Q P,Q,如上下三角阵、对角阵…

行平衡当矩阵元素之间量级差较大,像上述例题中使用的行平衡、列平衡方法有效,但是当差距不大时收效甚微,如Hilbert矩阵

正则化方法

俄国数学家Tikhonov提出了一种正则化方法,利用矩阵奇异值分解来进行。
问题:线性方程组舍入误差的根源是什么?

A ∈ C m × n A\in C^{m\times n} ACm×n,我们有 M = A T A ∈ C n × n M=A^TA\in C^{n\times n} M=ATACn×n为半正定矩阵,设其特征值为 μ 1 2 , μ 2 2 , . . . , μ n 2 \mu_1^2, \mu_2^2,...,\mu_n^2 μ12,μ22,...,μn2,设 μ 1 ≥ μ 2 ≥ . . . ≥ μ n \mu_1\ge \mu_2\ge...\ge \mu_n μ1μ2...μn,称为 A A A的奇异值

对非方阵的矩阵 A A A,设其秩为 r r r,则 μ 1 ≥ μ 2 ≥ . . . ≥ μ r + 1 = . . . = μ n = 0 \mu_1\ge\mu_2\ge...\ge\mu_{r+1}=...=\mu_n=0 μ1μ2...μr+1=...=μn=0。存在奇异值分解 A = V D U T A=VDU^T A=VDUT

在这里插入图片描述在这里插入图片描述易知 A x = b Ax=b Ax=b要有解,则 ( b , v i ) = 0 , ∀ i > r + 1 (b,v_i)=0,\forall i>r+1 (b,vi)=0,i>r+1
b = ∑ j = 1 r ( b , v j ) v j b=\sum_{j=1}^{r}(b,v_j)v_j b=j=1r(b,vj)vj
同理, x = ∑ j = 1 n ( x , u j ) u j x=\sum_{j=1}^n(x,u_j)u_j x=j=1n(x,uj)uj
A x = ∑ j = 1 n ( x , u j ) A u j = ∑ j = 1 r μ j ( x , u j ) v j = ∑ j = 1 r ( b , v j ) v j Ax=\sum_{j=1}^n(x,u_j)Au_j=\sum_{j=1}^r\mu_j(x,u_j)v_j=\sum_{j=1}^{r}(b,v_j)v_j Ax=j=1n(x,uj)Auj=j=1rμj(x,uj)vj=j=1r(b,vj)vj
x = ∑ j = 1 r 1 μ j ( b , v j ) u j x=\sum_{j=1}^r\frac{1}{\mu_j}(b,v_j)u_j x=j=1rμj1(b,vj)uj
由此可知,当 μ j ≪ 1 \mu_j\ll1 μj1时,存在较大的舍入误差
病态条件: c o n d ( A ) 2 = μ 1 μ n ≥ 1 cond(A)_2=\frac{\mu_1}{\mu_n}\ge1 cond(A)2=μnμ11,由 μ 1 ∼ O ( 1 ) \mu_1\sim O(1) μ1O(1),则 μ n ≪ 1 \mu_n\ll1 μn1
因此,较大的矩阵条件数可以推出存在远小于1的奇异值,而在求解方程解时由于出现1除以一个远小于1的数这一运算操作,导致了该线性方程组的求解存在较大的舍入误差的现象

吉洪诺夫正则化方法

采用近似解: x = ∑ j = 1 r μ j α + μ j 2 ( b , v j ) u j x=\sum_{j=1}^r\frac{\mu_j}{\alpha+\mu_j^2}(b,v_j)u_j x=j=1rα+μj2μj(b,vj)uj
在这里插入图片描述使用吉洪诺夫正则化方法存在两种误差:舍入误差和 α \alpha α的近似误差,在实际操作中是一个trade-off的的问题,一般取 α ∼ δ 2 3 \alpha\sim\delta^{\frac{2}{3}} αδ32,其中 δ \delta δ表示机器的舍入误差。

除了吉洪诺夫正则化方法,还有其他的方法,包括在这个式子中 x = ∑ j = 1 r 1 μ j ( b , v j ) u j x=\sum_{j=1}^r\frac{1}{\mu_j}(b,v_j)u_j x=j=1rμj1(b,vj)uj直接舍弃小于一定阈值的奇异值对应的项等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值