グラム・シュミット計算機

グラム・シュミット計算機

2〜4個のベクトルを入力します。各ベクトルは2〜4個の数をカンマで区切ります。すべてのベクトルの成分数をそろえてください。小数点にはドットを使います。

グラム・シュミットの直交化法は、ベクトルの組を、同じ空間を張る互いに垂直なベクトルの組に変換する手法です。成分が2〜4個のベクトルを2〜4個入力し、直交か正規直交かを選ぶと、各射影係数、そこから作られるベクトルu_k、その長さ、単位ベクトルe_kを順に表示します。計算は厳密な分数で行うため、新しい方向を加えないベクトルは丸め誤差に紛れず、一次従属として示されます。

グラム・シュミット計算機の使い方

  1. 1

    ベクトルを入力します

    1行に1つのベクトルを書き、成分をカンマで区切ります(例:1, 1, 0)。ベクトルは2〜4個で、成分の個数(2〜4個)はすべて同じにしてください。小数点にはドットを使い、小数第4位まで入力できます。

  2. 2

    結果の種類を選びます

    正規直交ベクトル(長さ1、小数表示)か、直交ベクトル(小数表示に加え、短く表せる場合は正確な分数も表示)を選びます。

  3. 3

    ステップを確認します

    結果ページには、まず得られた基底、続いて各ステップの射影係数、u_k、その長さの2乗と長さ、e_kが並びます。スキップされたベクトルには一次従属と表示されます。

グラム・シュミットの直交化法の仕組み

ベクトルv_1, v_2, …, v_nに対して、直交ベクトルu_1, u_2, …を1つずつ次のように作ります。

  • u_1 = v_1
  • u_k = v_k - c_k1 u_1 - c_k2 u_2 - ... - c_k,k-1 u_k-1
  • 各射影係数は c_kj = (v_k · u_j) / (u_j · u_j)

射影を引くと、v_kから先に求めたu_jの向きの成分がすべて取り除かれるため、u_kはそれらすべてと垂直になります。各u_kをその長さ |u_k| = √(u_k · u_k) で割ると、長さ1の正規直交ベクトル e_k が得られます。

計算例

v_1 = (1, 1, 0)、v_2 = (1, 0, 1)、v_3 = (0, 1, 1) の場合です。

ステップ 計算 結果
u_1 v_1 (1, 1, 0)
c_21 (v_2 · u_1) / (u_1 · u_1) = 1/2 1/2
u_2 v_2 - 1/2 u_1 (1/2, -1/2, 1)
c_31, c_32 1/2 と 1/3 1/2, 1/3
u_3 v_3 - 1/2 u_1 - 1/3 u_2 (-2/3, 2/3, 2/3)

正規直交ベクトルは e_1 ≈ (0.7071, 0.7071, 0)、e_2 ≈ (0.4082, -0.4082, 0.8165)、e_3 ≈ (-0.5774, 0.5774, 0.5774) です。

一次従属の場合

v_kがそれ以前のベクトルの張る空間に含まれている場合、射影をすべて引くと零ベクトルが残ります。本ツールはすべての数を分数で扱うため、許容誤差を使わずにこれを厳密に判定できます。そのベクトルは一次従属と表示されてスキップされ、後続のベクトルはそれまでに見つかった一次独立なベクトルに対して直交化されます。次元よりベクトルの数が多い場合(たとえば平面上の3つのベクトル)は、少なくとも1つのベクトルが必ず一次従属になります。

このツールで扱える範囲

  • 2〜4個のベクトル、成分は2〜4個で全ベクトル同じ個数、成分の絶対値は1,000,000以下、小数は第4位まで。
  • 直交ベクトルは小数で表示し、短く表せる場合は正確な分数も併記します。単位ベクトルは平方根が必要なので小数のみです。
  • 実数の標準的な内積を使います。複素ベクトル、他の内積、より大きなサイズには対応していません。

よくある質問

直交ベクトルは互いに垂直で、どの2つを選んでも内積が0になります。正規直交ベクトルは直交していて、さらに長さがすべて1です。各直交ベクトルu_kをその長さで割ると、正規直交の組になります。

従属しているベクトルに印を付け、その剰余u_kが零ベクトルになることを説明したうえで、スキップします。それ以降のベクトルは、見つかった一次独立なベクトルに対して直交化されます。結果ページには、入力したベクトルのうち新しい方向を加えたものがいくつあるかも表示されます。

はい、影響します。グラム・シュミットの方法では最初のベクトルの向きを保ち、他のベクトルをそれに合わせて調整するため、順番を変えると得られる直交ベクトルの組も変わります。ただし、どの組も張る空間は同じです。

入力は正確な分数に変換され、射影も丸めずに計算されるので、一次従属を確実に検出できます。直交ベクトルは、読みやすい長さの分数で表せる場合に正確な分数も表示します。単位ベクトルは平方根が必要なため、小数第4位までの小数で表示されます。

入力したベクトルは計算のためにサーバーへ送信され、ステップを進めるときにページのリンクにも追加されるので、計算内容をブックマークしたり共有したりできます。アカウントやプロフィールに保存されることはありません。

関連ツール

このツールは他の言語でも利用できます