LinearAlgebra[Eigenvectors] - 行列の固有ベクトルの計算
使い方
Eigenvectors(A, C, imp, o, outopts)
パラメータ
A - 行列; 固有ベクトルを求める行列
C - (オプション) 行列; 一般化固有値問題のための行列
imp - (オプション) BooleanOpt(implicit); 固有多項式の根が陰関数表示の RootOfs または根号を含むことを指定
o - (オプション) output = obj の形をした等式で obj は 'values', 'vectors', 'list' のいずれか、またはこれら名前のうちの 1 個以上を含んでいるリスト ; 結果として得られるオブジェクトのフォーマットを選択
outopts - (オプション) outputoptions[o]=list の形をした等式で o は 'values', 'vectors', 'list' のうちのいずれか 1 つであり、list は結果コンストラクタへ渡すべきオプションを含む; 結果として得られるオブジェクトのコンストラクタオプション
|
説明
|
|
•
|
Eigenvectors(A) コマンドは、最初の要素を A の固有値からなるベクトル V、2 番目の要素を列が A の固有ベクトルである行列 E である式列を返すことによって単純な固有値問題を解きます。E の i 番目の列は返されたベクトル V の i 番目の固有値に対応する です。
|
|
単純な固有値問題において、A が実対称または複素エルミート行列ならば、返される固有値は実数です。
|
•
|
Eigenvectors(..) 関数は単純な固有値問題 A . x = lambda . x と一般化固有値問題 A . x = lambda . C . x を解きます。 固有値 V[i] と零でない固有ベクトル E[1 .. -1, i] は単純な固有値問題に対して A . E[1 .. -1, i] = V[i] . E[1 .. -1, i]、一般化固有値問題に対して A . E[1 .. -1, i] = V[i] . C . E[1 .. -1, i] となるようなものです。
|
•
|
Eigenvectors(A, C) コマンドは一般化固有値問題を解きます。
|
|
一般化固有値問題において、A と C が実対称または複素エルミート行列で C が属性 positive_definite (正定値) を持つならば、返される固有値は実数です。
|
•
|
k > 1 の多重根の固有値では線形独立な固有ベクトルが k より少ないかもしれません。この場合行列は defective (欠落) と呼ばれます。設計により戻される行列は常にフル列次元を持ちます。従って defective の場合では、いくつかの列はゼロで戻されます。そのためこれらは固有ベクトルではありません。output=list,オプションにより固有ベクトルのみが戻されます。更なる情報は LinearAlgebra[JordanForm] および LinearAlgebra[SchurForm]を参照ください。
|
•
|
A の固有ベクトルが返されるフォーマットはパラメータ o によって決定されます。デフォルトでは、式列は上に述べられたように返されます。 output が list として指定されている場合には、 リストのリストが返されます。それぞれの部分リストの最初の要素は固有値で、2番目の要素はその重複度、そして3番目の要素はその固有値に対応する1次独立な固有ベクトルの集合です。
|
•
|
outopts オプションは結果を作成する Matrix または Vector コンストラクタに付加情報 (readonly, shape, storage, order, datatype, attributes) を与えます。
|
|
outopts が outputoptions[values] = list として指定されているとき、list の要素は固有値の結果を構築するときに Vector コンストラクタに渡されます。 outopts が outputoptions[vectors] = list として指定されると、list の要素は固有ベクトルの結果を構築するときに Matrix コンストラクタに渡されます。
|
•
|
この関数は LinearAlgebra パッケージの一部ですから、コマンド with(LinearAlgebra) を実行した後にのみ Eigenvectors(..) の形で使うことができます。ただし、長い形の名前 LinearAlgebra[Eigenvectors](..) を使えばいつでもアクセスすることができます。
|
|
|
例
|
|
>
|
with(LinearAlgebra):
A := <<-1,-3,-6>|<3,5,6>|<-3,-3,-4>>;
|
| (2.1) |
>
|
(v, e) := Eigenvectors(A);
|
| (2.2) |
>
|
A . e[1..-1,2] = v[2] . e[1..-1,2];
|
| (2.3) |
>
|
B := <<1,2,3>|<2,4,6>|<5,10,15>>;
|
| (2.4) |
>
|
Eigenvectors(B, output='list');
|
| (2.5) |
>
|
M := Matrix([[6.,8.,5.],[8.,8.,9.],[5.,9.,6.]], datatype = float):
N := Matrix([[6.,3.,3.],[3.,8.,8.],[3.,8.,9.]], datatype = float):
Eigenvectors(M,N,output=['vectors', 'values']);
|
| (2.6) |
|
|