R语言:SVD分解求解线性方程组AX=b
当 A A 是方阵时,可以直接用内置函数解,当 不是方阵时,只能求得最小二乘解。
函数svd的用法
svd分解X,使用函数svd,返回一个列表T,顺序是d, u, v。
X=UDV′ X = U D V ′
T <- svd(X)
U <- T$u
D <- T$d
V <- T$v
这里T是list,注意这里的U和V是矩阵,D是向量,想要恢复原矩阵X,需要:
Y <- U %*% diag(D) %*% t(V)
求解方法
问题:求 x x 使得(最小二乘解):
线性方程组形式
对 A