💬 例1:
import numpy as np
# 打印A
def pprint(msg, A):
print("---", msg, "---")
(n,m) = A.shape
for i in range(0, n):
line = ""
for j in range(0, m):
line += "{0:.2f}".format(A[i,j]) + "\t"
print(line)
print("")
# 施密特 由A的逆向量单位向量组成直交基底。
def gramSchmidt(A):
basis = []
for v in A.T:
w = v - sum(np.dot(v,b)*b for b in basis )
if (np.abs(w) > 1e-10).any():
basis.append(w/np.linalg.norm(w))
return np.array(basis).T
print("利用施密特的的直交基底\n")
A = np.array([[3, 1], [2, 2]])
pprint("逆向量", A)
pprint("直交基底", gramSchmidt(A))
B = np.array([[1, 1, 0], [1, 3, 1], [2, -1, 1]])
pprint("逆向量", B)
pprint("直交