欢迎来到天天文库
浏览记录
ID:31533557
大小:107.50 KB
页数:5页
时间:2019-01-13
《奇异值分解法计算广义逆》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、奇异值分解法计算广义逆线性最小二乘问题的广义逆求解(丁梁波整理)对于任意的方程组:其中如果,只要方阵非奇异,就有逆阵,从而得到解。然而,对于的一般情况,是长方阵,就没有通常的逆阵。不过它仍然可以有相应于特定方程类型的几种形式的广义逆矩阵,其中适于任何情况的广义逆叫做Penrose广义逆,记为。于是,方程的解可以为:由奇异值分解(SVD)可以将分解为:其中U,V分别为m,n阶正交阵这样的广义逆可表示为:其中这样我们可以看出,完成的奇异值分解后,求解5的广义逆就变得很简单,从而可以方便地求出方程组的最小二乘解。下面我们说明对矩阵进行奇异值
2、分解的方法和步骤。通常情况下我们考虑m>n时矩阵的奇异值分解,因为当m3、)式构造Householder矩阵Q2,左乘Q1AH2,得到Q2Q1AH2,并将计算Q2Q1将其存入Q1。4.取Q2Q1AH2的第2行为v,i=3,按(1)式构造Householder矩阵H3,右乘Q2Q1AH2,得到Q2Q1AH2H3,并将H2H3存入H2。5.依次类推,计算出QnQn-1…Q1AH2H3…Hn-1为双对角矩阵,并将QnQn-1…Q1存入到Q1中,H2H3…Hn-1存入到H2中。QnQn-1…Q1AH2H3…Hn-1为双对角矩阵记为:5需要注意的是:当时,只计算到Qn-1…Q1AH2H3…Hn-2二.用原点位移QR算4、法进行迭代,计算所有的奇异值,并最终结合(一)计算出出U和V。1.按下式列旋转矩阵H0(2)式中并将计算BH02.按下式构造列旋转矩阵并计算Q1BH03.构造列旋转矩阵并计算Q1BH0H1以及H0H154.构造列旋转矩阵并计算Q2Q1BH0H1以及Q2Q15.按类似(3),(4)的方法构造列旋转矩阵,并计算相应的新矩阵Qi…Q2Q1BH0H1…Hi-1,直到i=n,并记,,即6.判断B1的次对角线元素是否在误差范围内可以认为是0,若是则分解完毕,若否,则将B1作为上面的B重复步骤1,2,3,4,5,6。直到Bk可以近似看作是对角阵。即5、:记,则Bk的对角线元素就是矩阵A的奇异值,即中的已经求得,从上面的过程中我们可以将A按下面的式子进行分解:对比,,这样我们就完成了矩阵A的奇异值分解,由于U和V都是正交阵,我们能够得到A的广义逆,从而可以根据下列公式计算方程组的最小二乘解:5程序说明:程序共有一个主程序MAIN.FOR和三个主要功能子程序:MAIN.FOR—主要功能有:方程组的初始化,输出系数矩阵及其广义逆、广义逆法的最小二乘解以及逆的逆对方法进行验证。BMUAV.FOR—程序的核心部分,奇异值分解程序,输入系数矩阵,输出分解后的U,V,AGMIV.FOR—计算广6、义逆以及方程组的最小二乘解BGINV.FOR—仅计算广义逆另外还有一个奇异值分解的辅助小程序SSS.FOR5
3、)式构造Householder矩阵Q2,左乘Q1AH2,得到Q2Q1AH2,并将计算Q2Q1将其存入Q1。4.取Q2Q1AH2的第2行为v,i=3,按(1)式构造Householder矩阵H3,右乘Q2Q1AH2,得到Q2Q1AH2H3,并将H2H3存入H2。5.依次类推,计算出QnQn-1…Q1AH2H3…Hn-1为双对角矩阵,并将QnQn-1…Q1存入到Q1中,H2H3…Hn-1存入到H2中。QnQn-1…Q1AH2H3…Hn-1为双对角矩阵记为:5需要注意的是:当时,只计算到Qn-1…Q1AH2H3…Hn-2二.用原点位移QR算
4、法进行迭代,计算所有的奇异值,并最终结合(一)计算出出U和V。1.按下式列旋转矩阵H0(2)式中并将计算BH02.按下式构造列旋转矩阵并计算Q1BH03.构造列旋转矩阵并计算Q1BH0H1以及H0H154.构造列旋转矩阵并计算Q2Q1BH0H1以及Q2Q15.按类似(3),(4)的方法构造列旋转矩阵,并计算相应的新矩阵Qi…Q2Q1BH0H1…Hi-1,直到i=n,并记,,即6.判断B1的次对角线元素是否在误差范围内可以认为是0,若是则分解完毕,若否,则将B1作为上面的B重复步骤1,2,3,4,5,6。直到Bk可以近似看作是对角阵。即
5、:记,则Bk的对角线元素就是矩阵A的奇异值,即中的已经求得,从上面的过程中我们可以将A按下面的式子进行分解:对比,,这样我们就完成了矩阵A的奇异值分解,由于U和V都是正交阵,我们能够得到A的广义逆,从而可以根据下列公式计算方程组的最小二乘解:5程序说明:程序共有一个主程序MAIN.FOR和三个主要功能子程序:MAIN.FOR—主要功能有:方程组的初始化,输出系数矩阵及其广义逆、广义逆法的最小二乘解以及逆的逆对方法进行验证。BMUAV.FOR—程序的核心部分,奇异值分解程序,输入系数矩阵,输出分解后的U,V,AGMIV.FOR—计算广
6、义逆以及方程组的最小二乘解BGINV.FOR—仅计算广义逆另外还有一个奇异值分解的辅助小程序SSS.FOR5
此文档下载收益归作者所有