自己動手寫施密特正交化
阿新 • • 發佈:2019-01-03
以上是自己寫的,也可以呼叫scipyimport numpy as np A = np.array([[1,1,0],[0,1,1],[1,0,1]],dtype=float) Q = np.zeros_like(A) m = shape(Q)[0] n = shape(Q)[1] cnt = 0 for a in A.T: u = np.copy(a) for i in range(0, cnt): u -= np.dot(np.dot(Q[:, i].T, a), Q[:, i]) # 減去待求向量在以求向量上的投影 e = u / np.linalg.norm(u) # 歸一化 Q[:, cnt] = e cnt += 1 print Q
from scipy import linalg
A = np.array([[1,1,0],[0,1,1],[1,0,1]])
a = linalg.orth(A)
print array(linalg.orth(A),dtype=float)
print dot(A,A.T)-1
施密特正交化的原理就不在此贅述了,可以自己從網上找一些線性代數的教材看一看,並且自己動手做一下,就可以理解了