很多时候矩阵方程不好解
比如
A
x
=
b
Ax = b
Ax=b
普通方法的线性代数做法:
A
−
1
A
x
=
A
−
1
b
A^{-1}Ax = A^{-1}b
A−1Ax=A−1b
因为
A
−
1
A
=
E
A^{-1}A = E
A−1A=E
所以
x
=
A
−
1
b
x = A^{-1}b
x=A−1b
普通方法的python实现:
x = np.linalg.solve(A,b)
可是有时候这样无法解,因为普通方法有局限性,尤其当矩阵A为奇异矩阵时无发用上面的普通方法解绝
用**奇异值分解(SVD分解)方法**:
A = U D V T A = UDV^T A=UDVT
分解完成之后 V 的 最 后 一 列 就 是 A x = 0 的 解 V的最后一列就是Ax=0的解 V的最后一列就是Ax=0的解