我需要使矩阵的所有其他列A
与其列之一正交j
。
我使用以下算法:
# Orthogonalize with selected column
for i in remaining_cols:
A[:,i] = A[:,i] - A[:,j] * np.dot(A[:,i], A[:,j]) / np.sum(A[:,j]**2)
这个想法来自使用 Gram-Schmidt 过程的 QR 分解。
但是由于 Gram-Schmidt 过程,此代码未优化且不稳定。
Numpy 是否提供任何方法来计算这些向量的正交投影?
户主矩阵
听说 Householder Reflector 用在numpy.linalg.qr
. 这将允许我计算一个正交矩阵Q
,以便
Q * A[:,j] = [0 ... 0 1 0 ... 0]
|
j_th coordinate
我只需要忽略这条线j
并乘回Q.T
.
有没有办法用 Numpy 获得 Householder Matrix ?我的意思是不手动编码算法。