Untitled
unknown
python
3 years ago
391 B
8
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 AEditor is loading...