Размер видео: 1280 X 720853 X 480640 X 360
Показать панель управления
Автовоспроизведение
Автоповтор
#Pythonでグラムシュミットの正規直交化法iimport numpy as np# 例題のベクトルa1 = np.array([0, 1], dtype=np.float64)a2 = np.array([1, 1], dtype=np.float64)# Gram-Schmidtの正規直交化def gram_schmidt(vectors): num_vectors = len(vectors) ortho_basis = np.zeros_like(vectors, dtype=np.float64) # Gram-Schmidtのアルゴリズムに基づいて直交化 for i in range(num_vectors): ortho_basis[i] = vectors[i] for j in range(i): # 直交成分を計算して減算 ortho_basis[i] -= np.dot(vectors[i], ortho_basis[j]) / np.dot(ortho_basis[j], ortho_basis[j]) * ortho_basis[j] # 正規化 for i in range(num_vectors): ortho_basis[i] /= np.linalg.norm(ortho_basis[i]) return ortho_basisvectors = np.array([a1, a2], dtype=np.float64)ortho_basis = gram_schmidt(vectors)u1 = ortho_basis[0]u2 = ortho_basis[1]print("u1:", u1)print("u2:", u2)
#Pythonでグラムシュミットの正規直交化法
iimport numpy as np
# 例題のベクトル
a1 = np.array([0, 1], dtype=np.float64)
a2 = np.array([1, 1], dtype=np.float64)
# Gram-Schmidtの正規直交化
def gram_schmidt(vectors):
num_vectors = len(vectors)
ortho_basis = np.zeros_like(vectors, dtype=np.float64)
# Gram-Schmidtのアルゴリズムに基づいて直交化
for i in range(num_vectors):
ortho_basis[i] = vectors[i]
for j in range(i):
# 直交成分を計算して減算
ortho_basis[i] -= np.dot(vectors[i], ortho_basis[j]) / np.dot(ortho_basis[j], ortho_basis[j]) * ortho_basis[j]
# 正規化
for i in range(num_vectors):
ortho_basis[i] /= np.linalg.norm(ortho_basis[i])
return ortho_basis
vectors = np.array([a1, a2], dtype=np.float64)
ortho_basis = gram_schmidt(vectors)
u1 = ortho_basis[0]
u2 = ortho_basis[1]
print("u1:", u1)
print("u2:", u2)