noro_matrix

noro_matrix User's Manual

Edition 1.0

May 2008

by Masayuki Noro


$B9TNs1i;;%Q%C%1!<%8(B noro_matrix.rr

$B$3$N%^%K%e%"%k$G$O(B, asir-contrib $B%Q%C%1!<%8$K<}O?$5$l$F$$$k(B, $B9TNs1i;;%Q%C%1!<%8(B `noro_matrix.rr' $B$K$D$$$F2r@b$9$k(B. $B$3$N%Q%C%1!<%8$r;H$&$K$O(B, $B$^$:(B `noro_matrix.rr' $B$r%m!<%I$9$k(B.

[1831] load("noro_matrix.rr");
[2014] 

$B$3$N%Q%C%1!<%8$NH!?t$r8F$S=P$9$K$O(B, $BA4$F(B linalg. $B$r@hF,$K$D$1$k(B.

[2014] linalg.random_mat(3,5);
[ 0 -1 -1 ]
[ -1 3 0 ]
[ -2 -2 4 ]

$B$3$N%^%K%e%"%k$G$O(B, $B4XO"$9$kAH9~$_H!?t$K$D$$$F$b2r@b$9$k(B.

$B9TNs$K4X$9$kH!?t(B

matrix,vector,linalg.unit_mat

matrix(m,n[,listoflist]) :: m$B9T(Bn$BNs$N9TNs$r@8.$9$k(B.
vector(size[,list]) :: $B%5%$%:$,(B size $B$N%Y%/%H%k$r@8.$9$k(B.
linalg.unit_mat(size) :: $B%5%$%:$,(B size $B$NC10L9TNs$r@8.$9$k(B.
return
$B9TNs(B
size
m
n
$B@5@0?t(B
listoflist
$B%j%9%H$N%j%9%H(B
list
$B%j%9%H(B
[1559] matrix(2,3);
[ 0 0 0 ]
[ 0 0 0 ]
[1560] vector(3);
[ 0 0 0 ]
[1561] linalg.unit_mat(3);
[ 1 0 0 ]
[ 0 1 0 ]
[ 0 0 1 ]
[1559] matrix(2,3,[[1,2,3],[4,5,6]]);
[ 1 2 3 ]
[ 4 5 6 ]

linalg.random_mat, linalg.random_rmat, linalg.random_vect

linalg.random_mat(size,bound) :: $B@5J@0?t9TNs$r%i%s%@%`@8.$9$k(B.}
linalg.random_rmat(m,n,bound) :: m $B9T(B n $BNs$N@0?t9TNs$r%i%s%@%`@8.$9$k(B.
linalg.random_vect(size,bound) :: $B@0?t%Y%/%H%k$r%i%s%@%`@8.$9$k(B.
return
$B@0?t(B
number
$B@0?t(B
[1579] linalg.random_mat(3,4);
[ 2 1 -2 ]
[ 0 -2 1 ]
[ 3 1 -2 ]
[1580] linalg.random_rmat(3,5,2);
[ 0 -1 0 0 0 ]
[ 0 -1 0 1 0 ]
[ -1 0 0 -1 1 ]
[1581] linalg.random_vect(3,6); 
[ -3 2 3 ]

invmat

invmat(mat)
:: mat $B$N5U9TNs$r7W;;$9$k(B.
return
$B%j%9%H(B
mat
$B@5J}9TNs(B
[1575] A=linalg.random_mat(4,5);
[ 2 4 3 3 ]
[ 3 0 0 0 ]
[ 0 2 3 -2 ]
[ 2 0 -4 3 ]
[1576] L=invmat(A);
[[ 0 38 0 0 ]
[ -3 -28 63 45 ]
[ 18 16 -36 -42 ]
[ 24 -4 -48 -18 ],114]
[1577] AI=L[0]/L[1]$ AI*A;
[1578] [ 1 0 0 0 ]
[ 0 1 0 0 ]
[ 0 0 1 0 ]
[ 0 0 0 1 ]

det,nd_det

det(mat[,mod])
nd_det(mat[,mod])
:: mat $B$N9TNs<0$r5a$a$k(B.
return
$B<0(B
mat
$B9TNs(B
mod
$BAG?t(B
[91] A=matrix(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]]

generic_gauss_elim

generic_gauss_elim(mat)
:: $B@0?t9TNs$r4JLs$9$k(B.
return
$B%j%9%H(B
mat
$B@0?t9TNs(B
[1600] A=linalg.random_rmat(3,5,2);
[ 0 -1 -1 0 -1 ]
[ 1 0 1 -1 0 ]
[ 1 1 0 0 0 ]
[1601] L=generic_gauss_elim(A);
[[ -1 -1 ]
[ 1 1 ]
[ -1 1 ],2,[ 0 1 2 ],[ 3 4 ]]

$BNc$($P(B, rref $B$r7W;;$9$kH!?t$O<!$N$h$&$K=q$1$k(B.

def my_rref(A)
{
    S = size(A); M = S[0]; N = S[1];
    L = generic_gauss_elim(A);
    B = L[0]; D = L[1]; J = L[2]; K = L[3];
    R = length(J); NR = N-R;
    A1 = matrix(M,N);
    for ( I = 0; I < R; I++ ) {
        A1[I][J[I]] = D;
        for ( L = 0; L < NR; L++ ) A1[I][K[L]] = B[I][L];
    }
    return A1;
}
$B;2>H(B
@fref{matrix vector linalg.unit_mat}

linalg.compute_kernel, linalg.compute_image

linalg.compute_kernel(mat[|rhs=vect])
:: $BM-M}?t9TNs$N3K$N4pDl$r7W;;$9$k(B.
linalg.compute_image(mat)
:: $BM-M}?t9TNs$NA|$N4pDl$r7W;;$9$k(B.
return
$B%j%9%H(B
mat
$BM-M}?t9TNs(B
vect
$BM-M}?t%Y%/%H%k(B
[1643] A=linalg.random_rmat(3,5,3);
[ 2 1 0 1 -1 ]
[ 2 -2 1 0 1 ]
[ 2 1 -1 -1 -1 ]
[1644] linalg.compute_kernel(A);            
[[[ 1 0 -8 4 6 ],0],[[ 0 1 2 -1 0 ],1]]
[1645] linalg.compute_kernel(A|rhs=vector(3,[1,2,3]));
[[ 0 0 8 -5 -6 ],[[[ 1 0 -8 4 6 ],0],[[ 0 1 2 -1 0 ],1]]]
[1646] linalg.compute_image(A);  
[[[ 1 1 1 ],0,(1)*<<0>>],[[ 0 -3 0 ],1,(1)*<<1>>+(-1)*<<0>>],
[[ 0 0 3 ],2,(-3)*<<2>>+(-1)*<<1>>+(1)*<<0>>]]

linalg.minipoly_mat

linalg.minipoly_mat(mat)
:: $BM-M}?t9TNs(B mat $B$N:G>.B?9`<0$r7W;;$9$k(B.
return
$B0lJQ?tB?9`<0(B
mat
$BM-M}?t9TNs(B
[1682] A=linalg.random_mat(3,3);
[ -2 2 -2 ]
[ 0 1 -1 ]
[ 1 -2 -1 ]
[1683] linalg.minipoly_mat(A);  
x^3+2*x^2-x-6
[1684] A^3+2*A^2-A-6*linalg.unit_mat(3);
[ 0 0 0 ]
[ 0 0 0 ]
[ 0 0 0 ]

linalg.jordan_canonical_form,linalg.sample_mat

linalg.jordan_canonical_form(mat)
:: $BM-M}?t@5J}9TNs$N%8%g%k%@%sI8=`7A$r7W;;$9$k(B.
linalg.sample_mat(list)
:: $B;XDj$5$l$?%8%g%k%@%sI8=`7A$r;}$DM-M}?t@5J}9TNs$r@8.$9$k(B.
return
$B%j%9%H(B
mat
$BM-M}?t@5J}9TNs(B
list
$B%8%g%k%@%s%V%m%C%/$N%j%9%H(B
[ 1 -2 0 ]
[ -1 2 1 ]
[ 0 -2 1 ]
[1807] L=linalg.jordan_canonical_form(A);
[[ 2 -2 0 ]
[ -1 0 1 ]
[ 2 -2 -1 ],[[2,1,1],[1,2,1]],[]]
[1808] P=L[0]$T=invmat(P)$PI=T[0]/T[1]$  
[1809] [1810] [1811] PI*A*P;
[ 2 0 0 ]
[ 0 1 1 ]
[ 0 0 1 ]
[1810] A=linalg.sample_mat([[1,2],[1,1],[2,3],[2,1],[2,1]]);
[ 2 0 2 113 14 678 0 0 ]
[ -1 1 -2 -120 -14 -720 0 0 ]
[ -7 0 -13 -840 -105 -5040 0 0 ]
[ 54 54 0 380 0 2268 -54 0 ]
[ 1 0 2 112 16 672 0 0 ]
[ -9 -9 0 -63 0 -376 9 0 ]
[ 1 1 0 7 0 42 1 0 ]
[ 1 1 0 7 0 42 0 2 ]
[1811] L=linalg.jordan_canonical_form(A);
[[ 0 -6 42 0 0 0 2 2 ]
[ 0 6 0 0 0 0 0 -2 ]
[ 42 -294 0 0 0 0 -1 -1 ]
[ 0 0 0 6 0 108 0 0 ]
[ -6 42 48 0 0 0 0 0 ]
[ 0 0 -1 -1 0 -18 0 0 ]
[ 0 0 0 0 0 2 0 0 ]
[ 0 0 0 0 1 0 -2 0 ],[[2,3,1],[2,1,2],[1,2,1],[1,1,1]],[]]
$B;2>H(B
@fref{linalg.minipoly_mat}

Index

Jump to: d - g - i - l - m - n - v

d

  • det
  • g

  • generic_gauss_elim
  • i

  • invmat
  • l

  • linalg.compute_image
  • linalg.compute_kernel
  • linalg.jordan_canonical_form
  • linalg.minipoly_mat
  • linalg.random_mat
  • linalg.random_rmat
  • linalg.random_vect
  • linalg.unit_mat
  • m

  • matrix
  • n

  • nd_det
  • v

  • vector
  • Jump to:

    @vfill @eject


    This document was generated on 23 February 2009 using texi2html 1.56k.