您的位置:首页 > 其它

SVD解线性方程组(非齐次)

2018-03-21 15:36 1041 查看
    对于任一给定的矩阵A(m * n),都存在这样的分解:
    


    其中, U是一个m * m的酉矩阵,S是一个m * n的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值, V是一个n * n的酉矩阵。

求解解线性方程组

    Ax=b
    svd(A) = USV',令X=V'x,B=U'b,则有SX=B,由于S是对角阵,可轻易求出X,又由于V是正交阵,则x=VX,故而方程组得以解出。

    Ax= b
    




    [U,S,V]=svd(A)

    




    


     B = U'b
    


    此时令SX=B,X易求出为X[i]=B[i]/S[i,i]

    




    则x=VX

    


    最终可以验证,x是Ax=b的解

    


SVD的一些性质

    对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。也就是说:

    


    其中k要比n小很多,V是n*k维,其转置为k*n维。

    还以上例为例,上例中S以是按大到小排列,故此处直接取U的前两列,即U1(4,2),S取左上角,即S1(2,2),取V的前两列,即V1(3,2),否则要按对应关系取
    






    B1 = U1' * b

    


     此时令S1*X1=B1,由于S1是对角阵,故而X1易求出为X1[i]=B1[i]/S1[i,i]

    




     则x = V1 * X1

    


    最终可以验证,x是Ax=b的近似解

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SVD 解方程组 降维