DetL_JPH {lazy.symbolic} | R Documentation |
ラプラス展開による記号行列の行列式
Description
英語のヘルプファイル: DetL
Arguments
A |
正方行列(数値または記号) |
row |
ラプラス展開に用いる行番号 |
col |
ラプラス展開に用いる列番号 |
maxlevel |
再帰呼び出しの深さ |
simplify |
= 0 の場合、Simplify や remove_paren を使用しない |
debug |
= 1 の場合、詳細を表示 |
level |
変更しないこと |
Details
ラプラス展開は以下のように定義されます:
DetL(A) = \sum_{j=1}^n A[i,j] x cofactor(A,i,j) cofactor(A,i,j) = (-1)^{i+j} DetL( A[-i,-j] )
ここで DetL( A[-i,-j] ) は A の小行列 M(i,j) と呼ばれます。
Value
行列 A の行列式
Examples
# 2 x 2 行列の行列式
Aa2 <- demomat(2,2,root="a")
DetL(Aa2)
# 三角行列
L=demomat(4,4,root="L", shape="lowert")
DetL(L, maxlevel=3)
U=demomat(4,4,root="U", shape="uppert")
DetL(U, maxlevel=3)
# 3 x 3 行列
Aa3 <- matrix(letters[1:9],3,3,byrow=1)
# 2 次小行列を用いた場合
DetL(Aa3)
DetL(Aa3, row=2)
# 完全なラプラス展開
( d1 <- DetL(Aa3, maxlevel=2) )
( d2 <- DetL(Aa3, row=2, maxlevel=2) )
( d3 <- DetL(Aa3, row=NULL, col=1, maxlevel=2) )
# 数値による検算
set.seed(1701)
An <- matrix( runif(9), 3, 3 )
Printm(det(An))
Printm( Eval(d1, Aa3=An), Eval(d2, Aa3=An), Eval(d3, Aa3=An) )
# MatSwp を使う Det 関数との比較
( d4 <- Det(Aa3) )
Printm( Eval(d4, Aa3=An) )
# 4 x 4 行列
Aa4 <- matrix(letters[1:16],4,4,byrow=1)
DetL(Aa4)
# 以下では A2 は第1レベルの部分行列を表す。
# すべての A2 が同じではないことに注意。
DetL(Aa4, maxlevel=2)
DetL(Aa4, maxlevel=3)
# 一般の n x n の場合(n が大きいと遅い)
n <- 4
( B <- demomat(n,n,root="b") )
( dd <- DetL(B, maxlevel=n) )
# 数値による検算
set.seed(1701)
Bn <- matrix( runif(n*n) ,n )
Printm( Eval(dd,B=Bn), det(Bn) )
[Package lazy.symbolic version 1.0.0.20250830 ]