奇异值分解法计算广义逆
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
奇异值分解法计算广义逆 线性最小二乘问题的广义逆求解
(丁梁波 整理)
对于任意的n m ⨯方程组:b Ax =
其中⎥⎥
⎥⎦
⎤
⎢⎢⎢⎣⎡=mn m n a a a a A 1111 ⎥⎥⎥⎦
⎤
⎢⎢⎢⎣⎡=n x x x 1 ⎥⎥⎥⎦
⎤
⎢⎢⎢⎣⎡=m b b b 1 如果n m =,只要n 方阵A 非奇异,就有逆阵1-A ,从而得到解b A x 1-=。然而,对于n m ≠的一般情况,A 是长方阵,就没有通常的逆阵。不过它仍然可以有相应于特定方程类型的几种形式的广义逆矩阵,其中适于任何情况的广义逆叫做Penrose 广义逆,记为+A 。于是,方程的解可以为:
b A x +=
由奇异值分解(SVD )可以将A 分解为:
T V U A ∑=
其中U ,V 分别为m ,n 阶正交阵
⎥⎥⎥
⎥⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎢
⎢⎢⎢⎣
⎡=∑001
r σσ
这样A 的广义逆+A 可表示为:
T U V A 1-+∑=
其中
⎥⎦
⎤⎢
⎣⎡∑=∑-
-0001
1
r
⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡=∑---1111r r σσ
这样我们可以看出,完成A 的奇异值分解后,求解A 的广义逆就变得很简单,从
而可以方便地求出方程组的最小二乘解。下面我们说明对矩阵进行奇异值分解的方法和步骤。
通常情况下我们考虑m>n 时矩阵A 的奇异值分解,因为当m 一.用Householder 变换将A 约化为双对角矩阵。具体步骤如下: 1. 以A 的第1列作为v ,取i=1,按下列式子构造Householder 矩阵Q 式中i H 为Q ,为了方便以后的说明我们还用i H 表示 2 /122 ) (1)(12 )(22 )(),,,,0,0(),,,)(,,0,0() 1(∑=++==+=- =m i k k i T m i i i T m i i i i i i T i i i v v v v v v v v v v sign v u u u u I H 其中, 2. 将Q 1左乘A 得到矩阵Q 1 A ,并以Q 1 A 的第1行作为v ,取i=2,按(1)式构造Householder 矩阵H 2, 右乘Q 1A 得到Q 1A H 2。 3. 取Q 1A H 2的第2列为v ,i=2,按(1)式构造Householder 矩阵Q 2,左乘Q 1A H 2,得到Q 2 Q 1A H 2,并将计算Q 2 Q 1将其存入Q 1。 4. 取Q 2 Q 1A H 2的第2行为v ,i=3,按(1)式构造Householder 矩阵H 3,右乘Q 2 Q 1A H 2,得到Q 2 Q 1A H 2 H 3,并将H 2 H 3存入H 2。 5. 依次类推,计算出Q n Q n-1…Q 1AH 2 H 3…H n-1为双对角矩阵,并将Q n Q n-1…Q 1存入到Q 1中,H 2 H 3…H n-1存入到H 2 中。 Q n Q n-1…Q 1AH 2 H 3…H n-1为双对角矩阵记为: ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦ ⎤⎢⎢⎢⎢⎢ ⎢⎢⎢⎢⎣ ⎡=-00 01 3 22 1 n n n B βγβγβγβ 需要注意的是:当n m =时,只计算到Q n-1…Q 1AH 2 H 3…H n-2 二.用原点位移QR 算法进行迭代,计算所有的奇异值,并最终结合(一)计算出出U 和V 。 1. 按下式列旋转矩阵H 0 ⎥⎥ ⎥ ⎥⎥ ⎥⎦ ⎤⎢⎢⎢⎢⎢⎢⎣⎡-=11 0 c s s c H (2) 式中 () ( ) [] 2 /121 2 2 2 1 21222121222 122112 2212142 121//-----+--+-+++==-=+===n n n n n n n n n n r r s r c γ γγβγβγβγβσγβξσβξξξξξ 并将计算BH 0 2. 按下式构造列旋转矩阵 ⎥⎥ ⎥ ⎥⎥ ⎥⎦ ⎤⎢⎢⎢⎢⎢⎢⎣⎡-=11 1 c s s c Q 并计算Q 1 BH 0 3. 构造列旋转矩阵 ⎥⎥ ⎥⎥ ⎥⎥⎥⎥⎦ ⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-=1111 c s s c H 并计算Q 1 BH 0H 1以及H 0H 1 4. 构造列旋转矩阵 ⎥⎥ ⎥⎥ ⎥⎥⎥⎥⎦ ⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-=1112 c s s c Q 并计算Q 2 Q 1 BH 0H 1以及Q 2 Q 1 5. 按类似(3),(4)的方法构造列旋转矩阵,并计算相应的新矩阵Q i …Q 2 Q 1 BH 0H 1 … H i-1, 直 到 i=n , 并 记 1 21 1Q Q Q Q n =, 11011-=n H H H H ,110121 11-==n n H H BH Q Q Q Q B 即11 111BH Q B = 6. 判断B 1的次对角线元素是否在误差范围内可以认为是0,若是则分解完毕,若否,则将B 1作为上面的B 重复步骤1,2,3,4,5,6。直到B k 可以近似看作是对角阵。 即:11111-----=k k k k k k H B Q B 记112211Q Q Q Q k k --=,112211--=k k H H H H 则B k 的对角线元素就是矩阵A 的奇异值,即T V U A ∑=中的∑已经求得,从上面的过程中我们可以将A 按下面的式子进行分解: 21HH QB Q A k = 对比T V U A ∑=,k T T B H H V Q Q U =∑==21, 这样我们就完成了矩阵A 的奇异值分解,由于U 和V 都是正交阵,我们能够得到A 的广义逆+A ,从而可以根据下列公式计算方程组的最小二乘解: b A x +=