Orthogonalize

Orthogonalize[{v1,v2,}]

ベクトル viを直交させることによって見付かる正規直交基底を返す.

Orthogonalize[{e1,e2,},f]

内積関数 f と要素 eiを直交させることで求まる直交基底を返す.

詳細とオプション

  • Orthogonalize[{v1,v2,}]は,内積として通常のスカラー積を用いる.
  • Orthogonalizeの出力は常に入力と同じ数のベクトルを含んでいる.入力ベクトルの中に線形非従属ではないものがある場合,出力にはゼロベクトルが含まれる.
  • 出力中の非ゼロベクトルはすべて単位長に正規化される.
  • 内積関数 f は,eiの線形結合のペアに適用される.
  • eif が常に実数の結果を与える任意の式でよい. »
  • Orthogonalize[{v1,v2,},Dot]は,実質的に viの要素はすべて実数であるとみなす. »
  • Orthogonalizeはデフォルトでグラム・シュミット(GramSchmidt)基底を生成する.
  • Methodオプションの設定値を変えることで,他の基底を得ることができる.可能な設定値には"GramSchmidt""ModifiedGramSchmidt""Reorthogonalization""Householder"等がある.
  • Orthogonalize[list,Tolerance->t]は相対的なノルムが t よりも下になるゼロ要素に設定する.

例題

すべて開くすべて閉じる

  (3)

2つの3Dベクトルのスパンのための正規直交基底を求める:

3つの3Dベクトルから正規直交基底を構築する:

結果が正規直交であることを確認する:

記号項目を含むベクトルを直交化する:

スコープ  (13)

基本的な用法  (6)

機械精度ベクトルの集合を直交させる:

複素ベクトルを直交させる:

厳密ベクトルを直交させる:

任意精度ベクトルを直交させる:

記号ベクトルを直交させる:

abが実数であると仮定して結果を簡約する:

大きい数値行列は効率的に扱われる:

特殊行列  (4)

疎な行列の行を直交させる:

構造化行列の行を直交させる:

対角ベクトルを直交させると別の対角行列になる:

HilbertMatrixを直交させる:

一般的な内積  (3)

すべての変数が実数であると仮定して記号基底を求める:

明示的な内積を使ってリストではないベクトルを直交させる:

純関数を使って内積を指定する:

オプション  (3)

Tolerance  (1)

許容点以下では,2つのベクトルは線形に非依存だとは認識されない:

Method  (2)

mはほぼ線形従属の1組のベクトルを形成する:

デフォルトのアルゴリズムについて正規直交性からの偏差:

すべてのアルゴリズムについての偏差:

大規模数値行列の場合は,一般に自記法が最速である:

アプリケーション  (12)

幾何学  (3)

ベクトル をベクトルとベクトルでスパンされた平面上に射影する:

と同じ空間をスパンする正規直交基底を構築する:

平面への射影は への射影の和である:

平面に垂直な成分を求める:

を平面の法線に射影することで結果を確認する:

平面,ベクトル,その平行成分と垂直成分を可視化する:

フレネ・セレ(FrenetSerret)の系はすべての空間曲線の特性をベクトル基底とスカラー関数で符号化する.次の曲線について考える:

Orthogonalizeを使って最初の3つの導関数から正規直交基底を構築する:

基底が必ず右手系であるようにする:

曲線の曲がり方を数量化する曲率 とねじれ を計算する:

FrenetSerretSystemを使って答を確かめる:

曲線と関連付けられた枠とも呼ばれる移動基底を可視化する:

ベクトル の3つのベクトルでスパンされた空間への正射影を求める:

まず,空間の正規直交基底を構築する:

空間の成分はsum_(i=1)^3 TemplateBox[{{(, {(, {e, _, i}, )}}}, Conjugate].v )e_iで与えられる:

の空間内の任意のベクトルに対して垂直である:

最小二乗と曲線のフィット  (3)

線形系 に解がない場合,最良の近似解は最小二乗解である.それは の解である.ただし, の列空間への の正射影である.次の について考える:

線形系には一貫性がない:

の列によってスパンされた空間の正規直交基底を求める:

によってスパンされた空間への の正射影 を計算する:

へのその射影 を可視化する:

を解く:

LeastSquaresを使って結果を確認する:

Orthogonalizeを使ってデータに最もフィットする曲線が求められる.次のデータについて考える:

の座標をデータから抽出する:

TemplateBox[{{{m, ., {{, {a, ,, b}, }}}, -, y}}, Norm]を最小にすることが直線 にフィットさせることになるように, に列 があるとする:

線形最小二乗フィットの係数 を得る:

Fitを使って係数を確認する:

最もフィットする曲線をデータとともにプロットする:

次のデータに最もフィットする放物線を求める:

の座標をデータから抽出する:

TemplateBox[{{{m, ., {{, {a, ,, b, ,, c}, }}}, -, y}}, Norm]を最小化することが にフィットさせることになるように, に列 があるとする:

