Поделиться
HTML-код
  • Опубликовано: 29 сен 2024

Комментарии • 1

  • @EastWood19802
    @EastWood19802  5 месяцев назад +1

    #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)