Untitled
unknown
python
2 years ago
391 B
6
Indexable
def tridiagonalization(A): m,n = np.shape(A) for k in range(0,m-2): x = A[k + 1 : m, k] size = np.size(x) e1 = np.eye(1,size,0) vk = np.sign(x[0])*scipy.linalg.norm(x)*e1 + x vk = vk/scipy.linalg.norm(vk) A[k+1:m,k:m] = A[k+1:m,k:m] - 2*vk.T@(vk@A[k+1:m,k:m]) A[0:m,k+1:m] = A[0:m,k+1:m] - 2*(A[0:m,k+1:m]@vk.T)@vk return A
Editor is loading...