矩形行列の行列式

間違いがあるかもしれません

Rで矩形行列を求める

上へ

    • 定義;

    • ; 行列 (ただし, ) とする. の第成分をとする.

    • この行列式を

    • とする.

    • (i)

    • の場合

    • .

    • (ii)

    • の場合

    • ,

    • ただし

    • はから第行と第列を除いた行列.

    • このように縦長の行列の行列が定義されている. このとき, Rでは, 次のように関数を作ればよい. PDF, Rのスクリプトファイル

    • Rでの矩形行列の定義 #Determinant of rectangular matrix

    • #Isamu Nagai

    • #Jun 1st. 2013

    • Det_for_rec_mat<-function(X){

    • #cat(X,"\n")

    • X<-as.matrix(X)

    • #cat(nrow(X),"\n")

    • if(ncol(X)==nrow(X)){return(det(X))}

    • if(nrow(X) if(ncol(X)==1){

    • return((-1)^(1:nrow(X))%*%X[,1])

    • }

    • else{

    • results<-0

    • for(i in 1:nrow(X)){

    • tempX<-as.matrix(X)

    • #cat("i=",i,",",nrow(tempX),"\n")

    • tempX<-tempX[-i,]

    • tempX<-tempX[,-1]

    • #cat(tempX,"\n")

    • results<-results+(-1)^(i-1)*X[i,1]*Det_for_rec_mat(tempX)

    • }

    • return(-results)

    • }

    • }

    • この色;行列として扱う変換を行う

    • この色;正方行列ならば組み込み関数のdetを使う

    • この色;行数>列数の仮定の下なので, 転置したものを使う

    • この色;列数が1の場合に定義 (i) の処理をするループ

    • この色;列数が2以上の場合に定義 (ii) の処理をする.

    • tempX[-i,]でi行目を消去, tempX[,-1]で1列目を消去している.

    • return(-results);なぜか符号が逆転するので, 修正

参考文献

R-Source 行列の扱い方

R-Source 行列の操作

R-Source 繰り返し文

たらたらたらり。 (覚書)列を削除・R

RWiki Rの関数定義の基本

Mapleでの関数の定義などはこちら

Matlabでの関数の定義などはこちら

トップへ