と同じ列空間を持つ正規直交ベクトル を構築する:

最小二乗フィットの係数 を得る:

Fitを使って係数を確認する:

最もフィットする曲線をデータとともにプロットする:

行列分解  (2)

次の行列 の列空間の正規直交基底を求め.その基底を使って のQR分解を求める:

グラム・シュミットを の列に適用し,次に列がそれらのベクトルである行列として を定義する:

R=TemplateBox[{Q}, Transpose].a とする:

であることを確認する:

QRDecompositionが与える結果と比較する. 行列は同じである:

QRDecompositionは行正規直交の結果を与えるので, 行列は転置の分だけ違っている:

エルミート行列(より一般的には,任意の正規行列)の固有ベクトルは直交ベクトルであり,射影行列は p_k=TemplateBox[{{{, {e, _, k}, }}}, Transpose].TemplateBox[{{{, {e, _, k}, }}}, Conjugate]と定義するのが慣習的である.ただし,は正規化された固有ベクトルである.一般的なベクトルへの射影行列の作用が次の行列 の固有空間にベクトルを射影することと同じであることを示す:

がエルミート行列であることを確かめる:

固有値と固有ベクトルを求める:

は異なる固有空間から来ているので,どちらも に直交する:

両者は同じ固有値を持つので,互いに直交である必要はなく,直交してもいない:

Orthogonalizeを使って から正規直交基底を作成する:

射影行列を計算する:

一般的なベクトルに を掛けると へのベクトルの射影と等しくなることを確認する:

は正規直交基底を形成するので,の和は恒等行列でなければならない:

さらに,の和はもとの行列 である:

一般的な内積と関数空間  (4)

正定値対称実行列または測度 によって内積を定義する:

正定値であることは関連付けられた二次形式 について正であることを意味する:

Dot自体が恒等行列に関連付けられた内積である点に注意のこと:

TemplateBox[{}, Reals]^nの標準基底を直交化して正規直交基底を得る:

この基底が内積に関して正規直交であることを確認する:

フーリエ級数は内積空間 における正規直交基底への射影である.自乗可積分関数上の標準的な内積を定義する:

この内積内のの形の直交化関数:

FourierParameters{0,1}に対応する対称フーリエ係数に等しい:

FourierCoefficientを使って確認する:

フーリエ級数は でスパンされた空間への の射影である:

FourierSeriesを使って結果を確認する:

LegendrePは直交多項式族を内積 について定義する. が0から4までのときに多項式 を直交化して最初のルジャンドル多項式のスカラー倍数を計算する:

従来のルジャンドル多項式を比較する:

について TemplateBox[{k, x}, LegendreP]倍違っている:

HermiteHは直交多項式族を内積<f,g>=int_(-infty)^inftyTemplateBox[{{ , f}}, Conjugate] g exp(-x^2)dx について定義する.正規化されていないグラム・シュミット過程を多項式 は0から4まで)に適用して最初の5つのエルミート多項式のスカラー倍数を計算する:

を従来のエルミート多項式と比較する:

について TemplateBox[{k, x}, LegendreP]は定数倍数分異なる:

特性と関係  (9)

線形独立ベクトルについて,結果は正規直交集合である:

これは任意の内積に拡張される:

線形独立の ベクトルについて,結果はユニタリ行列である:

ベクトルが実数値なら,行列はさらに正規直交でもある:

入力ベクトルが線形独立ではないなら,結果は零ベクトルで長さが揃うように充填される:

Orthogonalize[vecs]の結果なら,u.TemplateBox[{u}, ConjugateTranspose]は対角行列である:

対角上には0と1しかない:

対角上の0は結果の零ベクトルに対応する:

次元では,正規直交基底には最高で 個の要素がある:

ランダムな 次元のベクトル集合のほとんどは,厳密に 基底ベクトルだけスパンされる:

デフォルトのメソッドでは,基底の最初の要素は常に最初のベクトルの倍数である:

OrthogonalizeProjectionNormalizeを繰り返し適用することで実装できる:

Orthogonalize[m]QRDecomposition[Transpose[m]]に関連する:

両者は符号まで同じである:

Wolfram Research (2007), Orthogonalize, Wolfram言語関数, https://reference.wolfram.com/language/ref/Orthogonalize.html.

テキスト

Wolfram Research (2007), Orthogonalize, Wolfram言語関数, https://reference.wolfram.com/language/ref/Orthogonalize.html.

CMS

Wolfram Language. 2007. "Orthogonalize." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Orthogonalize.html.

APA

Wolfram Language. (2007). Orthogonalize. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Orthogonalize.html

BibTeX

@misc{reference.wolfram_2024_orthogonalize, author="Wolfram Research", title="{Orthogonalize}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/Orthogonalize.html}", note=[Accessed: 17-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_orthogonalize, organization={Wolfram Research}, title={Orthogonalize}, year={2007}, url={https://reference.wolfram.com/language/ref/Orthogonalize.html}, note=[Accessed: 17-November-2024 ]}