=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/doc/noro_matrix/noro_matrix-ja.texi,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM/src/asir-contrib/packages/doc/noro_matrix/noro_matrix-ja.texi 2008/05/18 07:37:43 1.1 +++ OpenXM/src/asir-contrib/packages/doc/noro_matrix/noro_matrix-ja.texi 2009/05/07 06:13:22 1.2 @@ -1,5 +1,5 @@ -%comment $OpenXM$ -%comment --- $B$*$^$8$J$$(B --- +%comment $OpenXM: OpenXM/src/asir-contrib/packages/doc/noro_matrix/noro_matrix-ja.texi,v 1.1 2008/05/18 07:37:43 noro Exp $ +%comment --- おまじない --- \input texinfo @iftex @catcode`@#=6 @@ -10,18 +10,18 @@ @overfullrule=0pt @c -*-texinfo-*- @comment %**start of header -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り --- -@comment --- GNU info $B%U%!%$%k$NL>A0(B --- +@comment --- GNU info ファイルの名前 --- @setfilename asir-contrib-noro_matrix -@comment --- $B%?%$%H%k(B --- +@comment --- タイトル --- @settitle noro_matrix @comment %**end of header @comment %@setchapternewpage odd -@comment --- $B$*$^$8$J$$(B --- +@comment --- おまじない --- @ifinfo @macro fref{name} @ref{\name\,,@code{\name\}} @@ -33,9 +33,9 @@ @end iftex @titlepage -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り --- -@comment --- $B%?%$%H%k(B, $B%P!<%8%g%s(B, $BCx(B, $BCx:n8"I=<((B --- +@comment --- タイトル, バージョン, 著者名, 著作権表示 --- @title noro_matrix @subtitle noro_matrix User's Manual @subtitle Edition 1.0 @@ -48,56 +48,56 @@ Copyright @copyright{} Masayuki Noro 2008. All rights reserved. @end titlepage -@comment --- $B$*$^$8$J$$(B --- +@comment --- おまじない --- @synindex vr fn -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り --- -@comment --- @node $B$O(B GNU info, HTML $BMQ(B --- -@comment --- @node $B$N0z?t$O(B node-name, next, previous, up --- +@comment --- @node は GNU info, HTML 用 --- +@comment --- @node の引数は node-name, next, previous, up --- @node Top,, (dir), (dir) -@comment --- @menu $B$O(B GNU info, HTML $BMQ(B --- -@comment --- chapter $BL>$r@53N$KJB$Y$k(B --- +@comment --- @menu は GNU info, HTML 用 --- +@comment --- chapter 名を正確に並べる --- @menu -* $B9TNs1i;;%Q%C%1!<%8(B noro_matrix.rr:: +* 行列演算パッケージ noro_matrix.rr:: * Index:: @end menu -@comment --- chapter $B$N3+;O(B --- -@comment --- $B?F(B chapter $BL>$r@53N$K(B --- -@node $B9TNs1i;;%Q%C%1!<%8(B noro_matrix.rr,,, Top -@chapter $B9TNs1i;;%Q%C%1!<%8(B noro_matrix.rr +@comment --- chapter の開始 --- +@comment --- 親 chapter 名を正確に --- +@node 行列演算パッケージ noro_matrix.rr,,, Top +@chapter 行列演算パッケージ noro_matrix.rr -@comment --- section $BL>$r@53N$KJB$Y$k(B --- +@comment --- section 名を正確に並べる --- @menu -* $B9TNs$K4X$9$kH!?t(B:: +* 行列に関する函数:: @end menu -$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 @samp{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 @samp{noro_matrix.rr} $B$r%m!<%I$9$k(B. +このマニュアルでは, asir-contrib パッケージに収録されている, +行列演算パッケージ @samp{noro_matrix.rr} について解説する. +このパッケージを使うには, まず @samp{noro_matrix.rr} をロードする. @example [1831] load("noro_matrix.rr"); [2014] @end example -$B$3$N%Q%C%1!<%8$NH!?t$r8F$S=P$9$K$O(B, $BA4$F(B @code{linalg.} $B$r@hF,$K$D$1$k(B. +このパッケージの函数を呼び出すには, 全て @code{linalg.} を先頭につける. @example [2014] linalg.random_mat(3,5); [ 0 -1 -1 ] [ -1 3 0 ] [ -2 -2 4 ] @end example -$B$3$N%^%K%e%"%k$G$O(B, $B4XO"$9$kAH9~$_H!?t$K$D$$$F$b2r@b$9$k(B. +このマニュアルでは, 関連する組込み函数についても解説する. -@comment --- section $B$N3+;O(B --- -@comment --- $B=qBN;XDj$K$D$$$F(B --- -@comment --- @code{} $B$O%?%$%W%i%$%?BNI=<((B --- -@comment --- @var{} $B$O$J$I$NI=<((B --- +@comment --- section の開始 --- +@comment --- 書体指定について --- +@comment --- @code{} はタイプライタ体表示 --- +@comment --- @var{} は斜字体表示 --- +@comment --- @b{} はボールド表示 --- +@comment --- @samp{} はファイル名などの表示 --- -@node $B9TNs$K4X$9$kH!?t(B,,, $B9TNs1i;;%Q%C%1!<%8(B noro_matrix.rr -@section $B9TNs$K4X$9$kH!?t(B +@node 行列に関する函数,,, 行列演算パッケージ noro_matrix.rr +@section 行列に関する函数 @menu * matrix vector linalg.unit_mat:: @@ -110,46 +110,46 @@ Copyright @copyright{} Masayuki Noro * linalg.jordan_canonical_form linalg.sample_mat:: @end menu -@node matrix vector linalg.unit_mat,,, $B9TNs$K4X$9$kH!?t(B +@node matrix vector linalg.unit_mat,,, 行列に関する函数 @subsection @code{matrix},@code{vector},@code{linalg.unit_mat} @findex matrix @findex vector @findex linalg.unit_mat @table @t -@item matrix(@var{m},@var{n}[,@var{listoflist}]) :: @var{m}$B9T(B@var{n}$BNs$N9TNs$r@8@.$9$k(B. -@itemx vector(@var{size}[,@var{list}]) :: $B%5%$%:$,(B @var{size} $B$N%Y%/%H%k$r@8@.$9$k(B. -@itemx linalg.unit_mat(@var{size}) :: $B%5%$%:$,(B @var{size} $B$NC10L9TNs$r@8@.$9$k(B. +@item matrix(@var{m},@var{n}[,@var{listoflist}]) :: @var{m}行@var{n}列の行列を生成する. +@itemx vector(@var{size}[,@var{list}]) :: サイズが @var{size} のベクトルを生成する. +@itemx linalg.unit_mat(@var{size}) :: サイズが @var{size} の単位行列を生成する. @end table @table @var @item return -$B9TNs(B +行列 @item size @itemx m @itemx n -$B@5@0?t(B +正整数 @item listoflist -$B%j%9%H$N%j%9%H(B +リストのリスト @item list -$B%j%9%H(B +リスト @end table @itemize @bullet @item -@code{matrix}, @code{vector} $B$OAH9~$_(B, @code{linalg.unit_mat} $B$O(B @samp{noro_matrix.rr} -$B$GDj5A$5$l$F$$$k(B. +@code{matrix}, @code{vector} は組込み, @code{linalg.unit_mat} は @samp{noro_matrix.rr} +で定義されている. @item -@code{matrix}, @code{vector} $B$O(B, @var{listoflist}, @var{list} $B$,(B -$B$J$$>l9g$K$ONm9TNs(B, $BNm%Y%/%H%k$r@8@.$9$k(B. +@code{matrix}, @code{vector} は, @var{listoflist}, @var{list} が +ない場合には零行列, 零ベクトルを生成する. @item -@var{listoflist} $B$O(B @var{[[1,2,3],[3,4,5]]} $B$N$h$&$K%j%9%H$+$i$J$k%j%9%H$G(B -$B$"$k(B. $B$3$l$,0z?t$H$7$FM?$($i$l$?>l9g(B, $BMWAG$G$"$k%j%9%H$r;H$C$F(B -$B9TNs$N3F9T$,=g$K=i4|2=$5$l$k(B. +@var{listoflist} は @var{[[1,2,3],[3,4,5]]} のようにリストからなるリストで +ある. これが引数として与えられた場合, 要素であるリストを使って +行列の各行が順に初期化される. @item -@var{list} $B$O(B @var{[1,2,3]} $B$N$h$&$J%j%9%H$G$"$k(B. -$B$3$l$,0z?t$H$7$FM?$($i$l$?>l9g(B, $B$3$N%j%9%H$NMWAG$K$h$j%Y%/%H%k$N3F(B -$B@.J,$,=i4|2=$5$l$k(B. +@var{list} は @var{[1,2,3]} のようなリストである. +これが引数として与えられた場合, このリストの要素によりベクトルの各 +成分が初期化される. @end itemize @example @@ -168,35 +168,35 @@ Copyright @copyright{} Masayuki Noro @end example -@node linalg.random_mat linalg.random_rmat linalg.random_vect,,, $B9TNs$K4X$9$kH!?t(B +@node linalg.random_mat linalg.random_rmat linalg.random_vect,,, 行列に関する函数 @subsection @code{linalg.random_mat}, @code{linalg.random_rmat}, @code{linalg.random_vect} @findex linalg.random_mat @findex linalg.random_rmat @findex linalg.random_vect @table @t -@item linalg.random_mat(@var{size},@var{bound}) :: $B@5J}@0?t9TNs$r%i%s%@%`@8@.$9$k(B. -@itemx linalg.random_rmat(@var{m},@var{n},@var{bound}) :: @var{m} $B9T(B @var{n} $BNs$N@0?t9TNs$r%i%s%@%`@8@.$9$k(B. -@itemx linalg.random_vect(@var{size},@var{bound}) :: $B@0?t%Y%/%H%k$r%i%s%@%`@8@.$9$k(B. +@item linalg.random_mat(@var{size},@var{bound}) :: 正方整数行列をランダム生成する. +@itemx linalg.random_rmat(@var{m},@var{n},@var{bound}) :: @var{m} 行 @var{n} 列の整数行列をランダム生成する. +@itemx linalg.random_vect(@var{size},@var{bound}) :: 整数ベクトルをランダム生成する. @end table @table @var @item return -$B@0?t(B +整数 @item number -$B@0?t(B +整数 @end table @itemize @bullet -@item linalg.random_mat(@var{size},@var{bound}) $B$O(B, $B%5%$%:(B @var{size}, -$BMWAG$,(B@var{bound}$BL$K~$N(B -$B@5J}@0?t9TNs$r%i%s%@%`@8@.$9$k(B. +@item linalg.random_mat(@var{size},@var{bound}) は, サイズ @var{size}, +要素が@var{bound}未満の +正方整数行列をランダム生成する. @item -@item linalg.random_rmat(@var{m},@var{n},@var{bound}) $B$O(B -@var{m} $B9T(B @var{n} $BNs$N(B, -$BMWAG$,(B@var{bound}$BL$K~$N@0?t9TNs$r%i%s%@%`@8@.$9$k(B. -@item linalg.random_vect(@var{size},@var{bound}) $B$OD9$5(B @var{size}$B$N(B, -$BMWAG$,(B@var{bound}$BL$K~$N@0?t%Y%/%H%k$r%i%s%@%`@8@.$9$k(B. +@item linalg.random_rmat(@var{m},@var{n},@var{bound}) は +@var{m} 行 @var{n} 列の, +要素が@var{bound}未満の整数行列をランダム生成する. +@item linalg.random_vect(@var{size},@var{bound}) は長さ @var{size}の, +要素が@var{bound}未満の整数ベクトルをランダム生成する. @end itemize @example @@ -212,32 +212,32 @@ Copyright @copyright{} Masayuki Noro [ -3 2 3 ] @end example -@node invmat,,, $B9TNs$K4X$9$kH!?t(B +@node invmat,,, 行列に関する函数 @subsection @code{invmat} @findex invmat @table @t @item invmat(@var{mat}) -:: @var{mat} $B$N5U9TNs$r7W;;$9$k(B. +:: @var{mat} の逆行列を計算する. @end table @table @var @item return -$B%j%9%H(B +リスト @item mat -$B@5J}9TNs(B +正方行列 @end table @itemize @bullet @item -$B@5J}9TNs(B @var{mat} $B$N5U9TNs$r7W;;$9$k(B. +正方行列 @var{mat} の逆行列を計算する. @item -$B7k2L$O(B @var{[invmat,denom]} $B$J$k%j%9%H$G$"$k(B. $B$3$3$G(B, @var{invmat} $B$O(B -$B9TNs(B, @var{denom} $B$OJ,Jl$rI=$9<0$G$"$j(B, @var{invmat/denom} $B$,5U9TNs$rI=$9(B. +結果は @var{[invmat,denom]} なるリストである. ここで, @var{invmat} は +行列, @var{denom} は分母を表す式であり, @var{invmat/denom} が逆行列を表す. @item -@var{mat}$B$,@0?t9TNs(B, $B$"$k$$$OB?9`<09TNs$N>l9g(B, @var{invmat} $B$O(B -$B$=$l$>$l@0?t9TNs(B, $B$"$k$$$OB?9`<0$H$J$k(B. $B$3$N;EMM$O(B, $BL5BL$JJ,?t(B, $BM-M}<0(B -$B7W;;$r>J$/$?$a$KDj$a$i$l$F$$$k$,(B, $B;H$$$K$/$$>l9g$b$"$k(B. +@var{mat}が整数行列, あるいは多項式行列の場合, @var{invmat} は +それぞれ整数行列, あるいは多項式となる. この仕様は, 無駄な分数, 有理式 +計算を省くために定められているが, 使いにくい場合もある. @end itemize @example @@ -258,7 +258,7 @@ Copyright @copyright{} Masayuki Noro [ 0 0 0 1 ] @end example -@node det nd_det,,, $B9TNs$K4X$9$kH!?t(B +@node det nd_det,,, 行列に関する函数 @subsection @code{det},@code{nd_det} @findex det @findex nd_det @@ -266,31 +266,31 @@ Copyright @copyright{} Masayuki Noro @table @t @item det(@var{mat}[,@var{mod}]) @itemx nd_det(@var{mat}[,@var{mod}]) -:: @var{mat} $B$N9TNs<0$r5a$a$k(B. +:: @var{mat} の行列式を求める. @end table @table @var @item return -$B<0(B +式 @item mat -$B9TNs(B +行列 @item mod -$BAG?t(B +素数 @end table @itemize @bullet @item -@code{det} $B$*$h$S(B @code{nd_det} $B$O9TNs(B @var{mat} $B$N9TNs<0$r5a$a$k(B. +@code{det} および @code{nd_det} は行列 @var{mat} の行列式を求める. @item -$B0z?t(B @var{mod} $B$,$"$k;~(B, GF(@var{mod}) $B>e$G$N9TNs<0$r5a$a$k(B. +引数 @var{mod} がある時, GF(@var{mod}) 上での行列式を求める. @item -$BJ,?t$J$7$N%,%&%9>C5nK!$K$h$C$F$$$k$?$a(B, $BB?JQ?tB?9`<0$r@.J,$H$9$k(B -$B9TNs$KBP$7$F$O>.9TNs<0E83+$K$h$kJ}K!$N$[$&$,8zN($,$h$$>l9g$b$"$k(B. +分数なしのガウス消去法によっているため, 多変数多項式を成分とする +行列に対しては小行列式展開による方法のほうが効率がよい場合もある. @item -@code{nd_det} $B$OM-M}?t$^$?$OM-8BBN>e$NB?9`<09TNs$N9TNs<0(B -$B7W;;@lMQ$G$"$k(B. $B%"%k%4%j%:%`$O$d$O$jJ,?t$J$7$N%,%&%9>C5nK!$@$,(B, -$B%G!<%?9=B$$*$h$S>h=|;;$N9)IW$K$h$j(B, $B0lHL$K(B @code{det} $B$h$j9bB.$K(B -$B7W;;$G$-$k(B. +@code{nd_det} は有理数または有限体上の多項式行列の行列式 +計算専用である. アルゴリズムはやはり分数なしのガウス消去法だが, +データ構造および乗除算の工夫により, 一般に @code{det} より高速に +計算できる. @end itemize @example @@ -309,40 +309,40 @@ Copyright @copyright{} Masayuki Noro [-x+z,1],[-x+v,1],[-x+y,1]] @end example -@node generic_gauss_elim,,, $B9TNs$K4X$9$kH!?t(B +@node generic_gauss_elim,,, 行列に関する函数 @subsection @code{generic_gauss_elim} @findex generic_gauss_elim @table @t @item generic_gauss_elim(@var{mat}) -:: $B@0?t9TNs$r4JLs$9$k(B. +:: 整数行列を簡約する. @end table @table @var @item return -$B%j%9%H(B +リスト @item mat -$B@0?t9TNs(B +整数行列 @end table @itemize @bullet @item -$B@0?t9TNs(B @var{mat} $B$N4JLs3,CJ7A(B (reduced row echelon form; rref) $B$r7W;;$7(B, -$B$=$l$r9=@.$9$k%G!<%?$r%j%9%H$H$7$FJV$9(B. +整数行列 @var{mat} の簡約階段形 (reduced row echelon form; rref) を計算し, +それを構成するデータをリストとして返す. @item -$B=PNO$O(B @var{[B,D,J,K]} $B$N7A$N%j%9%H$G$"$k(B. $BF~NO(B @var{mat} $B$,(B @var{m} $B9T(B -@var{n} $BNs$H$7(B, $B$=$N%i%s%/$,(B @var{r} $B$H$9$l$P(B, @var{B} $B$O(B @var{r} $B9T(B -@var{n-r} $BNs$N9TNs$G$"$k(B. @var{D} $B$O@0?t(B, @var{J} $B$OD9$5(B @var{r}, -@var{K} $B$OD9$5(B @var{n-r} $B$N@0?t%Y%/%H%k$G$"$k(B. +出力は @var{[B,D,J,K]} の形のリストである. 入力 @var{mat} が @var{m} 行 +@var{n} 列とし, そのランクが @var{r} とすれば, @var{B} は @var{r} 行 +@var{n-r} 列の行列である. @var{D} は整数, @var{J} は長さ @var{r}, +@var{K} は長さ @var{n-r} の整数ベクトルである. @item -$B=PNO%G!<%?$O(B @var{mat} $B$N(B rref $B$r%(%s%3!<%I$7$F$$$k(B. -rref $B$NBh(B @var{J[l]} $BNs$O(B @var{l} $B9TL\$N$_$,(B @var{D}, $B$=$l0J30$O(B 0 $B$N(B -$BNs%Y%/%H%k(B, rref $B$N(B $BBh(B @var{K[l]} $BNs$O(B @var{B} $B$NBh(B @var{l} $BNs$r(B, $B>e$+$i(B -$B5M$a$?$b$N$H$J$k(B. +出力データは @var{mat} の rref をエンコードしている. +rref の第 @var{J[l]} 列は @var{l} 行目のみが @var{D}, それ以外は 0 の +列ベクトル, rref の 第 @var{K[l]} 列は @var{B} の第 @var{l} 列を, 上から +詰めたものとなる. @item -$B$3$N$h$&$J7A<0$G=PNO$9$kM}M3$O(B, $BF~NO9TNs$N%i%s%/$,Bg$-$$>l9g$K(B, -rref $B$O(B 0 $B$,B?$$AB$J9TNs$H$J$j(B, $B%a%b%j$rB?$/>CHq$9$k$3$H$H(B, -$B$3$N7A$NJ}$,(B, $B%W%m%0%i%`>e$G%G!<%?$rMxMQ$7$d$9$$$3$H$K$h$k(B. +このような形式で出力する理由は, 入力行列のランクが大きい場合に, +rref は 0 が多い疎な行列となり, メモリを多く消費することと, +この形の方が, プログラム上でデータを利用しやすいことによる. @end itemize @example @@ -356,7 +356,7 @@ rref $B$O(B 0 $B$,B?$$AB$J9TNs$H$J$j(B, $B%a%b%j$ [ -1 1 ],2,[ 0 1 2 ],[ 3 4 ]] @end example -$BNc$($P(B, rref $B$r7W;;$9$kH!?t$OH(B +@item 参照 @fref{matrix vector linalg.unit_mat} @end table -@node linalg.compute_kernel linalg.compute_image,,, $B9TNs$K4X$9$kH!?t(B +@node linalg.compute_kernel linalg.compute_image,,, 行列に関する函数 @subsection @code{linalg.compute_kernel}, @code{linalg.compute_image} @findex linalg.compute_kernel @findex linalg.compute_image @table @t @item linalg.compute_kernel(@var{mat}[|rhs=@var{vect}]) -:: $BM-M}?t9TNs$N3K$N4pDl$r7W;;$9$k(B. +:: 有理数行列の核の基底を計算する. @itemx linalg.compute_image(@var{mat}) -:: $BM-M}?t9TNs$NA|$N4pDl$r7W;;$9$k(B. +:: 有理数行列の像の基底を計算する. @end table @table @var @item return -$B%j%9%H(B +リスト @item mat -$BM-M}?t9TNs(B +有理数行列 @item vect -$BM-M}?t%Y%/%H%k(B +有理数ベクトル @end table @itemize @bullet @item -@var{m} $B9T(B @var{n} $BNs$N9TNs$r(B, $BNs%Y%/%H%k$K:8$+$i3]$1$k$3$H$K$h$j(B -@var{n} $B.$N%$%s%G%C%/%9$r;}$D@.J,$N0LCV$rI=$9(B. @var{posi} $B$OA4$F0[$J$k$3$H(B -$B$,J]>Z$5$l$k(B. +@code{linalg.compute_kernel} の出力は @var{[[v1,pos1],@dots{},[vl,posl]]} の形のリストである. ここで, +@var{vi} は基底ベクトル, @var{posi} は, @var{vi} の主成分位置, すなわち +最小のインデックスを持つ成分の位置を表す. @var{posi} は全て異なること +が保証される. @item -$B%*%W%7%g%s(B @var{vect} $B$,;XDj$5$l$?>l9g(B, $B7k2L$O(B -@var{[@var{sol},[[v1,pos1],@dots{},[vl,posl]]]} $B$J$k%j%9%H$H$J$k(B. -$B$3$3$G(B @var{sol} $B$O(B @var{mat sol = vect} $B$rK~$?$9%Y%/%H%k(B ($BFC.$N%$%s%G%C%/%9$r;}$D@.J,$N0LCV$rI=$9(B. @var{posi} $B$OA4$F0[$J$k$3$H(B -$B$,J]>Z$5$l$k(B. @var{histi} $B$O(B, @var{vi} $B$,(B, @var{mat} $B$NNs$+$i$I$N$h$&$K(B -$B:n$i$l$k$+$r<($9%G!<%?$G$"$k(B. $BJ,;6B?9`<0$GI=8=$5$l$F$*$j(B, $B;X?t$,9T%$%s%G%C%/%9(B, -$B78?t$,(B, $B0l>+(-1)*<<1>>+(1)*<<0>>]] @end example -@node linalg.minipoly_mat,,, $B9TNs$K4X$9$kH!?t(B +@node linalg.minipoly_mat,,, 行列に関する函数 @subsection @code{linalg.minipoly_mat} @findex linalg.minipoly_mat @table @t @item linalg.minipoly_mat(@var{mat}) -:: $BM-M}?t9TNs(B @var{mat} $B$N:G>.B?9`<0$r7W;;$9$k(B. +:: 有理数行列 @var{mat} の最小多項式を計算する. @end table @table @var @item return -$B0lJQ?tB?9`<0(B +一変数多項式 @item mat -$BM-M}?t9TNs(B +有理数行列 @end table @itemize @bullet @item -$BM-M}?t9TNs(B @var{mat} $B$N:G>.B?9`<0$r7W;;$7(B, $BJQ?t(B @var{x} $B$N0lJQ?tB?9`<0$H$7$F(B -$BJV$9(B. +有理数行列 @var{mat} の最小多項式を計算し, 変数 @var{x} の一変数多項式として +返す. @end itemize @example @@ -480,48 +480,48 @@ x^3+2*x^2-x-6 [ 0 0 0 ] @end example -@node linalg.jordan_canonical_form linalg.sample_mat,,, $B9TNs$K4X$9$kH!?t(B +@node linalg.jordan_canonical_form linalg.sample_mat,,, 行列に関する函数 @subsection @code{linalg.jordan_canonical_form},@code{linalg.sample_mat} @findex linalg.jordan_canonical_form @table @t @item linalg.jordan_canonical_form(@var{mat}) -:: $BM-M}?t@5J}9TNs$N%8%g%k%@%sI8=`7A$r7W;;$9$k(B. +:: 有理数正方行列のジョルダン標準形を計算する. @itemx linalg.sample_mat(@var{list}) -:: $B;XDj$5$l$?%8%g%k%@%sI8=`7A$r;}$DM-M}?t@5J}9TNs$r@8@.$9$k(B. +:: 指定されたジョルダン標準形を持つ有理数正方行列を生成する. @end table @table @var @item return -$B%j%9%H(B +リスト @item mat -$BM-M}?t@5J}9TNs(B +有理数正方行列 @item list -$B%8%g%k%@%s%V%m%C%/$N%j%9%H(B +ジョルダンブロックのリスト @end table @itemize @bullet @item -@code{linalg.jordan_canonical_form(@var{mat})} $B$O(B -$BM-M}?t@5J}9TNs(B @var{mat} $B$N%8%g%k%@%sI8=`7A$r7W;;$9$k(B. +@code{linalg.jordan_canonical_form(@var{mat})} は +有理数正方行列 @var{mat} のジョルダン標準形を計算する. @item -$B=PNO$O(B @var{[P,[[e1,s1,n1],@dots{},[el,sl,nl]],defideal]} $B$H$$$&7A$N%j%9%H(B -$B$G$"$k(B. $B$3$3$G(B, @var{P} $B$OJQ499TNs(B, $B$9$J$o$A(B @var{P^(-1)AP} $B$,%8%g%k%@%s(B -$BI8=`7A$H$J$k@5B'9TNs(B, @var{[ei,si,ni]} $B$O(B, $B8GM-CM(B @var{ei}, $B%5%$%:(B @var{si} -$B$N%8%g%k%@%s%V%m%C%/$,(B @var{ni} $B8DJB$V$3$H$r0UL#$9$k(B. +出力は @var{[P,[[e1,s1,n1],@dots{},[el,sl,nl]],defideal]} という形のリスト +である. ここで, @var{P} は変換行列, すなわち @var{P^(-1)AP} がジョルダン +標準形となる正則行列, @var{[ei,si,ni]} は, 固有値 @var{ei}, サイズ @var{si} +のジョルダンブロックが @var{ni} 個並ぶことを意味する. @item -$B0lHL$K(B, $B=PNO$O(B @var{a0}, @dots{}, @var{am} $B$N7A$N%Q%i%a%?$r4^$`(B. $B$3$l$i$O(B -$Be4{Ls$JB?9`<0$N:,$G$"$k(B. $B$3$l$i$rDj5A$9$k(B -$BJ}Dx<0$H$7$F(B, @var{defideal} $B$,M?$($i$l$k(B. @var{deflideal} $B$O%j%9%H$N%j%9%H(B -$B$G$"$j(B, $B3FMWAG$G$"$k%j%9%H$O(B, $B0lAH$N6&Lr$J:,A4BN$rDj5A$9$k%$%G%"%k$r(B -$BI=$9(B. $BH(B +@item 参照 @fref{linalg.minipoly_mat} @end table -@comment --- $B$*$^$8$J$$(B --- +@comment --- おまじない --- @node Index,,, Top @unnumbered Index @printindex fn @@ -573,7 +573,7 @@ x^3+2*x^2-x-6 @summarycontents @contents @bye -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り --- * linalg.reduce_vect:: * linalg.partial_fraction::