实验二:奇异值分解法计算广义逆

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

T V N N
其中
S2 Sr 0 0 0 0
S N N
任意矩阵G的广义逆 由于 U ,V 均为正交矩阵,即有
U T U UU T I , V TV VV T I U 1 U T , V 1 V T
所以,由可求得任意矩阵 G 的 Moore-Penrose 广义逆为
奇异值分解定理
设任意M×N阶矩阵G的秩为 Rank(G ) r ,则必 存在一个 M×M 正交矩阵 U ,一个 N×N 正交 矩阵V和一个M×N对角矩阵S,使
T G USV 或 U GV S
T
其中,对角矩阵S的主对角线元素 S1 , S2 ,, Sn 恰有r个非零,且为正的非增序列,称对角元素 S1 , S 2 , , S r为M×N矩阵的奇异值(奇异值分解 1 2 2 名称的来由)。对角元素的平方 S1 , S 2 , , S n 是 对称矩阵GTG的非零本征值。
The solution to the least squares problem is: x( 1)= -0.119048D+01 x( 2)= 0.952381D+00 x( 3)= -0.666667D+00 Mat A++ is: 0.425197D+01 -0.626012D+00 0.851870D+01 -0.980791D-02 0.200492D+01 -0.588283D+01 -0.168396D+01 0.904258D+00 -0.550526D+01 -0.833679D+00 0.742121D+00 -0.342473D+01
且有关系
S i S j , 当i j r S i 0, 当i r S 0, 当j r j
矩阵 G M N的SVD可表示为
G M N S N N U M N 0 ( M N ) N
S1
QR分解法是一种比较好的奇异值分解算法。
程序使用说明
程序共有一个主程序main和三个主要的子程序都存在文件 main1.for中: MAIN— 主要功能有:方程组的初始化,输出系数矩阵及 其广义逆、调用其他子程序计算广义逆法的最小二乘解以 及用逆的逆对方法进行验证。 BMUAV—程序的核心部分,奇异值分解子程序,输入系数 矩阵,输出分解后的U,V, AGMIV—计算广义逆 A 以及方程组的最小二乘解 BGINV—仅计算广义逆A
正交矩阵V的列向量 v j 是对称方阵GTG的本征 向量,U的列向量 u i 是对称方阵GGT的本征向 v j 与奇异值 S i 满足下列关系 ui , 量,
T 2 G Gv S j j v j , ( j 1,2, , N ) T 2 GG u S i i ui , (i 1,2, , M )
Mat A is: 0.100000D+01 0.100000D+01 -0.100000D+01 0.200000D+01 0.100000D+01 0.000000D+00 0.100000D+01 -0.100000D+01 0.000000D+00 -0.100000D+01 0.200000D+01 0.100000D+01 Mat A+ is: -0.476187D-01 0.380953D+00 0.238095D+00 -0.476187D-01 0.238095D+00 0.952378D-01 -0.190476D+00 0.238095D+00 -0.666667D+00 0.333333D+00 0.333333D+00 0.333333D+00
下面说明编译时所要做的初始化工作: 1、首先要输入奇异方程的系数矩阵、右端向量,以及方程的 维数。例如:你要求一个如下4*3阶奇异方程组的解:
1 1 1 2 2 1 0 x1 3 x2 1 1 0 1 x3 1 2 1 4
G VS U


T
其中பைடு நூலகம்S+是对角阵,对角元素为
S i1 (i 1,2, , r )
n
1 Sn S m n n O n ( m n )


m n n S11 1 S 0 2 0 S r1 0 0 0
在 matrix.par参数文件中输入将要求解的方程组的维数、系 数、右端项和计算误差限等,本例中为:
4 3
1 2 1 1 1 -1 0
//4*3维系数矩阵
-1 0 1 //矩阵个元素的值
-1 1
2 -3 1
0.00001
4
//方程的右端项
//计算的误差限
正确输入方程的参数文件后,现在你可以编译运行程序了, 如果没有出什么错误的话,且误差限为0.00001时,上例的 输出结果(此结果保存在result.txt文件中)应该是:
奇异值分解法计算广义逆G+ 奇异值分解(Singular Value DecompositionSVD)属于一种正交分解法。 由正交分解定理,任意矩阵 G M N 可分解为积 M N T 矩阵HRK ,其中R是某种 长方阵,其非 零元素为r阶非奇异的上三角矩阵R11。可以证 明,R11能进一步简化为非奇异对角矩阵。
相关文档
最新文档