version 1.3, 2009/11/03 02:43:36 |
version 1.4, 2017/03/30 06:16:36 |
|
|
%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 $ |
%comment $OpenXM: OpenXM/src/asir-contrib/packages/doc/noro_matrix/noro_matrix-ja.texi,v 1.3 2009/11/03 02:43:36 noro Exp $ |
%comment --- おまじない --- |
%comment --- 障 --- |
\input ../../../../asir-doc/texinfo |
\input ../../../../asir-doc/texinfo |
@iftex |
@iftex |
@catcode`@#=6 |
@catcode`@#=6 |
|
|
@overfullrule=0pt |
@overfullrule=0pt |
@c -*-texinfo-*- |
@c -*-texinfo-*- |
@comment %**start of header |
@comment %**start of header |
@comment --- おまじない終り --- |
@comment --- 障腟 --- |
|
|
@comment --- GNU info ファイルの名前 --- |
@comment --- GNU info <ゃ --- |
@setfilename asir-contrib-noro_matrix |
@setfilename asir-contrib-noro_matrix |
|
|
@comment --- タイトル --- |
@comment --- 帥ゃ --- |
@settitle noro_matrix |
@settitle noro_matrix |
|
|
@comment %**end of header |
@comment %**end of header |
@comment %@setchapternewpage odd |
@comment %@setchapternewpage odd |
|
|
@comment --- おまじない --- |
@comment --- 障 --- |
@ifinfo |
@ifinfo |
@macro fref{name} |
@macro fref{name} |
@ref{\name\,,@code{\name\}} |
@ref{\name\,,@code{\name\}} |
|
|
@end iftex |
@end iftex |
|
|
@titlepage |
@titlepage |
@comment --- おまじない終り --- |
@comment --- 障腟 --- |
|
|
@comment --- タイトル, バージョン, 著者名, 著作権表示 --- |
@comment --- 帥ゃ, 若吾с, , 篏罔茵腓 --- |
@title noro_matrix |
@title noro_matrix |
@subtitle noro_matrix User's Manual |
@subtitle noro_matrix User's Manual |
@subtitle Edition 1.0 |
@subtitle Edition 1.0 |
Line 48 Copyright @copyright{} Masayuki Noro |
|
Line 48 Copyright @copyright{} Masayuki Noro |
|
2008. All rights reserved. |
2008. All rights reserved. |
@end titlepage |
@end titlepage |
|
|
@comment --- おまじない --- |
@comment --- 障 --- |
@synindex vr fn |
@synindex vr fn |
@comment --- おまじない終り --- |
@comment --- 障腟 --- |
|
|
@comment --- @node は GNU info, HTML 用 --- |
@comment --- @node GNU info, HTML --- |
@comment --- @node の引数は node-name, next, previous, up --- |
@comment --- @node 綣違 node-name, next, previous, up --- |
@node Top,, (dir), (dir) |
@node Top,, (dir), (dir) |
|
|
@comment --- @menu は GNU info, HTML 用 --- |
@comment --- @menu GNU info, HTML --- |
@comment --- chapter 名を正確に並べる --- |
@comment --- chapter 罩g∈筝鴻 --- |
@menu |
@menu |
* 行列演算パッケージ noro_matrix.rr:: |
* 茵羲膊宴若 noro_matrix.rr:: |
* Index:: |
* Index:: |
@end menu |
@end menu |
|
|
@comment --- chapter の開始 --- |
@comment --- chapter 紮 --- |
@comment --- 親 chapter 名を正確に --- |
@comment --- 荀 chapter 罩g∈ --- |
@node 行列演算パッケージ noro_matrix.rr,,, Top |
@node 茵羲膊宴若 noro_matrix.rr,,, Top |
@chapter 行列演算パッケージ noro_matrix.rr |
@chapter 茵羲膊宴若 noro_matrix.rr |
|
|
@comment --- section 名を正確に並べる --- |
@comment --- section 罩g∈筝鴻 --- |
@menu |
@menu |
* 行列に関する函数:: |
* 茵≪醇:: |
@end menu |
@end menu |
|
|
このマニュアルでは, asir-contrib パッケージに収録されている, |
ャ≪с, asir-contrib 宴若吾蚊, |
行列演算パッケージ @samp{noro_matrix.rr} について解説する. |
茵羲膊宴若 @samp{noro_matrix.rr} ゃ茹h. |
このパッケージを使うには, まず @samp{noro_matrix.rr} をロードする. |
宴若吾篏帥, 障 @samp{noro_matrix.rr} 若. |
@example |
@example |
[1831] load("noro_matrix.rr"); |
[1831] load("noro_matrix.rr"); |
[2014] |
[2014] |
@end example |
@end example |
このパッケージの函数を呼び出すには, 全て @code{linalg.} を先頭につける. |
宴若吾醇違若喝冴, @code{linalg.} ゃ. |
@example |
@example |
[2014] linalg.random_mat(3,5); |
[2014] linalg.random_mat(3,5); |
[ 0 -1 -1 ] |
[ 0 -1 -1 ] |
[ -1 3 0 ] |
[ -1 3 0 ] |
[ -2 -2 4 ] |
[ -2 -2 4 ] |
@end example |
@end example |
このマニュアルでは, 関連する組込み函数についても解説する. |
ャ≪с, ∫c腟莨若水醇違ゃ茹h. |
|
|
@comment --- section の開始 --- |
@comment --- section 紮 --- |
@comment --- 書体指定について --- |
@comment --- 娯絎ゃ --- |
@comment --- @code{} はタイプライタ体表示 --- |
@comment --- @code{} 帥ゃゃ推茵腓 --- |
@comment --- @var{} は斜字体表示 --- |
@comment --- @var{} 絖篏茵腓 --- |
@comment --- @b{} はボールド表示 --- |
@comment --- @b{} 若茵腓 --- |
@comment --- @samp{} はファイル名などの表示 --- |
@comment --- @samp{} <ゃ茵腓 --- |
|
|
@node 行列に関する函数,,, 行列演算パッケージ noro_matrix.rr |
@node 茵≪醇,,, 茵羲膊宴若 noro_matrix.rr |
@section 行列に関する函数 |
@section 茵≪醇 |
|
|
@menu |
@menu |
* matrix vector linalg.unit_mat:: |
* matrix vector linalg.unit_mat:: |
Line 110 Copyright @copyright{} Masayuki Noro |
|
Line 110 Copyright @copyright{} Masayuki Noro |
|
* linalg.jordan_canonical_form linalg.sample_mat:: |
* linalg.jordan_canonical_form linalg.sample_mat:: |
@end menu |
@end menu |
|
|
@node matrix vector linalg.unit_mat,,, 行列に関する函数 |
@node matrix vector linalg.unit_mat,,, 茵≪醇 |
@subsection @code{matrix},@code{vector},@code{linalg.unit_mat} |
@subsection @code{matrix},@code{vector},@code{linalg.unit_mat} |
@findex matrix |
@findex matrix |
@findex vector |
@findex vector |
@findex linalg.unit_mat |
@findex linalg.unit_mat |
|
|
@table @t |
@table @t |
@item matrix(@var{m},@var{n}[,@var{listoflist}]) :: @var{m}行@var{n}列の行列を生成する. |
@item matrix(@var{m},@var{n}[,@var{listoflist}]) :: @var{m}茵@var{n}茵. |
@itemx vector(@var{size}[,@var{list}]) :: サイズが @var{size} のベクトルを生成する. |
@itemx vector(@var{size}[,@var{list}]) :: 泣ゃ冴 @var{size} . |
@itemx linalg.unit_mat(@var{size}) :: サイズが @var{size} の単位行列を生成する. |
@itemx linalg.unit_mat(@var{size}) :: 泣ゃ冴 @var{size} 篏茵. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
行列 |
茵 |
@item size |
@item size |
@itemx m |
@itemx m |
@itemx n |
@itemx n |
正整数 |
罩f贋 |
@item listoflist |
@item listoflist |
リストのリスト |
鴻鴻 |
@item list |
@item list |
リスト |
鴻 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item |
@item |
@code{matrix}, @code{vector} は組込み, @code{linalg.unit_mat} は @samp{noro_matrix.rr} |
@code{matrix}, @code{vector} 腟莨若, @code{linalg.unit_mat} @samp{noro_matrix.rr} |
で定義されている. |
у臂. |
@item |
@item |
@code{matrix}, @code{vector} は, @var{listoflist}, @var{list} が |
@code{matrix}, @code{vector} , @var{listoflist}, @var{list} |
ない場合には零行列, 零ベクトルを生成する. |
翫区, 吟. |
@item |
@item |
@var{listoflist} は @var{[[1,2,3],[3,4,5]]} のようにリストからなるリストで |
@var{listoflist} @var{[[1,2,3],[3,4,5]]} 鴻鴻 |
ある. これが引数として与えられた場合, 要素であるリストを使って |
. 綣違筝翫, 荀膣с鴻篏帥c |
行列の各行が順に初期化される. |
茵茵. |
@item |
@item |
@var{list} は @var{[1,2,3]} のようなリストである. |
@var{list} @var{[1,2,3]} 鴻с. |
これが引数として与えられた場合, このリストの要素によりベクトルの各 |
綣違筝翫, 鴻荀膣 |
成分が初期化される. |
. |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 168 Copyright @copyright{} Masayuki Noro |
|
Line 168 Copyright @copyright{} Masayuki Noro |
|
@end example |
@end example |
|
|
|
|
@node linalg.random_mat linalg.random_rmat linalg.random_vect,,, 行列に関する函数 |
@node linalg.random_mat linalg.random_rmat linalg.random_vect,,, 茵≪醇 |
@subsection @code{linalg.random_mat}, @code{linalg.random_rmat}, @code{linalg.random_vect} |
@subsection @code{linalg.random_mat}, @code{linalg.random_rmat}, @code{linalg.random_vect} |
@findex linalg.random_mat |
@findex linalg.random_mat |
@findex linalg.random_rmat |
@findex linalg.random_rmat |
@findex linalg.random_vect |
@findex linalg.random_vect |
|
|
@table @t |
@table @t |
@item linalg.random_mat(@var{size},@var{bound}) :: 正方整数行列をランダム生成する. |
@item linalg.random_mat(@var{size},@var{bound}) :: 罩f号贋域潟. |
@itemx linalg.random_rmat(@var{m},@var{n},@var{bound}) :: @var{m} 行 @var{n} 列の整数行列をランダム生成する. |
@itemx linalg.random_rmat(@var{m},@var{n},@var{bound}) :: @var{m} 茵 @var{n} 贋域潟. |
@itemx linalg.random_vect(@var{size},@var{bound}) :: 整数ベクトルをランダム生成する. |
@itemx linalg.random_vect(@var{size},@var{bound}) :: 贋違潟. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
整数 |
贋 |
@item number |
@item number |
整数 |
贋 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item linalg.random_mat(@var{size},@var{bound}) は, サイズ @var{size}, |
@item linalg.random_mat(@var{size},@var{bound}) , 泣ゃ @var{size}, |
要素が@var{bound}未満の |
荀膣@var{bound}羣 |
正方整数行列をランダム生成する. |
罩f号贋域潟. |
@item |
@item |
@item linalg.random_rmat(@var{m},@var{n},@var{bound}) は |
@item linalg.random_rmat(@var{m},@var{n},@var{bound}) |
@var{m} 行 @var{n} 列の, |
@var{m} 茵 @var{n} , |
要素が@var{bound}未満の整数行列をランダム生成する. |
荀膣@var{bound}羣贋域潟. |
@item linalg.random_vect(@var{size},@var{bound}) は長さ @var{size}の, |
@item linalg.random_vect(@var{size},@var{bound}) 激 @var{size}, |
要素が@var{bound}未満の整数ベクトルをランダム生成する. |
荀膣@var{bound}羣贋違潟. |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 212 Copyright @copyright{} Masayuki Noro |
|
Line 212 Copyright @copyright{} Masayuki Noro |
|
[ -3 2 3 ] |
[ -3 2 3 ] |
@end example |
@end example |
|
|
@node invmat,,, 行列に関する函数 |
@node invmat,,, 茵≪醇 |
@subsection @code{invmat} |
@subsection @code{invmat} |
@findex invmat |
@findex invmat |
|
|
@table @t |
@table @t |
@item invmat(@var{mat}) |
@item invmat(@var{mat}) |
:: @var{mat} の逆行列を計算する. |
:: @var{mat} 茵荐膊. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
リスト |
鴻 |
@item mat |
@item mat |
正方行列 |
罩f壕 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item |
@item |
正方行列 @var{mat} の逆行列を計算する. |
罩f壕 @var{mat} 茵荐膊. |
@item |
@item |
結果は @var{[invmat,denom]} なるリストである. ここで, @var{invmat} は |
腟 @var{[invmat,denom]} 鴻с. , @var{invmat} |
行列, @var{denom} は分母を表す式であり, @var{invmat/denom} が逆行列を表す. |
茵, @var{denom} 罸茵綣с, @var{invmat/denom} 茵茵. |
@item |
@item |
@var{mat}が整数行列, あるいは多項式行列の場合, @var{invmat} は |
@var{mat}贋域, 紊綣頫翫, @var{invmat} |
それぞれ整数行列, あるいは多項式となる. この仕様は, 無駄な分数, 有理式 |
贋域, 紊綣. 篁罕, ♂, 綣 |
計算を省くために定められているが, 使いにくい場合もある. |
荐膊絎, 篏帥翫. |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 258 Copyright @copyright{} Masayuki Noro |
|
Line 258 Copyright @copyright{} Masayuki Noro |
|
[ 0 0 0 1 ] |
[ 0 0 0 1 ] |
@end example |
@end example |
|
|
@node det nd_det,,, 行列に関する函数 |
@node det nd_det,,, 茵≪醇 |
@subsection @code{det},@code{nd_det} |
@subsection @code{det},@code{nd_det} |
@findex det |
@findex det |
@findex nd_det |
@findex nd_det |
Line 266 Copyright @copyright{} Masayuki Noro |
|
Line 266 Copyright @copyright{} Masayuki Noro |
|
@table @t |
@table @t |
@item det(@var{mat}[,@var{mod}]) |
@item det(@var{mat}[,@var{mod}]) |
@itemx nd_det(@var{mat}[,@var{mod}]) |
@itemx nd_det(@var{mat}[,@var{mod}]) |
:: @var{mat} の行列式を求める. |
:: @var{mat} 茵綣羆. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
式 |
綣 |
@item mat |
@item mat |
行列 |
茵 |
@item mod |
@item mod |
素数 |
膣 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item |
@item |
@code{det} および @code{nd_det} は行列 @var{mat} の行列式を求める. |
@code{det} @code{nd_det} 茵 @var{mat} 茵綣羆. |
@item |
@item |
引数 @var{mod} がある時, GF(@var{mod}) 上での行列式を求める. |
綣 @var{mod} , GF(@var{mod}) 筝с茵綣羆. |
@item |
@item |
分数なしのガウス消去法によっているため, 多変数多項式を成分とする |
違号サ羈c, 紊紊医綣 |
行列に対しては小行列式展開による方法のほうが効率がよい場合もある. |
茵絲障絨頫綣鎡号祉合翫. |
@item |
@item |
@code{nd_det} は有理数または有限体上の多項式行列の行列式 |
@code{nd_det} 違障篏筝紊綣頫茵綣 |
計算専用である. アルゴリズムはやはり分数なしのガウス消去法だが, |
荐膊絨с. ≪眼冴違号サ羈, |
データ構造および乗除算の工夫により, 一般に @code{det} より高速に |
若炊割ょ綏ュか, 筝 @code{det} 蕭 |
計算できる. |
荐膊с. |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 309 Copyright @copyright{} Masayuki Noro |
|
Line 309 Copyright @copyright{} Masayuki Noro |
|
[-x+z,1],[-x+v,1],[-x+y,1]] |
[-x+z,1],[-x+v,1],[-x+y,1]] |
@end example |
@end example |
|
|
@node generic_gauss_elim,,, 行列に関する函数 |
@node generic_gauss_elim,,, 茵≪醇 |
@subsection @code{generic_gauss_elim} |
@subsection @code{generic_gauss_elim} |
@findex generic_gauss_elim |
@findex generic_gauss_elim |
|
|
@table @t |
@table @t |
@item generic_gauss_elim(@var{mat}) |
@item generic_gauss_elim(@var{mat}) |
:: 整数行列を簡約する. |
:: 贋域膂∞. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
リスト |
鴻 |
@item mat |
@item mat |
整数行列 |
贋域 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item |
@item |
整数行列 @var{mat} の簡約階段形 (reduced row echelon form; rref) を計算し, |
贋域 @var{mat} 膂∞罧球就 (reduced row echelon form; rref) 荐膊, |
それを構成するデータをリストとして返す. |
罕若帥鴻菴. |
@item |
@item |
出力は @var{[B,D,J,K]} の形のリストである. 入力 @var{mat} が @var{m} 行 |
阪 @var{[B,D,J,K]} 綵≪鴻с. ュ @var{mat} @var{m} 茵 |
@var{n} 列とし, そのランクが @var{r} とすれば, @var{B} は @var{r} 行 |
@var{n} , 潟 @var{r} , @var{B} @var{r} 茵 |
@var{n-r} 列の行列である. @var{D} は整数, @var{J} は長さ @var{r}, |
@var{n-r} 茵с. @var{D} 贋, @var{J} 激 @var{r}, |
@var{K} は長さ @var{n-r} の整数ベクトルである. |
@var{K} 激 @var{n-r} 贋違с. |
@item |
@item |
出力データは @var{mat} の rref をエンコードしている. |
阪若帥 @var{mat} rref 潟潟若. |
rref の第 @var{J[l]} 列は @var{l} 行目のみが @var{D}, それ以外は 0 の |
rref 膃 @var{J[l]} @var{l} 茵帥 @var{D}, 篁ュ 0 |
列ベクトル, rref の 第 @var{K[l]} 列は @var{B} の第 @var{l} 列を, 上から |
, rref 膃 @var{K[l]} @var{B} 膃 @var{l} , 筝 |
詰めたものとなる. |
荅違. |
@item |
@item |
このような形式で出力する理由は, 入力行列のランクが大きい場合に, |
綵√у阪宴, ュ茵潟紊с翫, |
rref は 0 が多い疎な行列となり, メモリを多く消費することと, |
rref 0 紊茵, <≪紊闉莢祉, |
この形の方が, プログラム上でデータを利用しやすいことによる. |
綵≪鴻, 違筝с若帥. |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 356 rref は 0 が多い疎な行列となり, メモリを多く消費するこ |
|
Line 356 rref は 0 が多い疎な行列となり, メモリを多く消費するこ |
|
[ -1 1 ],2,[ 0 1 2 ],[ 3 4 ]] |
[ -1 1 ],2,[ 0 1 2 ],[ 3 4 ]] |
@end example |
@end example |
|
|
例えば, rref を計算する函数は次のように書ける. |
箴, rref 荐膊醇違罨<吾. |
@example |
@example |
def my_rref(A) |
def my_rref(A) |
@{ |
@{ |
|
|
|
|
|
|
@table @t |
@table @t |
@item 参照 |
@item |
@fref{matrix vector linalg.unit_mat} |
@fref{matrix vector linalg.unit_mat} |
@end table |
@end table |
|
|
@node linalg.compute_kernel linalg.compute_image,,, 行列に関する函数 |
@node linalg.compute_kernel linalg.compute_image,,, 茵≪醇 |
@subsection @code{linalg.compute_kernel}, @code{linalg.compute_image} |
@subsection @code{linalg.compute_kernel}, @code{linalg.compute_image} |
@findex linalg.compute_kernel |
@findex linalg.compute_kernel |
@findex linalg.compute_image |
@findex linalg.compute_image |
|
|
@table @t |
@table @t |
@item linalg.compute_kernel(@var{mat}[|rhs=@var{vect}]) |
@item linalg.compute_kernel(@var{mat}[|rhs=@var{vect}]) |
:: 有理数行列の核の基底を計算する. |
:: 域吾阪荐膊. |
@itemx linalg.compute_image(@var{mat}) |
@itemx linalg.compute_image(@var{mat}) |
:: 有理数行列の像の基底を計算する. |
:: 域阪荐膊. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
リスト |
鴻 |
@item mat |
@item mat |
有理数行列 |
域 |
@item vect |
@item vect |
有理数ベクトル |
違 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item |
@item |
@var{m} 行 @var{n} 列の行列を, 列ベクトルに左から掛けることにより |
@var{m} 茵 @var{n} 茵, 綏 |
@var{n} 次元ベクトル空間から |
@var{n} 罨≦腥咲 |
@var{m} 次元ベクトル空間への線形写像とみなす. |
@var{m} 罨≦腥咲吾膩綵√帥. |
@item |
@item |
@code{linalg.compute_kernel} は有理数行列 @var{mat} の核の基底を計算する. |
@code{linalg.compute_kernel} 域 @var{mat} 吾阪荐膊. |
@item |
@item |
@code{linalg.compute_kernel} の出力は @var{[[v1,pos1],@dots{},[vl,posl]]} の形のリストである. ここで, |
@code{linalg.compute_kernel} 阪 @var{[[v1,pos1],@dots{},[vl,posl]]} 綵≪鴻с. , |
@var{vi} は基底ベクトル, @var{posi} は, @var{vi} の主成分位置, すなわち |
@var{vi} 阪, @var{posi} , @var{vi} 筝紙篏臀, |
最小のインデックスを持つ成分の位置を表す. @var{posi} は全て異なること |
絨ゃ潟鴻ゆ篏臀茵. @var{posi} 違 |
が保証される. |
篆荐若. |
@item |
@item |
オプション @var{vect} が指定された場合, 結果は |
激с @var{vect} 絎翫, 腟 |
@var{[@var{sol},[[v1,pos1],@dots{},[vl,posl]]]} なるリストとなる. |
@var{[@var{sol},[[v1,pos1],@dots{},[vl,posl]]]} 鴻. |
ここで @var{sol} は @var{mat sol = vect} を満たすベクトル (特殊解), |
@var{sol} @var{mat sol = vect} 羣 (号茹), |
のこりは核の基底である. |
吾阪с. |
@item |
@item |
解が存在しないような @var{vect} を指定するとエラーを起こす. |
茹c絖 @var{vect} 絎若莎激. |
@item |
@item |
@code{linalg.compute_image} は有理数行列 @var{mat} の像の基底を計算する. |
@code{linalg.compute_image} 域 @var{mat} 阪荐膊. |
@item |
@item |
@code{linalg.compute_image} の出力は, @var{[v1,pos1,hist1],@dots{},[vl,posl,histl]} の形のリストである. |
@code{linalg.compute_image} 阪, @var{[v1,pos1,hist1],@dots{},[vl,posl,histl]} 綵≪鴻с. |
ここで, @var{vi} は基底ベクトル, @var{posi} は, @var{vi} の主成分位置, すなわち |
, @var{vi} 阪, @var{posi} , @var{vi} 筝紙篏臀, |
最小のインデックスを持つ成分の位置を表す. @var{posi} は全て異なること |
絨ゃ潟鴻ゆ篏臀茵. @var{posi} 違 |
が保証される. @var{histi} は, @var{vi} が, @var{mat} の列からどのように |
篆荐若. @var{histi} , @var{vi} , @var{mat} |
作られるかを示すデータである. 分散多項式で表現されており, 指数が行インデックス, |
篏腓冴若帥с. e綣ц;憗, 違茵ゃ潟, |
係数が, 一次結合の係数を表す. このデータにより作られるベクトルは, 定数倍を |
篆違, 筝罨∞篆違茵. 若帥篏, 絎医 |
除いて @var{vi} に等しい. |
ゃ @var{vi} 膈. |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
[[ 0 0 3 ],2,(-3)*<<2>>+(-1)*<<1>>+(1)*<<0>>]] |
[[ 0 0 3 ],2,(-3)*<<2>>+(-1)*<<1>>+(1)*<<0>>]] |
@end example |
@end example |
|
|
@node linalg.minipoly_mat,,, 行列に関する函数 |
@node linalg.minipoly_mat,,, 茵≪醇 |
@subsection @code{linalg.minipoly_mat} |
@subsection @code{linalg.minipoly_mat} |
@findex linalg.minipoly_mat |
@findex linalg.minipoly_mat |
|
|
@table @t |
@table @t |
@item linalg.minipoly_mat(@var{mat}) |
@item linalg.minipoly_mat(@var{mat}) |
:: 有理数行列 @var{mat} の最小多項式を計算する. |
:: 域 @var{mat} 絨鎀綣荐膊. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
一変数多項式 |
筝紊医綣 |
@item mat |
@item mat |
有理数行列 |
域 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item |
@item |
有理数行列 @var{mat} の最小多項式を計算し, 変数 @var{x} の一変数多項式として |
域 @var{mat} 絨鎀綣荐膊, 紊 @var{x} 筝紊医綣 |
返す. |
菴. |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
[ 0 0 0 ] |
[ 0 0 0 ] |
@end example |
@end example |
|
|
@node linalg.jordan_canonical_form linalg.sample_mat,,, 行列に関する函数 |
@node linalg.jordan_canonical_form linalg.sample_mat,,, 茵≪醇 |
@subsection @code{linalg.jordan_canonical_form},@code{linalg.sample_mat} |
@subsection @code{linalg.jordan_canonical_form},@code{linalg.sample_mat} |
@findex linalg.jordan_canonical_form |
@findex linalg.jordan_canonical_form |
|
|
@table @t |
@table @t |
@item linalg.jordan_canonical_form(@var{mat}) |
@item linalg.jordan_canonical_form(@var{mat}) |
:: 有理数正方行列のジョルダン標準形を計算する. |
:: 井f壕吾с恰羣綵≪荐膊. |
@itemx linalg.sample_mat(@var{list}) |
@itemx linalg.sample_mat(@var{list}) |
:: 指定されたジョルダン標準形を持つ有理数正方行列を生成する. |
:: 絎吾с恰羣綵≪ゆ井f壕. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
リスト |
鴻 |
@item mat |
@item mat |
有理数正方行列 |
井f壕 |
@item list |
@item list |
ジョルダンブロックのリスト |
吾с潟鴻 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item |
@item |
@code{linalg.jordan_canonical_form(@var{mat})} は |
@code{linalg.jordan_canonical_form(@var{mat})} |
有理数正方行列 @var{mat} のジョルダン標準形を計算する. |
井f壕 @var{mat} 吾с恰羣綵≪荐膊. |
@item |
@item |
出力は @var{[P,[[e1,s1,n1],@dots{},[el,sl,nl]],defideal]} という形のリスト |
阪 @var{[P,[[e1,s1,n1],@dots{},[el,sl,nl]],defideal]} 綵≪鴻 |
である. ここで, @var{P} は変換行列, すなわち @var{P^(-1)AP} がジョルダン |
с. , @var{P} 紊茵, @var{P^(-1)AP} 吾с |
標準形となる正則行列, @var{[ei,si,ni]} は, 固有値 @var{ei}, サイズ @var{si} |
罔羣綵≪罩e茵, @var{[ei,si,ni]} , 堺 @var{ei}, 泣ゃ @var{si} |
のジョルダンブロックが @var{ni} 個並ぶことを意味する. |
吾с潟 @var{ni} 筝吟潟. |
@item |
@item |
一般に, 出力は @var{a0}, @dots{}, @var{am} の形のパラメタを含む. これらは |
筝, 阪 @var{a0}, @dots{}, @var{am} 綵≪<帥. |
実際には, ある有理数体上既約な多項式の根である. これらを定義する |
絎, 遺筝∝紊綣鴻с. 絎臂 |
方程式として, @var{defideal} が与えられる. @var{deflideal} はリストのリスト |
合綣, @var{defideal} 筝. @var{deflideal} 鴻鴻 |
であり, 各要素であるリストは, 一組の共役な根全体を定義するイデアルを |
с, 荀膣с鴻, 筝腟怨醜劫篏絎臂ゃ≪ |
表す. 実際には, 対応する一変数多項式の根を, 根と係数の関係により表した |
茵. 絎, 絲上筝紊医綣鴻, 鴻篆違≫茵 |
ものである. |
с. |
@item |
@item |
@code{linalg.sample_mat(@var{list})} は指定されたジョルダン標準形を |
@code{linalg.sample_mat(@var{list})} 絎吾с恰羣綵≪ |
持つような行列を生成する. @var{list} は @var{[[e1,s1],@dots{},[el,sl]]} |
ゃ茵. @var{list} @var{[[e1,s1],@dots{},[el,sl]]} |
の形のリストで, @var{[ei,s1]} は固有値 @var{ei}, サイズ @var{si} の |
綵≪鴻, @var{[ei,s1]} 堺 @var{ei}, 泣ゃ @var{si} |
ジョルダンブロックを表す. 同じサイズのジョルダンブロックはいくつあって |
吾с潟茵. 泣ゃ冴吾с潟ゃc |
もよい. |
. |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item 参照 |
@item |
@fref{linalg.minipoly_mat} |
@fref{linalg.minipoly_mat} |
@end table |
@end table |
|
|
@comment --- おまじない --- |
@comment --- 障 --- |
@node Index,,, Top |
@node Index,,, Top |
@unnumbered Index |
@unnumbered Index |
@printindex fn |
@printindex fn |
|
|
@summarycontents |
@summarycontents |
@contents |
@contents |
@bye |
@bye |
@comment --- おまじない終り --- |
@comment --- 障腟 --- |
|
|
* linalg.reduce_vect:: |
* linalg.reduce_vect:: |
* linalg.partial_fraction:: |
* linalg.partial_fraction:: |