rectangular matrixの行列式
; 行列 (ただし, ) とする. の第成分をとする.
この行列式を
とする.
(i)
の場合
.
(ii)
の場合
,
ただし
はから第行と第列を除いた行列.
このように縦長の行列の行列が定義されている. このとき, Matlabでは, 次のように関数を作ればよい. PDF, Matlabファイル
Matlabでの矩形行列の定義 function DetRes=Det_rec_mat(X)
if size(X,1)<size(X,2)
X=X';
end
if size(X,1)==size(X,2)
DetRes=det(X);
elseif size(X,2)==1
clear temp
temp=0;
for i=1:size(X,1)
temp=temp+(-1)^(i-1)*X(i,1);
end
DetRes=temp;
else
clear temp1
temp1=0;
for j=1:size(X,1)
clear tempX
tempX=X;
tempX(j,:)=[];
tempX(:,1)=[];
temp1=temp1+(-1)^(j-1)*X(j,1)*Det_rec_mat(tempX);
end
DetRes=temp1;
end
この色;行数≧列数の仮定の下なので, 転値したものを使う
この色;正方行列ならば組み込み関数のdetを使う
この色;列数が1の場合に定義 (i) の処理をするループ
この色;列数が2以上の場合に定義 (ii) の処理をする.
tempX(j,:)=[];でj行目を消去, tempX(:,1)=[];で1列目を消去している.
参考文献 特になし
Mapleでの関数の定義などはこちら
Rでの関数定義などはこちら