LinearAlgebra[GramSchmidt] - ベクトルの直交系の計算
使い方
GramSchmidt(V, c, n, outopts)
パラメータ
V - ベクトルの集合またはリスト
c - (オプション) BooleanOpt(conjugate)
n - (オプション) BooleanOpt(normalized)
outopts - (オプション) outputoptions = list の形をした等式; 結果として得られるオブジェクトのコンストラクタオプション
|
説明
|
|
•
|
GramSchmidt(V) 関数は Gram-Schmidt の直交化法を用いて直交するベクトルの集合やリストを計算します。V が空のリストまたは集合ならば、GramSchmidt(V) はそれぞれ空のリストまたは集合を返します。
|
•
|
返されるベクトルの個数は V によって張られるベクトル空間の次元です。特に、V の中のベクトルが線形独立でなければ、V の中より少ない数のベクトルが返されます。
|
•
|
V の中のすべてのベクトルの次元と向きは同じでなければなりません。
|
•
|
conjugate オプション (c) はデフォルトで true です。conjugate=false が呼び出し手順に含まれていると、内積の計算において2番目のベクトルの要素の共役をとりません。
|
•
|
normalized オプション (n) はデフォルトで false です。normalized=true が呼び出し手順の中に含まれていたら、この関数はベクトルの正規直交集合またはリストを返します。
|
|
normalized=true という条件は normalized と略記することができます。
|
•
|
outputoptions オプション (outopts) は結果を作成する Vector コンストラクタに付加情報 (readonly, shape, storage, order, datatype, attributes) を与えます。 outputoptions が呼び出し手順に指定されていれば、それぞれの結果として得られるベクトルは指定された同じオプションを持ちます。
|
•
|
この関数は LinearAlgebra パッケージの一部ですから、コマンド with(LinearAlgebra) を実行した後にのみ GramSchmidt(..) の形で使うことができます。ただし、長い形の名前 LinearAlgebra[GramSchmidt](..) を使えばいつでもアクセスすることができます。
|
|
|
例
|
|
>
|
with(LinearAlgebra):
w1 := <2,1,0,-1>:
w2 := <1,0,2,-1>:
w3 := <0,-2,1,0>:
ord := GramSchmidt([w1,w2,w3]);
|
| (2.1) |
>
|
DotProduct(ord[2],ord[3]);
|
| (2.2) |
>
|
DotProduct(ord[1],ord[3]);
|
| (2.3) |
>
|
GramSchmidt({w1,w2,w3},normalized);
|
| (2.4) |
>
|
GramSchmidt([ <1|b>, <1|0> ]);
|
| (2.5) |
>
|
GramSchmidt([ <1|b>, <1|0> ], conjugate=false);
|
| (2.6) |
|
|