=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/doc/noro_module_syz/noro_module_syz-ja.texi,v retrieving revision 1.1 retrieving revision 1.5 diff -u -p -r1.1 -r1.5 --- OpenXM/src/asir-contrib/packages/doc/noro_module_syz/noro_module_syz-ja.texi 2016/08/30 22:44:30 1.1 +++ OpenXM/src/asir-contrib/packages/doc/noro_module_syz/noro_module_syz-ja.texi 2020/09/08 09:16:57 1.5 @@ -1,6 +1,6 @@ -%comment $OpenXM$ -%comment --- おまじない --- -\input ../../../../asir-doc/texinfo +%comment $OpenXM: OpenXM/src/asir-contrib/packages/doc/noro_module_syz/noro_module_syz-ja.texi,v 1.4 2017/08/31 06:31:47 takayama Exp $ +%comment --- 障 --- +\input texinfo-ja @iftex @catcode`@#=6 @def@fref#1{@xrefX[#1,,@code{#1},,,]} @@ -8,20 +8,21 @@ @catcode`@#=@other @end iftex @overfullrule=0pt +@documentlanguage ja @c -*-texinfo-*- @comment %**start of header -@comment --- おまじない終り --- +@comment --- 障腟 --- -@comment --- GNU info ファイルの名前 --- +@comment --- GNU info <ゃ --- @setfilename asir-contrib-noro_module_syz -@comment --- タイトル --- +@comment --- 帥ゃ --- @settitle noro_module_syz @comment %**end of header @comment %@setchapternewpage odd -@comment --- おまじない --- +@comment --- 障 --- @ifinfo @macro fref{name} @ref{\name\,,@code{\name\}} @@ -33,13 +34,13 @@ @end iftex @titlepage -@comment --- おまじない終り --- +@comment --- 障腟 --- -@comment --- タイトル, バージョン, 著者名, 著作権表示 --- +@comment --- 帥ゃ, 若吾с, , 篏罔茵腓 --- @title noro_module_syz @subtitle noro_module_syz User's Manual -@subtitle Edition 1.0 -@subtitle Aug 2016 +@subtitle Edition 2.0 +@subtitle Sep 2020 @author by Masayuki Noro @page @@ -48,496 +49,307 @@ Copyright @copyright{} Masayuki Noro 2016. All rights reserved. @end titlepage -@comment --- おまじない --- +@comment --- 障 --- @synindex vr fn -@comment --- おまじない終り --- +@comment --- 障腟 --- -@comment --- @node は GNU info, HTML 用 --- -@comment --- @node の引数は node-name, next, previous, up --- +@comment --- @node GNU info, HTML --- +@comment --- @node 綣違 node-name, next, previous, up --- @node Top,, (dir), (dir) -@comment --- @menu は GNU info, HTML 用 --- -@comment --- chapter 名を正確に並べる --- +@comment --- @menu GNU info, HTML --- +@comment --- chapter 罩g∈筝鴻 --- @menu * noro_module_syz.rr :: * Index:: @end menu -@comment --- chapter の開始 --- -@comment --- 親 chapter 名を正確に --- +@comment --- chapter 紮 --- +@comment --- 荀 chapter 罩g∈ --- @node noro_module_syz.rr ,,, Top @chapter noro_module_syz.rr -@comment --- section 名を正確に並べる --- +@comment --- section 罩g∈筝鴻 --- @menu -* 加群の syzygy:: -* 加群の自由分解:: +* 紊綣遺臂:: +* 臂ゃ syzygy:: +* 臂ゃ怨茹:: @end menu -このマニュアルでは, asir-contrib パッケージに収録されている, -加群の syzygy および自由分解を計算するパッケージ -@samp{noro_module_syz.rr} について解説する. -このパッケージを使うには, まず @samp{noro_module_syz.rr} をロードする. +ャ≪с, asir-contrib 宴若吾蚊, +臂ゃ syzygy 活怨茹c荐膊宴若 +@samp{noro_module_syz.rr} ゃ茹h. +宴若吾篏帥, 障 @samp{noro_module_syz.rr} 若. @example [...] load("noro_module_syz.rr"); @end example @noindent -このパッケージの函数を呼び出すには, 全て @code{newsyz.} を先頭につける. +宴若吾醇違若喝冴, @code{newsyz.} ゃ. -@comment --- section の開始 --- -@comment --- 書体指定について --- -@comment --- @code{} はタイプライタ体表示 --- -@comment --- @var{} は斜字体表示 --- -@comment --- @b{} はボールド表示 --- -@comment --- @samp{} はファイル名などの表示 --- +@comment --- section 紮 --- +@comment --- 娯絎ゃ --- +@comment --- @code{} 帥ゃゃ推茵腓 --- +@comment --- @var{} 絖篏茵腓 --- +@comment --- @b{} 若茵腓 --- +@comment --- @samp{} <ゃ茵腓 --- -@node 加群の syzygy,,, noro_module_syz.rr -@section 加群の syzygy +@node 紊綣遺臂,,, noro_module_syz.rr +@section 紊綣遺臂 -@menu -* noro_module_syz.modue_syz:: -@end menu +紊綣遺怨臂ゃ, 臂ゅ綣 te_i 膩茵憗. + t 紊綣違綣, e_i 怨臂ゃ罔羣阪с. 臂ゅ綣, 紊綣違綣 +篏臀 i 菴遵 @code{<>} ц;. 臂ゅ綣, ≦臂ゅ綣膩, +荐絎臂ら綺c翫. 臂ら綺篁ヤ3腮蕁. -@node newsyz.module_syz,,, 加群の syzygy +@table @code +@item TOP 綺 -@subsection @code{newsyz.module_syz} -@findex newsyz.module_syz +, te_i > se_j t>s 障 (t=s i se_j is) 綺с. , +t, s 罸莠紊綣違荐絎綺ц. +綺, @code{dp_ord([1,Ord])} +荐絎. , @code{Ord} 紊綣違綺с. -@table @var -@item return -syzygy の生成系 (グレブナー基底) を計算する. +@item Schreyer 綺 -@item f -多項式リスト, または多項式リストのリスト -@item v -変数リスト -@item h -非負整数 -@item O -項順序 +罔羣阪 e_i 絲障, ャ怨臂ゃ臂ゅ綣 T_i 筝, te_i > se_j +tT_i > sT_j 障 (tT_i=sT_j i>} 綵√х贋・ュ篁, +紊綣鴻篏, @code{dpm_ltod()} 紊号. -@example -afo -@end example +@node 臂ゃ syzygy,,, noro_module_syz.rr +@section 臂ゃ syzygy -@node 加群の自由分解,,, noro_module_syz.rr -@section 加群の自由分解 - @menu -* newsyz.module_minres:: +* noro_module_syz.modue_syz:: @end menu -@node newsyz.module_minres,,,加群の自由分解 -@subsection @code{newsyz.module_minres} -@findex newsyz.module_minres +@node newsyz.module_syz,,, 臂ゃ syzygy -@table @t -@item newsyz.module_syz(@var{f},@var{v},@var{h},@var{O}[|@var{weyl=1}]) -加群の -HGM により重複固有値を持つ共分散行列に対する Wishart 行列の最大固有値の -分布関数の値を計算する. -@end table +@subsection @code{newsyz.module_syz} +@findex newsyz.module_syz -@table @var -@item return -@item m -変数の個数 -@item n -自由度 -@item [p1,p2,...] -重複固有値の個数のリスト -@item [s1,s2,...] -各重複固有値 -@end table - -@itemize @bullet -@item -固有値 @var{si} を @var{pi} 個もつ対角行列を共分散行列とする Wishart 行 -列の最大固有値 @var{l1}の分布関数の値 @var{Pr[l1>+(-1)*<<0,0,2,1:1>>+(1)*<<0,1,0,2:1>>+..., +...,(1)*<<1,0,0,0:3>>+(1)*<<0,1,0,0:3>>+(1)*<<0,0,1,0:3>>+ +...+(-1)*<<0,1,1,0:4>>+(-1)*<<1,0,0,1:4>>+(-1)*<<0,0,1,1:4>>] @end example -@node 部分分数係数の微分作用素,,, noro_module_syz.rr -@section 部分分数係数の微分作用素 +@node 臂ゃ怨茹,,, noro_module_syz.rr +@section 臂ゃ怨茹 @menu -* 部分分数の表現:: -* 部分分数係数の微分作用素の表現:: -* 部分分数係数の微分作用素の演算:: +* newsyz.fres newsyz.minres:: +* newsyz.lres newsyz.sres newsyz.minsres:: @end menu -@node 部分分数の表現,,, 部分分数係数の微分作用素 -@subsection 部分分数の表現 +R 紊綣違. F_i R 筝怨臂, n_i F_i 潟. +膀∽違, F_0 臂 I 絲障, F_0/I 怨茹 +@iftex +@tex +$$0\to F_l\to \cdots \to F_0 \to F_0/I \to 0$$ +@end tex +@end iftex +@ifnottex +0->F_l->...->F_0->F_0/I->0 +@end ifnottex +筝∽違ゃ茹h. +怨茹c phi_i:F_i->F_(i-1) . -matrix 1F1 が満たす微分方程式の係数は @var{1/yi}, @var{1/(yi-yj)} の定 -数倍の和として書かれている. さらに, ロピタル則を用いた対角領域への制限 -アルゴリズムの結果も同様に部分分数の和として書ける. +@node newsyz.fres newsyz.minres,,,臂ゃ怨茹 +@subsection @code{newsyz.fres}, @code{newsyz.minres} +@findex newsyz.fres +@findex newsyz.minres -@itemize @bullet -@item -分母に現れる @var{yi0^n0(yi1-yj1)^n1(yi2-yj2)^n2...(yik-yjk)^nk} は -@var{[[yi0,n0],[yi1-yj1,n1],...,[yik-yjk,nk]]} なる形のリストとして表現 -される. ここで, 各因子 @var{yi-yj} は @var{i>j} を満たし, さらに因子は -ある一定の順序で整列される. -@item -@var{f} を上のようなべき積とし, @var{c} を定数とするとき, 単項式にあた -る @var{c/f} は @var{[c,f]} で表現される. @var{f=[]} の場合, 分母が 1 -であることを意味する. -@item -最後に, @var{c1/f1+...+ck/fk} は @var{[[c1,f1],...,[ck,fk]]} と表現され -る. ここでも, 各項はある一定の順序で整列される. -@item -部分分数を通分して簡約した結果, 0 になることもあることに注意する. -@end itemize - -@node 部分分数係数の微分作用素の表現,,, 部分分数係数の微分作用素 -@subsection 部分分数係数の微分作用素の表現 - -前節の部分分数を用いて, それらを係数とする微分作用素が表現できる. -@var{f1,...,fk} を部分分数の表現, @var{d1,...,dk} を分散表現単項式 (現 -在設定されている項順序で @var{d1>...>dk}) とするとき, 微分作用素 -@var{f1*d1+...+fk*dk} が@var{[f1,d1],...[fk,dk]]}で表現される. - -@node 部分分数係数の微分作用素の演算,,, 部分分数係数の微分作用素 -@subsection 部分分数係数の微分作用素の演算 - -@menu -* noro_module_syz.wsetup:: -* noro_module_syz.addpf:: -* noro_module_syz.mulcpf:: -* noro_module_syz.mulpf:: -* noro_module_syz.muldpf:: -@end menu - -@node noro_module_syz.wsetup,,, 部分分数係数の微分作用素の演算 -@subsubsection @code{noro_module_syz.wsetup} -@findex noro_module_syz.wsetup - @table @t -@item noro_module_syz.wsetup(@var{m}) +@item newsyz.fres(@var{f},@var{v},@var{h},@var{O}[|weyl=1]) +@itemx newsyz.minres(@var{f},@var{v},@var{h},@var{O}[|weyl=1]) +臂ゃ怨茹c荐膊. @end table @table @var -@item m -自然数 -@end table - -@itemize @bullet -@item @var{m} 変数の計算環境をセットする. 変数は @var{y0,y1,...,ym}, @var{dy0,...,dym} -で @var{y0, dy0} は中間結果の計算のためのダミー変数である. -@end itemize - -@node noro_module_syz.addpf,,, 部分分数係数の微分作用素の演算 -@subsubsection @code{noro_module_syz.addpf} -@findex noro_module_syz.addpf -@table @t -@item noro_module_syz.addpf(@var{p1},@var{p2}) -@end table - -@table @var @item return -部分分数係数の微分作用素 -@item p1, p2 -部分分数係数の微分作用素 -@end table +紊綣鴻鴻鴻 -@itemize @bullet -@item 微分作用素 @var{p1}, @var{p2} の和を求める. -@end itemize - -@node noro_module_syz.mulcpf,,, 部分分数係数の微分作用素の演算 -@subsubsection @code{noro_module_syz.mulcpf} -@findex noro_module_syz.mulcpf -@table @t -@item noro_module_syz.mulcpf(@var{c},@var{p}) +@item f +紊綣鴻, 障紊綣鴻鴻 +@item v +紊違鴻 +@item h +莢贋 +@item O +綺 @end table -@table @var -@item return -部分分数係数の微分作用素 -@item c -部分分数 -@item p -部分分数係数の微分作用素 -@end table @itemize @bullet -@item 部分分数 @var{c} と微分作用素 @var{p} の積を計算する. +f=[f_1,...,f_m] 臂 I 膤祉, +膤祉. ∽違, F_0/I 怨茹c荐膊. +@item 腟 [M_1,...,M_l] 鴻, M_i [phi_i(e_1),...,phi_i(e_(n_i)] +鴻, syz M_(i-1) , O 筝 POT 綺≪違弱阪с. +@item @code{newsyz.module_syz} 罨∞絎茵. +@code{newsyz.minres} с, 緇 syzygy 膤祉, 絎違ゃ膂∞茵. +@item @code{newsyz.minres} , f 罨<翫, 罐球怨茹c緇. +@item h, O, 激с weyl ゃ @code{newsyz.module_syz} 罕с. @end itemize -@node noro_module_syz.mulpf,,, 部分分数係数の微分作用素の演算 -@subsubsection @code{noro_module_syz.mulpf} -@findex noro_module_syz.mulpf -@table @t -@item noro_module_syz.mulpf(@var{p1},@var{p2}) -@end table - -@table @var -@item return -部分分数係数の微分作用素 -@item p1, p2 -部分分数係数の微分作用素 -@end table - -@itemize @bullet -@item 微分作用素 @var{p1}, @var{p2} の積を計算する. -@end itemize - -@node noro_module_syz.muldpf,,, 部分分数係数の微分作用素の演算 -@subsubsection @code{noro_module_syz.muldpf} -@findex noro_module_syz.muldpf -@table @t -@item noro_module_syz.muldpf(@var{y},@var{p}) -@end table - -@table @var -@item return -部分分数係数の微分作用素 -@item y -変数 -@item p -部分分数係数の微分作用素 -@end table - -@itemize @bullet -@item 変数 @var{y} に対し, 微分作用素 @var{dy} と @var{p} の微分作用素としての -積を計算する. -@end itemize - @example -[...] noro_module_syz.wsetup(4)$ -[...] P=noro_module_syz.wishartpf(4,1); -[[[[1,[]]],(1)*<<0,2,0,0,0>>],[[[1/2,[[y1-y2,1]]],[1/2,[[y1-y3,1]]], -...,[[[-a,[[y1,1]]]],(1)*<<0,0,0,0,0>>]] -[...] Q=noro_module_syz.muldpf(y1,P); -[[[[1,[]]],(1)*<<0,3,0,0,0>>],[[[1/2,[[y1-y2,1]]],[1/2,[[y1-y3,1]]], -...,[[[a,[[y1,2]]]],(1)*<<0,0,0,0,0>>]] +[0] load("noro_module_syz.rr")$ +[43] load("katsura")$ +[47] F=hkatsura(4)$ +[48] V=[t,u0,u1,u2,u3,u4]$ +[49] R=newsyz.fres(F,V,0,0)$ +[51] map(length,R); +[5,22,28,12,2] +[52] S=newsyz.minres(F,V,0,0)$ +[5,10,10,5,1] @end example -@node Runge-Kutta 法の試験的実装,,, noro_module_syz.rr -@section Runge-Kutta 法の試験的実装 +@node newsyz.lres newsyz.sres newsyz.minsres,,,臂ゃ怨茹 +@subsection @code{newsyz.lres}, @code{newsyz.sres}, @code{newsyz.minsres}, +@findex newsyz.lres +@findex newsyz.sres +@findex newsyz.minsres -@menu -* rk_ratmat:: -@end menu - -@node rk_ratmat,,, Runge-Kutta 法の試験的実装 - -@code{noro_module_syz.ps_by_hgm} では, パフィアン行列を計算したあと, 与えられたステップ数で -Runge-Kutta 法を実行して近似解の値を計算する組み込み関数 @code{rk_ratmat} を実行している. -この関数を, 値が与えられた精度で安定するまでステップ数を2倍しながら繰り返して実行する. -@code{rk_ratmat} 自体, ある程度汎用性があるので, ここでその使用法を解説する. - -@subsection @code{rk_ratmat} -@findex rk_ratmat - @table @t -@item rk_ratmat(@var{rk45},@var{num},@var{den},@var{x0},@var{x1},@var{s},@var{f0}) -有理関数係数のベクトル値一階線形常微分方程式系を Runge-Kutta 法で解く +@item newsyz.lres(@var{f},@var{v},@var{h},@var{O}[|dp=1,top=1]) +@itemx newsyz.sres(@var{f},@var{v},@var{h},@var{O}[|dp=1]) +@itemx newsyz.minsres(@var{f},@var{v},@var{h},@var{O}[|dp=1]) +臂ゃ怨茹c荐膊. @end table @table @var @item return -実数のリスト +紊綣鴻鴻鴻 -@item rk45 -4 または 5 -@item num -定数行列の配列 -@item den -多項式 -@item x0, x1 -実数 -@item s -自然数 -@item f0 -実ベクトル +@item f +紊綣鴻, 障紊綣鴻鴻 +@item v +紊違鴻 +@item h +0 障 1 +@item O +綺 @end table @itemize @bullet -@item -配列 @var{num} のサイズを @var{k} とするとき, -@var{P(x)=1/den(num[0]+num[1]x+...+num[k-1]x^(k-1))} に対し @var{dF/dx = P(x)F}, @var{F(x0)=f0} を -Runge-Kutta 法で解く. @item -@var{rk45} が 4 のとき 4 次 Runge-Kutta, 5 のとき 5 次 Runge-Kutta アルゴリズムを実行する. -実験的実装のため, adaptive アルゴリズムは実装されていない. +f=[f_1,...,f_m] 臂 I 膤祉, +@code{newsyz.lres} F_0/I 怨茹c La Scala-Stillman ≪眼冴荐膊. +@code{newsyz.sres}, @code{newsyz.minsres} F_0/I 怨茹c Schreyer ≪眼冴荐膊. @item -@var{s} はステップ数で, 刻み幅は@var{(x1-x0)/s} である. -@item -@var{f0} がサイズ@var{n} のとき, @var{num} の各成分は @var{n} 次正方行列である. -@item -結果は, 長さ @var{s} の実数リスト @var{[r1,...,rs]} で, @var{ri} は @var{i} ステップ目に計算された -解ベクトルの第0成分である. 次のステップに進む前に解ベクトルを @var{ri} で割るので, 最終的に -解 @var{F(x1)} の第 0 成分が @var{rs*r(s-1)*...*r1} となる. -@item 方程式が線形なので, Runge-Kutta の各ステップも線形となることを利用し, -第0成分を1に正規化することで, 途中の解の成分が倍精度浮動小数の -範囲に収まることを期待している. 初期ベクトル @var{f0} の成分が倍精度浮動小数に収まらない場合 -は, @var{f0} を正規化してから @code{rk_ratmat} を実行し, 前項の結果に @var{f0} の第 0 成分をかければ -よい. +遺筝紊綣遺臂ゃ絲障水茖. +@item 腟 [M_1,...,M_l] 鴻, M_i syz M_(i-1) , Schreyer 綺≪ +違弱阪с. +@item h=1 , 違弱阪荐膊罨≦腟宴ц. +@item dp=1 , 腟臂ゅ綣ц. +@item @code{newsyz.lres} top=1 , S-紊綣遺荐膊, 膂∞сc鴻т信篋. +@item f 罨<翫, @code{newsyz.lres} @code{newsyz.minsres} 罐球怨茹c緇. @end itemize @example -[...] F=ltov([sin(1/x),cos(1/x),sin(1/x^2),cos(1/x^2)]); -[ sin((1)/(x)) cos((1)/(x)) sin((1)/(x^2)) cos((1)/(x^2)) ] -[...] F0=map(eval,map(subst,F,x,1/10)); -[ -0.54402111088937 -0.839071529076452 -0.506365641109759 0.862318872287684 ] -[...] N0=matrix(4,4,[[0,0,0,0],[0,0,0,0],[0,0,0,-2],[0,0,2,0]])$ -[...] N1=matrix(4,4,[[0,-1,0,0],[1,0,0,0],[0,0,0,0],[0,0,0,0]])$ -[...] N=ltov([N0,N1])$ -[...] D=x^3$ -[...] R=rk_ratmat(5,N,D,1/10,10,10^4,F0)$ -[...] for(T=R,A=1;T!=[];T=cdr(T))A *=car(T)[1]; -[...] A; -0.0998334 -[...] F1=map(eval,map(subst,F,x,10)); -[ 0.0998334166468282 0.995004165278026 0.00999983333416666 0.999950000416665 ] +[0] load("noro_module_syz.rr")$ +[43] F=[x00*x11-x01*x10,x01*x12-x02*x11,x02*x13-x03*x12,-x11*x20+x21*x10, +-x21*x12+x22*x11,-x22*x13+x23*x12,x31*x20-x30*x21,x32*x21-x31*x22,x33*x22-x32*x23]$ +[44] V=[x00,x01,x02,x03,x10,x11,x12,x13,x20,x21,x22,x23,x30,x31,x32,x33]$ +[45] cputime(1)$ +1.8e-05sec(1.502e-05sec) +[46] R=newsyz.minres(F,V,0,0)$ +333.4sec(339.6sec) +[47] S=newsyz.lres(F,V,0,0)$ +85.34sec(85.56sec) +[48] T=newsyz.minsres(F,V,0,0)$ +241.2sec(250.3sec) +[49] cputime(0)$ +[50] map(length,R); +[9,75,456,1602,3391,4680,4388,2849,1290,393,72,6] +[51] map(length,S); +[9,75,456,1602,3391,4680,4388,2849,1290,393,72,6,0] +[52] map(length,T); +[9,75,456,1602,3391,4680,4388,2849,1290,393,72,6,0] + @end example - -@comment --- おまじない --- +@comment --- 障 --- @node Index,,, Top @unnumbered Index @printindex fn @@ -548,5 +360,5 @@ Runge-Kutta 法で解く. @summarycontents @contents @bye -@comment --- おまじない終り --- +@comment --- 障腟 ---