LinearAlgebra[Determinant] - 行列の行列式の計算
使い方
Determinant(A, m)
パラメータ
A - 行列
m - (オプション) method=value の形をした等式で、value は algnum, float, fracfree, integer, ipseudo, minor, modular[p], multivar, rational, unifloat, unifloat[x], univar, univar[x] のいずれか; 使用するアルゴリズムの種類
|
説明
|
|
•
|
Determinant(A) 関数は、以下で説明する方法のいずれかを用いることにより A の を計算します。A が anything 以外のデータタイプ値を持つとき、その値は特定の方法を選択するために使われます。そうでなければ、A の成分の型が使用する適切な方法を決めます。
|
•
|
m を以下に述べる任意の等式として、Determinant(A, m) 関数は、(A のデータタイプにかかわらず) この指定された方法に従って、A の行列式を計算します。
|
method=algnum
|
ガウス消去法を用いて、A の成分で定義される代数体上で n x n 行列の行列式を計算します。
|
method=float
|
ガウス消去法を用い、数値成分あるいは複素数値成分をもつ n x n 行列 A の行列式を計算します。
|
method=fracfree
|
割り算を用いないガウス消去法を用いることによって、Z[x1,x2,...,xv] 上で n x n 行列 A の行列式を計算します。
|
method=integer
|
割り算を用いないガウス消去法を用いることによって、Z 上で n x n 行列 A の行列式を計算します。
|
method=ipseudo[list1,list2]
|
整数係数を持つ小行列 A[list1,list2] の擬行列式を計算します。擬行列式は、Rank(A) と等しいサイズを持つ A のすべての小行列の行列式の最大公約数のある正の定数倍として定義されます。計算された擬行列式の大きさは、サイズが Rank(A) である A の小行列のうち少なくとも 1 つの行列式の大きさを決して越えません。返される型は、式列 d, rank, rows, cols, A1inv です。初めに返されるオブジェクトは、小行列 A[list1,list2] の擬行列式です。2 番目は、A のランクです。3 番目は、rank 個の 1 次独立な行を示す整数のリストです。4 番目は、rank 個の 1 次独立な列を示す整数のリストです。5 番目は、小行列 A[list1,list2] の逆行列です。この方法は、呼び出し手順に method=ipseudo[list1,list2] が含まれているときだけ利用できます。(すなわち、この方法は、呼び出し手順で Determinant(A) の形を用いるとアクセスすることができません。)
|
method=minor
|
小行列式の展開を用いることによって、A の行列式を計算します。
|
method=modular[p]
|
割り算を用いないガウス消去法のバリエーションを用いることによって、任意の整数 p を法とする n x n 行列 A の行列式を計算します。 この方法は、呼び出し手順に method=modular[p] が含まれているときだけ利用できます。(すなわち、この方法は、呼び出し手順で Determinant(A) の形を用いてはアクセスすることはできません。)
|
method=multivar
|
割り算を用いないガウス消去法を用いることによって、n x n 行列 A の行列式を計算します。
|
method=rational
|
Q 上あるいは、複素有理体 Q(i) 上で、A の行列式を計算します。
|
method=unifloat or method=unifloat[x]
|
ガウス消去法を用い、R[x] 上で n x n 行列 A の行列式 d を計算します。
|
|
method=unifloat[x] が用いられると、単変数 x を用いて計算を行おうとします。添字が省略されると、行列 A の初めの未知数が単変数名として使用されます。
|
method=univar or method=univar[x]
|
剰余準同型と中国剰余定理の応用を用いて、Z[x] 上の n x n 行列 A の Determinant(A) を計算します。
|
|
method=univar[x] が用いられると、単変数 x を用いて計算を行おうとします。添字が省略されると、行列 A の初めの未知数が単変数名として使用されます。
|
•
|
この関数は LinearAlgebra パッケージの一部ですから、 with(LinearAlgebra) を実行した後にのみ Determinant(..) の形で使うことができます。ただし、長い形の名前 LinearAlgebra[Determinant](..) を使えばいつでもアクセスすることができます。
|
|
|
例
|
|
>
|
with(LinearAlgebra):
M := Matrix(3,[[a],[b,c],[d,e,f]],shape=triangular[lower]);
|
| (2.1) |
| (2.2) |
>
|
R := Matrix([[RootOf(_Z^2+1),1],[1,RootOf(_Z^2+1)]]);
|
| (2.3) |
>
|
Determinant(R,method=algnum);
|
| (2.4) |
>
|
H := HilbertMatrix(5):
Determinant(H,method=float);
|
| (2.5) |
>
|
Determinant(H,method=rational);
|
| (2.6) |
>
|
C := Matrix([[9,8,4],[7,1,3],[5,3,6]],shape=triangular[upper]);
|
| (2.7) |
>
|
Determinant(C,method=modular[10]);
|
| (2.8) |
>
|
V := Matrix([[b,b,b],[b,a,b],[a,b,b]]);
|
| (2.9) |
>
|
Determinant(V,method=multivar);
|
| (2.10) |
|
|