det
, nd_det
, invmat
det
: 式, invmat
: リスト
det
および nd_det
は行列 mat の行列式を求める.
invmat
は行列 mat の逆行列を求める. 逆行列は [分母, 分子]
の形で返され, 分母
が行列, 分母/分子
が逆行列となる.
nd_det
は有理数または有限体上の多項式行列の行列式
計算専用である. アルゴリズムはやはり分数なしのガウス消去法だが,
データ構造および乗除算の工夫により, 一般に det
より高速に
計算できる.
[91] A=newmat(5,5)$ [92] V=[x,y,z,u,v]; [x,y,z,u,v] [93] for(I=0;I<5;I++)for(J=0,B=A[I],W=V[I];J<5;J++)B[J]=W^J; [94] A; [ 1 x x^2 x^3 x^4 ] [ 1 y y^2 y^3 y^4 ] [ 1 z z^2 z^3 z^4 ] [ 1 u u^2 u^3 u^4 ] [ 1 v v^2 v^3 v^4 ] [95] fctr(det(A)); [[1,1],[u-v,1],[-z+v,1],[-z+u,1],[-y+u,1],[y-v,1],[-y+z,1],[-x+u,1], [-x+z,1],[-x+v,1],[-x+y,1]] [96] A = newmat(3,3)$ [97] for(I=0;I<3;I++)for(J=0,B=A[I],W=V[I];J<3;J++)B[J]=W^J; [98] A; [ 1 x x^2 ] [ 1 y y^2 ] [ 1 z z^2 ] [99] invmat(A); [[ -z*y^2+z^2*y z*x^2-z^2*x -y*x^2+y^2*x ] [ y^2-z^2 -x^2+z^2 x^2-y^2 ] [ -y+z x-z -x+y ],(-y+z)*x^2+(y^2-z^2)*x-z*y^2+z^2*y] [100] A*B[0]; [ (-y+z)*x^2+(y^2-z^2)*x-z*y^2+z^2*y 0 0 ] [ 0 (-y+z)*x^2+(y^2-z^2)*x-z*y^2+z^2*y 0 ] [ 0 0 (-y+z)*x^2+(y^2-z^2)*x-z*y^2+z^2*y ] [101] map(red,A*B[0]/B[1]); [ 1 0 0 ] [ 0 1 0 ] [ 0 0 1 ]
newmat
, matrix
.
Go to the first, previous, next, last section, table of contents.