Annotation of OpenXM/src/asir-contrib/packages/doc/noro_matrix/noro_matrix-ja.texi, Revision 1.3
1.3 ! noro 1: %comment $OpenXM: OpenXM/src/asir-contrib/packages/doc/noro_matrix/noro_matrix-ja.texi,v 1.2 2009/05/07 06:13:22 noro Exp $
1.2 noro 2: %comment --- おまじない ---
1.3 ! noro 3: \input ../../../../asir-doc/texinfo
1.1 noro 4: @iftex
5: @catcode`@#=6
6: @def@fref#1{@xrefX[#1,,@code{#1},,,]}
7: @def@b#1{{@bf@gt #1}}
8: @catcode`@#=@other
9: @end iftex
10: @overfullrule=0pt
11: @c -*-texinfo-*-
12: @comment %**start of header
1.2 noro 13: @comment --- おまじない終り ---
1.1 noro 14:
1.2 noro 15: @comment --- GNU info ファイルの名前 ---
1.1 noro 16: @setfilename asir-contrib-noro_matrix
17:
1.2 noro 18: @comment --- タイトル ---
1.1 noro 19: @settitle noro_matrix
20:
21: @comment %**end of header
22: @comment %@setchapternewpage odd
23:
1.2 noro 24: @comment --- おまじない ---
1.1 noro 25: @ifinfo
26: @macro fref{name}
27: @ref{\name\,,@code{\name\}}
28: @end macro
29: @end ifinfo
30:
31: @iftex
32: @comment @finalout
33: @end iftex
34:
35: @titlepage
1.2 noro 36: @comment --- おまじない終り ---
1.1 noro 37:
1.2 noro 38: @comment --- タイトル, バージョン, 著者名, 著作権表示 ---
1.1 noro 39: @title noro_matrix
40: @subtitle noro_matrix User's Manual
41: @subtitle Edition 1.0
42: @subtitle May 2008
43:
44: @author by Masayuki Noro
45: @page
46: @vskip 0pt plus 1filll
47: Copyright @copyright{} Masayuki Noro
48: 2008. All rights reserved.
49: @end titlepage
50:
1.2 noro 51: @comment --- おまじない ---
1.1 noro 52: @synindex vr fn
1.2 noro 53: @comment --- おまじない終り ---
1.1 noro 54:
1.2 noro 55: @comment --- @node は GNU info, HTML 用 ---
56: @comment --- @node の引数は node-name, next, previous, up ---
1.1 noro 57: @node Top,, (dir), (dir)
58:
1.2 noro 59: @comment --- @menu は GNU info, HTML 用 ---
60: @comment --- chapter 名を正確に並べる ---
1.1 noro 61: @menu
1.2 noro 62: * 行列演算パッケージ noro_matrix.rr::
1.1 noro 63: * Index::
64: @end menu
65:
1.2 noro 66: @comment --- chapter の開始 ---
67: @comment --- 親 chapter 名を正確に ---
68: @node 行列演算パッケージ noro_matrix.rr,,, Top
69: @chapter 行列演算パッケージ noro_matrix.rr
1.1 noro 70:
1.2 noro 71: @comment --- section 名を正確に並べる ---
1.1 noro 72: @menu
1.2 noro 73: * 行列に関する函数::
1.1 noro 74: @end menu
75:
1.2 noro 76: このマニュアルでは, asir-contrib パッケージに収録されている,
77: 行列演算パッケージ @samp{noro_matrix.rr} について解説する.
78: このパッケージを使うには, まず @samp{noro_matrix.rr} をロードする.
1.1 noro 79: @example
80: [1831] load("noro_matrix.rr");
81: [2014]
82: @end example
1.2 noro 83: このパッケージの函数を呼び出すには, 全て @code{linalg.} を先頭につける.
1.1 noro 84: @example
85: [2014] linalg.random_mat(3,5);
86: [ 0 -1 -1 ]
87: [ -1 3 0 ]
88: [ -2 -2 4 ]
89: @end example
1.2 noro 90: このマニュアルでは, 関連する組込み函数についても解説する.
1.1 noro 91:
1.2 noro 92: @comment --- section の開始 ---
93: @comment --- 書体指定について ---
94: @comment --- @code{} はタイプライタ体表示 ---
95: @comment --- @var{} は斜字体表示 ---
96: @comment --- @b{} はボールド表示 ---
97: @comment --- @samp{} はファイル名などの表示 ---
1.1 noro 98:
1.2 noro 99: @node 行列に関する函数,,, 行列演算パッケージ noro_matrix.rr
100: @section 行列に関する函数
1.1 noro 101:
102: @menu
103: * matrix vector linalg.unit_mat::
104: * linalg.random_mat linalg.random_rmat linalg.random_vect::
105: * invmat::
106: * det nd_det::
107: * generic_gauss_elim::
108: * linalg.compute_kernel linalg.compute_image::
109: * linalg.minipoly_mat::
110: * linalg.jordan_canonical_form linalg.sample_mat::
111: @end menu
112:
1.2 noro 113: @node matrix vector linalg.unit_mat,,, 行列に関する函数
1.1 noro 114: @subsection @code{matrix},@code{vector},@code{linalg.unit_mat}
115: @findex matrix
116: @findex vector
117: @findex linalg.unit_mat
118:
119: @table @t
1.2 noro 120: @item matrix(@var{m},@var{n}[,@var{listoflist}]) :: @var{m}行@var{n}列の行列を生成する.
121: @itemx vector(@var{size}[,@var{list}]) :: サイズが @var{size} のベクトルを生成する.
122: @itemx linalg.unit_mat(@var{size}) :: サイズが @var{size} の単位行列を生成する.
1.1 noro 123: @end table
124:
125: @table @var
126: @item return
1.2 noro 127: 行列
1.1 noro 128: @item size
129: @itemx m
130: @itemx n
1.2 noro 131: 正整数
1.1 noro 132: @item listoflist
1.2 noro 133: リストのリスト
1.1 noro 134: @item list
1.2 noro 135: リスト
1.1 noro 136: @end table
137:
138: @itemize @bullet
139: @item
1.2 noro 140: @code{matrix}, @code{vector} は組込み, @code{linalg.unit_mat} は @samp{noro_matrix.rr}
141: で定義されている.
1.1 noro 142: @item
1.2 noro 143: @code{matrix}, @code{vector} は, @var{listoflist}, @var{list} が
144: ない場合には零行列, 零ベクトルを生成する.
1.1 noro 145: @item
1.2 noro 146: @var{listoflist} は @var{[[1,2,3],[3,4,5]]} のようにリストからなるリストで
147: ある. これが引数として与えられた場合, 要素であるリストを使って
148: 行列の各行が順に初期化される.
149: @item
150: @var{list} は @var{[1,2,3]} のようなリストである.
151: これが引数として与えられた場合, このリストの要素によりベクトルの各
152: 成分が初期化される.
1.1 noro 153: @end itemize
154:
155: @example
156: [1559] matrix(2,3);
157: [ 0 0 0 ]
158: [ 0 0 0 ]
159: [1560] vector(3);
160: [ 0 0 0 ]
161: [1561] linalg.unit_mat(3);
162: [ 1 0 0 ]
163: [ 0 1 0 ]
164: [ 0 0 1 ]
165: [1559] matrix(2,3,[[1,2,3],[4,5,6]]);
166: [ 1 2 3 ]
167: [ 4 5 6 ]
168: @end example
169:
170:
1.2 noro 171: @node linalg.random_mat linalg.random_rmat linalg.random_vect,,, 行列に関する函数
1.1 noro 172: @subsection @code{linalg.random_mat}, @code{linalg.random_rmat}, @code{linalg.random_vect}
173: @findex linalg.random_mat
174: @findex linalg.random_rmat
175: @findex linalg.random_vect
176:
177: @table @t
1.2 noro 178: @item linalg.random_mat(@var{size},@var{bound}) :: 正方整数行列をランダム生成する.
179: @itemx linalg.random_rmat(@var{m},@var{n},@var{bound}) :: @var{m} 行 @var{n} 列の整数行列をランダム生成する.
180: @itemx linalg.random_vect(@var{size},@var{bound}) :: 整数ベクトルをランダム生成する.
1.1 noro 181: @end table
182:
183: @table @var
184: @item return
1.2 noro 185: 整数
1.1 noro 186: @item number
1.2 noro 187: 整数
1.1 noro 188: @end table
189:
190: @itemize @bullet
1.2 noro 191: @item linalg.random_mat(@var{size},@var{bound}) は, サイズ @var{size},
192: 要素が@var{bound}未満の
193: 正方整数行列をランダム生成する.
194: @item
195: @item linalg.random_rmat(@var{m},@var{n},@var{bound}) は
196: @var{m} 行 @var{n} 列の,
197: 要素が@var{bound}未満の整数行列をランダム生成する.
198: @item linalg.random_vect(@var{size},@var{bound}) は長さ @var{size}の,
199: 要素が@var{bound}未満の整数ベクトルをランダム生成する.
1.1 noro 200: @end itemize
201:
202: @example
203: [1579] linalg.random_mat(3,4);
204: [ 2 1 -2 ]
205: [ 0 -2 1 ]
206: [ 3 1 -2 ]
207: [1580] linalg.random_rmat(3,5,2);
208: [ 0 -1 0 0 0 ]
209: [ 0 -1 0 1 0 ]
210: [ -1 0 0 -1 1 ]
211: [1581] linalg.random_vect(3,6);
212: [ -3 2 3 ]
213: @end example
214:
1.2 noro 215: @node invmat,,, 行列に関する函数
1.1 noro 216: @subsection @code{invmat}
217: @findex invmat
218:
219: @table @t
220: @item invmat(@var{mat})
1.2 noro 221: :: @var{mat} の逆行列を計算する.
1.1 noro 222: @end table
223:
224: @table @var
225: @item return
1.2 noro 226: リスト
1.1 noro 227: @item mat
1.2 noro 228: 正方行列
1.1 noro 229: @end table
230:
231: @itemize @bullet
232: @item
1.2 noro 233: 正方行列 @var{mat} の逆行列を計算する.
1.1 noro 234: @item
1.2 noro 235: 結果は @var{[invmat,denom]} なるリストである. ここで, @var{invmat} は
236: 行列, @var{denom} は分母を表す式であり, @var{invmat/denom} が逆行列を表す.
1.1 noro 237: @item
1.2 noro 238: @var{mat}が整数行列, あるいは多項式行列の場合, @var{invmat} は
239: それぞれ整数行列, あるいは多項式となる. この仕様は, 無駄な分数, 有理式
240: 計算を省くために定められているが, 使いにくい場合もある.
1.1 noro 241: @end itemize
242:
243: @example
244: [1575] A=linalg.random_mat(4,5);
245: [ 2 4 3 3 ]
246: [ 3 0 0 0 ]
247: [ 0 2 3 -2 ]
248: [ 2 0 -4 3 ]
249: [1576] L=invmat(A);
250: [[ 0 38 0 0 ]
251: [ -3 -28 63 45 ]
252: [ 18 16 -36 -42 ]
253: [ 24 -4 -48 -18 ],114]
254: [1577] AI=L[0]/L[1]$ AI*A;
255: [1578] [ 1 0 0 0 ]
256: [ 0 1 0 0 ]
257: [ 0 0 1 0 ]
258: [ 0 0 0 1 ]
259: @end example
260:
1.2 noro 261: @node det nd_det,,, 行列に関する函数
1.1 noro 262: @subsection @code{det},@code{nd_det}
263: @findex det
264: @findex nd_det
265:
266: @table @t
267: @item det(@var{mat}[,@var{mod}])
268: @itemx nd_det(@var{mat}[,@var{mod}])
1.2 noro 269: :: @var{mat} の行列式を求める.
1.1 noro 270: @end table
271:
272: @table @var
273: @item return
1.2 noro 274: 式
1.1 noro 275: @item mat
1.2 noro 276: 行列
1.1 noro 277: @item mod
1.2 noro 278: 素数
1.1 noro 279: @end table
280:
281: @itemize @bullet
282: @item
1.2 noro 283: @code{det} および @code{nd_det} は行列 @var{mat} の行列式を求める.
1.1 noro 284: @item
1.2 noro 285: 引数 @var{mod} がある時, GF(@var{mod}) 上での行列式を求める.
1.1 noro 286: @item
1.2 noro 287: 分数なしのガウス消去法によっているため, 多変数多項式を成分とする
288: 行列に対しては小行列式展開による方法のほうが効率がよい場合もある.
1.1 noro 289: @item
1.2 noro 290: @code{nd_det} は有理数または有限体上の多項式行列の行列式
291: 計算専用である. アルゴリズムはやはり分数なしのガウス消去法だが,
292: データ構造および乗除算の工夫により, 一般に @code{det} より高速に
293: 計算できる.
1.1 noro 294: @end itemize
295:
296: @example
297: [91] A=matrix(5,5)$
298: [92] V=[x,y,z,u,v];
299: [x,y,z,u,v]
300: [93] for(I=0;I<5;I++)for(J=0,B=A[I],W=V[I];J<5;J++)B[J]=W^J;
301: [94] A;
302: [ 1 x x^2 x^3 x^4 ]
303: [ 1 y y^2 y^3 y^4 ]
304: [ 1 z z^2 z^3 z^4 ]
305: [ 1 u u^2 u^3 u^4 ]
306: [ 1 v v^2 v^3 v^4 ]
307: [95] fctr(det(A));
308: [[1,1],[u-v,1],[-z+v,1],[-z+u,1],[-y+u,1],[y-v,1],[-y+z,1],[-x+u,1],
309: [-x+z,1],[-x+v,1],[-x+y,1]]
310: @end example
311:
1.2 noro 312: @node generic_gauss_elim,,, 行列に関する函数
1.1 noro 313: @subsection @code{generic_gauss_elim}
314: @findex generic_gauss_elim
315:
316: @table @t
317: @item generic_gauss_elim(@var{mat})
1.2 noro 318: :: 整数行列を簡約する.
1.1 noro 319: @end table
320:
321: @table @var
322: @item return
1.2 noro 323: リスト
1.1 noro 324: @item mat
1.2 noro 325: 整数行列
1.1 noro 326: @end table
327:
328: @itemize @bullet
329: @item
1.2 noro 330: 整数行列 @var{mat} の簡約階段形 (reduced row echelon form; rref) を計算し,
331: それを構成するデータをリストとして返す.
1.1 noro 332: @item
1.2 noro 333: 出力は @var{[B,D,J,K]} の形のリストである. 入力 @var{mat} が @var{m} 行
334: @var{n} 列とし, そのランクが @var{r} とすれば, @var{B} は @var{r} 行
335: @var{n-r} 列の行列である. @var{D} は整数, @var{J} は長さ @var{r},
336: @var{K} は長さ @var{n-r} の整数ベクトルである.
337: @item
338: 出力データは @var{mat} の rref をエンコードしている.
339: rref の第 @var{J[l]} 列は @var{l} 行目のみが @var{D}, それ以外は 0 の
340: 列ベクトル, rref の 第 @var{K[l]} 列は @var{B} の第 @var{l} 列を, 上から
341: 詰めたものとなる.
342: @item
343: このような形式で出力する理由は, 入力行列のランクが大きい場合に,
344: rref は 0 が多い疎な行列となり, メモリを多く消費することと,
345: この形の方が, プログラム上でデータを利用しやすいことによる.
1.1 noro 346: @end itemize
347:
348: @example
349: [1600] A=linalg.random_rmat(3,5,2);
350: [ 0 -1 -1 0 -1 ]
351: [ 1 0 1 -1 0 ]
352: [ 1 1 0 0 0 ]
353: [1601] L=generic_gauss_elim(A);
354: [[ -1 -1 ]
355: [ 1 1 ]
356: [ -1 1 ],2,[ 0 1 2 ],[ 3 4 ]]
357: @end example
358:
1.2 noro 359: 例えば, rref を計算する函数は次のように書ける.
1.1 noro 360: @example
361: def my_rref(A)
362: @{
363: S = size(A); M = S[0]; N = S[1];
364: L = generic_gauss_elim(A);
365: B = L[0]; D = L[1]; J = L[2]; K = L[3];
366: R = length(J); NR = N-R;
367: A1 = matrix(M,N);
368: for ( I = 0; I < R; I++ ) @{
369: A1[I][J[I]] = D;
370: for ( L = 0; L < NR; L++ ) A1[I][K[L]] = B[I][L];
371: @}
372: return A1;
373: @}
374: @end example
375:
376:
377: @table @t
1.2 noro 378: @item 参照
1.1 noro 379: @fref{matrix vector linalg.unit_mat}
380: @end table
381:
1.2 noro 382: @node linalg.compute_kernel linalg.compute_image,,, 行列に関する函数
1.1 noro 383: @subsection @code{linalg.compute_kernel}, @code{linalg.compute_image}
384: @findex linalg.compute_kernel
385: @findex linalg.compute_image
386:
387: @table @t
388: @item linalg.compute_kernel(@var{mat}[|rhs=@var{vect}])
1.2 noro 389: :: 有理数行列の核の基底を計算する.
1.1 noro 390: @itemx linalg.compute_image(@var{mat})
1.2 noro 391: :: 有理数行列の像の基底を計算する.
1.1 noro 392: @end table
393:
394: @table @var
395: @item return
1.2 noro 396: リスト
1.1 noro 397: @item mat
1.2 noro 398: 有理数行列
1.1 noro 399: @item vect
1.2 noro 400: 有理数ベクトル
1.1 noro 401: @end table
402:
403: @itemize @bullet
404: @item
1.2 noro 405: @var{m} 行 @var{n} 列の行列を, 列ベクトルに左から掛けることにより
406: @var{n} 次元ベクトル空間から
407: @var{m} 次元ベクトル空間への線形写像とみなす.
408: @item
409: @code{linalg.compute_kernel} は有理数行列 @var{mat} の核の基底を計算する.
410: @item
411: @code{linalg.compute_kernel} の出力は @var{[[v1,pos1],@dots{},[vl,posl]]} の形のリストである. ここで,
412: @var{vi} は基底ベクトル, @var{posi} は, @var{vi} の主成分位置, すなわち
413: 最小のインデックスを持つ成分の位置を表す. @var{posi} は全て異なること
414: が保証される.
415: @item
416: オプション @var{vect} が指定された場合, 結果は
417: @var{[@var{sol},[[v1,pos1],@dots{},[vl,posl]]]} なるリストとなる.
418: ここで @var{sol} は @var{mat sol = vect} を満たすベクトル (特殊解),
419: のこりは核の基底である.
420: @item
421: 解が存在しないような @var{vect} を指定するとエラーを起こす.
422: @item
423: @code{linalg.compute_image} は有理数行列 @var{mat} の像の基底を計算する.
424: @item
425: @code{linalg.compute_image} の出力は, @var{[v1,pos1,hist1],@dots{},[vl,posl,histl]} の形のリストである.
426: ここで, @var{vi} は基底ベクトル, @var{posi} は, @var{vi} の主成分位置, すなわち
427: 最小のインデックスを持つ成分の位置を表す. @var{posi} は全て異なること
428: が保証される. @var{histi} は, @var{vi} が, @var{mat} の列からどのように
429: 作られるかを示すデータである. 分散多項式で表現されており, 指数が行インデックス,
430: 係数が, 一次結合の係数を表す. このデータにより作られるベクトルは, 定数倍を
431: 除いて @var{vi} に等しい.
1.1 noro 432: @end itemize
433:
434: @example
435: [1643] A=linalg.random_rmat(3,5,3);
436: [ 2 1 0 1 -1 ]
437: [ 2 -2 1 0 1 ]
438: [ 2 1 -1 -1 -1 ]
439: [1644] linalg.compute_kernel(A);
440: [[[ 1 0 -8 4 6 ],0],[[ 0 1 2 -1 0 ],1]]
441: [1645] linalg.compute_kernel(A|rhs=vector(3,[1,2,3]));
442: [[ 0 0 8 -5 -6 ],[[[ 1 0 -8 4 6 ],0],[[ 0 1 2 -1 0 ],1]]]
443: [1646] linalg.compute_image(A);
444: [[[ 1 1 1 ],0,(1)*<<0>>],[[ 0 -3 0 ],1,(1)*<<1>>+(-1)*<<0>>],
445: [[ 0 0 3 ],2,(-3)*<<2>>+(-1)*<<1>>+(1)*<<0>>]]
446: @end example
447:
1.2 noro 448: @node linalg.minipoly_mat,,, 行列に関する函数
1.1 noro 449: @subsection @code{linalg.minipoly_mat}
450: @findex linalg.minipoly_mat
451:
452: @table @t
453: @item linalg.minipoly_mat(@var{mat})
1.2 noro 454: :: 有理数行列 @var{mat} の最小多項式を計算する.
1.1 noro 455: @end table
456:
457: @table @var
458: @item return
1.2 noro 459: 一変数多項式
1.1 noro 460: @item mat
1.2 noro 461: 有理数行列
1.1 noro 462: @end table
463:
464: @itemize @bullet
465: @item
1.2 noro 466: 有理数行列 @var{mat} の最小多項式を計算し, 変数 @var{x} の一変数多項式として
467: 返す.
1.1 noro 468: @end itemize
469:
470: @example
471: [1682] A=linalg.random_mat(3,3);
472: [ -2 2 -2 ]
473: [ 0 1 -1 ]
474: [ 1 -2 -1 ]
475: [1683] linalg.minipoly_mat(A);
476: x^3+2*x^2-x-6
477: [1684] A^3+2*A^2-A-6*linalg.unit_mat(3);
478: [ 0 0 0 ]
479: [ 0 0 0 ]
480: [ 0 0 0 ]
481: @end example
482:
1.2 noro 483: @node linalg.jordan_canonical_form linalg.sample_mat,,, 行列に関する函数
1.1 noro 484: @subsection @code{linalg.jordan_canonical_form},@code{linalg.sample_mat}
485: @findex linalg.jordan_canonical_form
486:
487: @table @t
488: @item linalg.jordan_canonical_form(@var{mat})
1.2 noro 489: :: 有理数正方行列のジョルダン標準形を計算する.
1.1 noro 490: @itemx linalg.sample_mat(@var{list})
1.2 noro 491: :: 指定されたジョルダン標準形を持つ有理数正方行列を生成する.
1.1 noro 492: @end table
493:
494: @table @var
495: @item return
1.2 noro 496: リスト
1.1 noro 497: @item mat
1.2 noro 498: 有理数正方行列
1.1 noro 499: @item list
1.2 noro 500: ジョルダンブロックのリスト
1.1 noro 501: @end table
502:
503: @itemize @bullet
504: @item
1.2 noro 505: @code{linalg.jordan_canonical_form(@var{mat})} は
506: 有理数正方行列 @var{mat} のジョルダン標準形を計算する.
1.1 noro 507: @item
1.2 noro 508: 出力は @var{[P,[[e1,s1,n1],@dots{},[el,sl,nl]],defideal]} という形のリスト
509: である. ここで, @var{P} は変換行列, すなわち @var{P^(-1)AP} がジョルダン
510: 標準形となる正則行列, @var{[ei,si,ni]} は, 固有値 @var{ei}, サイズ @var{si}
511: のジョルダンブロックが @var{ni} 個並ぶことを意味する.
512: @item
513: 一般に, 出力は @var{a0}, @dots{}, @var{am} の形のパラメタを含む. これらは
514: 実際には, ある有理数体上既約な多項式の根である. これらを定義する
515: 方程式として, @var{defideal} が与えられる. @var{deflideal} はリストのリスト
516: であり, 各要素であるリストは, 一組の共役な根全体を定義するイデアルを
517: 表す. 実際には, 対応する一変数多項式の根を, 根と係数の関係により表した
518: ものである.
519: @item
520: @code{linalg.sample_mat(@var{list})} は指定されたジョルダン標準形を
521: 持つような行列を生成する. @var{list} は @var{[[e1,s1],@dots{},[el,sl]]}
522: の形のリストで, @var{[ei,s1]} は固有値 @var{ei}, サイズ @var{si} の
523: ジョルダンブロックを表す. 同じサイズのジョルダンブロックはいくつあって
524: もよい.
1.1 noro 525: @end itemize
526:
527: @example
528: [ 1 -2 0 ]
529: [ -1 2 1 ]
530: [ 0 -2 1 ]
531: [1807] L=linalg.jordan_canonical_form(A);
532: [[ 2 -2 0 ]
533: [ -1 0 1 ]
534: [ 2 -2 -1 ],[[2,1,1],[1,2,1]],[]]
535: [1808] P=L[0]$T=invmat(P)$PI=T[0]/T[1]$
536: [1809] [1810] [1811] PI*A*P;
537: [ 2 0 0 ]
538: [ 0 1 1 ]
539: [ 0 0 1 ]
540: [1810] A=linalg.sample_mat([[1,2],[1,1],[2,3],[2,1],[2,1]]);
541: [ 2 0 2 113 14 678 0 0 ]
542: [ -1 1 -2 -120 -14 -720 0 0 ]
543: [ -7 0 -13 -840 -105 -5040 0 0 ]
544: [ 54 54 0 380 0 2268 -54 0 ]
545: [ 1 0 2 112 16 672 0 0 ]
546: [ -9 -9 0 -63 0 -376 9 0 ]
547: [ 1 1 0 7 0 42 1 0 ]
548: [ 1 1 0 7 0 42 0 2 ]
549: [1811] L=linalg.jordan_canonical_form(A);
550: [[ 0 -6 42 0 0 0 2 2 ]
551: [ 0 6 0 0 0 0 0 -2 ]
552: [ 42 -294 0 0 0 0 -1 -1 ]
553: [ 0 0 0 6 0 108 0 0 ]
554: [ -6 42 48 0 0 0 0 0 ]
555: [ 0 0 -1 -1 0 -18 0 0 ]
556: [ 0 0 0 0 0 2 0 0 ]
557: [ 0 0 0 0 1 0 -2 0 ],[[2,3,1],[2,1,2],[1,2,1],[1,1,1]],[]]
558: @end example
559:
560: @table @t
1.2 noro 561: @item 参照
1.1 noro 562: @fref{linalg.minipoly_mat}
563: @end table
564:
1.2 noro 565: @comment --- おまじない ---
1.1 noro 566: @node Index,,, Top
567: @unnumbered Index
568: @printindex fn
569: @printindex cp
570: @iftex
571: @vfill @eject
572: @end iftex
573: @summarycontents
574: @contents
575: @bye
1.2 noro 576: @comment --- おまじない終り ---
1.1 noro 577:
578: * linalg.reduce_vect::
579: * linalg.partial_fraction::
580: * linalg.power_mat linalg.exp_mat::
581:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>