=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/doc/taji_alc/taji_alc-ja.texi,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM/src/asir-contrib/packages/doc/taji_alc/taji_alc-ja.texi 2008/01/23 02:36:14 1.1 +++ OpenXM/src/asir-contrib/packages/doc/taji_alc/taji_alc-ja.texi 2009/02/22 05:40:48 1.2 @@ -7,20 +7,20 @@ @end iftex @overfullrule=0pt @c -*-texinfo-*- -@comment $OpenXM$ +@comment $OpenXM: OpenXM/src/asir-contrib/packages/doc/taji_alc/taji_alc-ja.texi,v 1.1 2008/01/23 02:36:14 takayama Exp $ @comment %**start of header -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り --- -@comment --- GNU info $B%U%!%$%k$NL>A0(B --- +@comment --- GNU info ファイルの名前 --- euc code で記述すること. @setfilename asir-contrib-taji_alc_ja -@comment --- $B%?%$%H%k(B --- -@settitle 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!(B, $BCx:n8"I=<((B --- -@title 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!1;JBnL4(B, $BEDEg?50l(B +@author 庄司卓夢, 田島慎一 @page @vskip 0pt plus 1filll Copyright @copyright{} Takumu Shoji, Shinichi Tajima. 2007. All rights reserved. Licensed by GPL. @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 --- $B$3$NJ8=q$G$O(B chapter XYZ, Chapter Index $B$,$"$k(B. -@comment --- Chapter XYZ $B$K$O(B section XYZ$B$K$D$$$F(B, section XYZ$B$K4X$9$k4X?t$,$"$k(B. +@comment --- @menu は GNU info, HTML 用 --- +@comment --- chapter 名を正確に並べる --- +@comment --- この文書では chapter XYZ, Chapter Index がある. +@comment --- Chapter XYZ には section XYZについて, section XYZに関する関数がある. @menu -* 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!$r@53N$K(B. $B?F$,$J$$>l9g$O(B Top --- -@node 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!$r@53N$KJB$Y$k(B. --- +@comment --- section 名を正確に並べる. --- @menu -* 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!$J$I$NI=<((B --- +@comment --- 書体指定について --- +@comment --- @code{} はタイプライタ体表示 --- +@comment --- @var{} は斜字体表示 --- +@comment --- @b{} はボールド表示 --- +@comment --- @samp{} はファイル名などの表示 --- -$B$3$N@bL@=q$G$O(B -1$BJQ?tBe?tE*6I=j%3%[%b%m%8!H(B. +およびその参考文献を参照. -@comment --- section ``$Be$G4{LsJ,2r$7$?(B) [[$B0x;R(B,$B=EJ#EY(B],...] $B$J$k%j%9%H(B +または (有理関数の分母をQ上で既約分解した) [[因子,重複度],...] なるリスト @item switch -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : complete$B$JItJ,J,?tJ,2r$rJV$9(B. ($BJ,;R$OM-M}?t78?tB?9`<0(B) +case 0 : completeな部分分数分解を返す. (分子は有理数係数多項式) -case 1 : complete$B$JItJ,J,?tJ,2r$rJV$9(B. ($BJ,;R$O@0?t78?t2=%j%9%H(B) +case 1 : completeな部分分数分解を返す. (分子は整数係数化リスト) -case 10 : $BJ,Jl$rQQE83+$7$J$$ItJ,J,?tJ,2r$rJV$9(B. ($BJ,;R$OM-M}?t78?tB?9`<0(B) +case 10 : 分母を冪展開しない部分分数分解を返す. (分子は有理数係数多項式) -case 11 : $BJ,Jl$rQQE83+$7$J$$ItJ,J,?tJ,2r$rJV$9(B. ($BJ,;R$O@0?t78?t2=%j%9%H(B) +case 11 : 分母を冪展開しない部分分数分解を返す. (分子は整数係数化リスト) default : case 0 @end table @itemize @bullet -@item taji_alc.cpfd()$B$O(B, proper$B$JM-M}4X?t$rBP>]$H$9$k(B. -$BF~NOCM$,(Bproper$B$G$J$$>l9g$G$b@5>o$KF0:n$9$k$,(B, $BB?9`<0$H$7$F=P$F$/$kItJ,$OI=<($7$J$$(B. -@item $BItJ,J,?tJ,2r$O(B, $BQQE83+$r$9$k(Bcomplete$B$J%?%$%W$H(B, $BQQE83+$r$7$J$$%?%$%W$N(B2$B$D$N%?%$%W$,$"$k(B. -taji_alc.cpfd()$B$G:NMQ$7$F$$$k%"%k%4%j%:%`$G$O(B, $BA0e$2$F5a$a$k(B. -@item @var{den}$B$O(B, $B%j%9%H$G$NF~NO$,K>$^$7$$(B. -($BB?9`<0$GF~NO$9$k$H(B, $B4JLs2=$N=hM}$,@8$8$k$?$a=E$/$J$k(B.) -$B$?$@$7$=$N>l9g$K$O(B, $B4{Ls%A%'%C%/(B, $BM-M}<0$NLsJ,(B, $B@0?t78?t2=$O9T$o$J$$$N$GCm0U$9$k(B. -$BF~NOCM$O%f!<%6B&$,@UG$$r$b$D(B. +@item taji_alc.cpfd()は, properな有理関数を対象とする. +入力値がproperでない場合でも正常に動作するが, 多項式として出てくる部分は表示しない. +@item 部分分数分解は, 冪展開をするcompleteなタイプと, 冪展開をしないタイプの2つのタイプがある. +taji_alc.cpfd()で採用しているアルゴリズムでは, 前者が先に求まる. +後者は, 前者のデータをホーナー法で足し上げて求める. +@item @var{den}は, リストでの入力が望ましい. +(多項式で入力すると, 簡約化の処理が生じるため重くなる.) +ただしその場合には, 既約チェック, 有理式の約分, 整数係数化は行わないので注意する. +入力値はユーザ側が責任をもつ. @end itemize @example @@ -179,11 +179,11 @@ taji_alc.cpfd()$B$G:NMQ$7$F$$$k%"%k%4%j%:%`$G$O(B,  @end example @table @t -@item $B;2>H(B +@item 参照 @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -193,56 +193,56 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.snoether,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!e$G4{LsJ,2r$7$?(B) [[$B0x;R(B,$B=EJ#EY(B],...] $B$J$k%j%9%H(B. +または (有理関数の分母をQ上で既約分解した) [[因子,重複度],...] なるリスト. @item switch -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : $B%M!<%?!<:nMQAG$r(B [$BM-M}?t78?tB?9`<0(B,...] $B$J$k%j%9%H$GJV$9(B. +case 0 : ネーター作用素を [有理数係数多項式,...] なるリストで返す. -case 1 : $B%M!<%?!<:nMQAG$r(B [$B@0?t78?t2=%j%9%H(B,...] $B$J$k%j%9%H$GJV$9(B. +case 1 : ネーター作用素を [整数係数化リスト,...] なるリストで返す. -case 10 : $B%M!<%?!<:nMQAG$r(B [[$B@0?t78?tB?9`<0(B,...],$B@0?t(B] $B$J$k%j%9%H$GJV$9(B. +case 10 : ネーター作用素を [[整数係数多項式,...],整数] なるリストで返す. -case 20 : $B%M!<%?!<:nMQAG$r(B [[$B@0?t78?t2=%j%9%H(B,...],$B@0?t(B] $B$J$k%j%9%H$GJV$9(B. +case 20 : ネーター作用素を [[整数係数化リスト,...],整数] なるリストで返す. default : case 0 @end table @itemize @bullet -@item taji_alc.snoether()$B$O(B, @var{den}$B$r(BQ$B>e$G4{LsJ,2r$7(B, -$B3F0x;R$KBP1~$9$k%M!<%?!<:nMQAG$rJV$9(B. -@item @var{den}$B$O(B, $B%j%9%H$G$NF~NO$,K>$^$7$$(B. -($BB?9`<0$GF~NO$9$k$H(B, $B4JLs2=$N=hM}$,@8$8$k$?$a=E$/$J$k(B.) -$B$?$@$7$=$N>l9g$K$O(B, $B4{Ls%A%'%C%/(B, $BM-M}<0$NLsJ,(B, $B@0?t78?t2=$O9T$o$J$$$N$GCm0U$9$k(B. -$BF~NOCM$O%f!<%6B&$,@UG$$r$b$D(B. -@item $BLa$jCM$N7?$O(B@var{switch}$B$GA*Br$G$-$k(B. +@item taji_alc.snoether()は, @var{den}をQ上で既約分解し, +各因子に対応するネーター作用素を返す. +@item @var{den}は, リストでの入力が望ましい. +(多項式で入力すると, 簡約化の処理が生じるため重くなる.) +ただしその場合には, 既約チェック, 有理式の約分, 整数係数化は行わないので注意する. +入力値はユーザ側が責任をもつ. +@item 戻り値の型は@var{switch}で選択できる. -case 10$B$O(B, $B%M!<%?!<:nMQAG$N3F78?tA4BN$rDLJ,$7(B, $B$=$NJ,JlItJ,$H3,>h$N@Q$r%j%9%H$GJ,$1$?I=8=$G$"$k(B. -$B$o$+$j$d$9$$$,(B, $BDLJ,CM$H78?tItJ,$H$GLsJ,$G$-$kItJ,$,$"$k(B($BFC$K9b3,$NItJ,$KB?$$(B)$B$N$G(B, $B>iD9@-$r$b$C$F$$$k(B. +case 10は, ネーター作用素の各係数全体を通分し, その分母部分と階乗の積をリストで分けた表現である. +わかりやすいが, 通分値と係数部分とで約分できる部分がある(特に高階の部分に多い)ので, 冗長性をもっている. -case 20$B$O(B, $B3,>h$NItJ,$GA4BN$r$/$/$j(B($B%j%9%H$GJ,$1(B), $B%M!<%?!<:nMQAG$N3F78?t$r8DJL$KDLJ,$7%j%9%H2=$9$k(B. -$B3,>h$NItJ,$H78?tItJ,$H$GLsJ,$G$-$kItJ,$,$"$k(B($BFC$KDc3,$NItJ,$KB?$$(B)$B$N$G(B, -$B>iD9$H8@$($J$/$b$J$$(B(case 10$B$h$j$O$^$7(B)$B$,(B, $B?t3XE*$J9=B$$,e:No$K8+$($kI=8=$G$"$k(B. +case 20は, 階乗の部分で全体をくくり(リストで分け), ネーター作用素の各係数を個別に通分しリスト化する. +階乗の部分と係数部分とで約分できる部分がある(特に低階の部分に多い)ので, +冗長と言えなくもない(case 10よりはまし)が, 数学的な構造が綺麗に見える表現である. @end itemize @example @@ -266,11 +266,11 @@ case 20$B$O(B, $B3,>h$NItJ,$GA4BN$r$/$/$j(B($B%j% @end example @table @t -@item $B;2>H(B +@item 参照 @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -280,49 +280,49 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.laurent_expansion,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!e$G4{LsJ,2r$7$?(B) [[$B0x;R(B,$B=EJ#EY(B],...] $B$J$k%j%9%H(B +または (有理関数の分母をQ上で既約分解した) [[因子,重複度],...] なるリスト @item switch -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : $B%m!<%i%sE83+$N78?t$r(B [$BM-M}?t78?tB?9`<0(B,...] $B$J$k%j%9%H$GJV$9(B. +case 0 : ローラン展開の係数を [有理数係数多項式,...] なるリストで返す. -case 1 : $B%m!<%i%sE83+$N78?t$r(B [$B@0?t78?t2=%j%9%H(B,...] $B$J$k%j%9%H$GJV$9(B. +case 1 : ローラン展開の係数を [整数係数化リスト,...] なるリストで返す. -case 10 : $B%m!<%i%sE83+$N78?t$r(B [[$B@0?t78?tB?9`<0(B,...],$B@0?t(B] $B$J$k%j%9%H$GJV$9(B. +case 10 : ローラン展開の係数を [[整数係数多項式,...],整数] なるリストで返す. -case 20 : $B%m!<%i%sE83+$N78?t$r(B [[$B@0?t78?t2=%j%9%H(B,...],$B@0?t(B] $B$J$k%j%9%H$GJV$9(B. +case 20 : ローラン展開の係数を [[整数係数化リスト,...],整数] なるリストで返す. default : case 0 @end table @itemize @bullet -@item taji_alc.laurent_expansion()$B$O(B, taji_alc.snoether()$B$r;H$C$F(B, $B%m!<%i%sE83+$N78?t$r5a$a$k(B. -@item taji_alc.laurent_expansion()$B$G$O(B, -C$B>e$N(B1$BE@$KCmL\$9$k$N$G$O$J$/(B, Q$B>e$G$N4{Ls0x;R<+BN$KCmL\$7$F%m!<%i%sE83+$N78?t$r5a$a$k(B. -$BLa$jCM$N78?t%j%9%H$N3F@.J,$O(B, $B$=$N0x;R$NA4$F$NNmE@$,6&DL$KK~$?$9%m!<%i%sE83+$N78?tB?9`<0$G$"$k(B. -$B=>$C$F(B, 1$BE@$4$H$N%m!<%i%sE83+$N78?t$r$5$i$K5a$a$?$$>l9g$K$O(B, -$B5a$a$?%m!<%i%sE83+$N78?tB?9`<0$K0x;R$NNmE@(B($BB($AFC0[E@(B)$B$NCM$rBeF~$9$kI,MW$,$"$k(B. +@item taji_alc.laurent_expansion()は, taji_alc.snoether()を使って, ローラン展開の係数を求める. +@item taji_alc.laurent_expansion()では, +C上の1点に注目するのではなく, Q上での既約因子自体に注目してローラン展開の係数を求める. +戻り値の係数リストの各成分は, その因子の全ての零点が共通に満たすローラン展開の係数多項式である. +従って, 1点ごとのローラン展開の係数をさらに求めたい場合には, +求めたローラン展開の係数多項式に因子の零点(即ち特異点)の値を代入する必要がある. @end itemize @example @@ -334,12 +334,12 @@ C$B>e$N(B1$BE@$KCmL\$9$k$N$G$O$J$/(B, Q$B>e$G$N4{ @end example @table @t -@item $B;2>H(B +@item 参照 @ref{taji_alc.snoether} @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -349,59 +349,59 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.residue,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!e$G4{LsJ,2r$7$?(B) [[$B0x;R(B,$B=EJ#EY(B],...] $B$J$k%j%9%H(B +または (有理関数の分母をQ上で既約分解した) [[因子,重複度],...] なるリスト @item switch -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : $BN1?t$rM-M}?t78?tB?9`<0$GJV$9(B. +case 0 : 留数を有理数係数多項式で返す. -case 1 : $BN1?t$r@0?t78?t2=%j%9%H$GJV$9(B. +case 1 : 留数を整数係数化リストで返す. default : case 0 @item pole -$B%*%W%7%g%s;XDj(B +オプション指定 -[$B0x;R(B,...] $B$J$k%*%W%7%g%s%j%9%H(B +[因子,...] なるオプションリスト @end table @itemize @bullet -@item taji_alc.residue()$B$O(B, @var{den}$B$r(BQ$B>e$G4{LsJ,2r$7(B, $B3F0x;R$NNmE@(B($BB($AM-M}4X?t$N6K(B)$B$K$*$1$kN1?t$rJV$9(B. -@item $B%*%W%7%g%s$G(B@var{pole}$B$r;XDj$9$l$P$=$N0x;R$N$_$NN1?t$rJV$9(B. $B;XDj$,ITE,Ev$@$H(B0$B$rJV$9(B. -@item taji_alc.residue()$B$G:NMQ$7$F$$$k%"%k%4%j%:%`$G$O(B, -C$B>e$N(B1$BE@$KCmL\$9$k$N$G$O$J$/(B, Q$B>e$G$N4{Ls0x;R<+BN$KCmL\$7$FN1?t$r5a$a$k(B. -$BLa$jCM$NN1?t$O(B, $B$=$N0x;R$NA4$F$NNmE@$,6&DL$KK~$?$9N1?tB?9`<0$G$"$k(B. -$B=>$C$F(B, 1$BE@$4$H$NN1?tCM$r$5$i$K5a$a$?$$>l9g$K$O(B, -$B5a$a$?N1?tB?9`<0$K0x;R$NNmE@(B($BB($AFC0[E@(B)$B$NCM$rBeF~$9$kI,MW$,$"$k(B. +@item taji_alc.residue()は, @var{den}をQ上で既約分解し, 各因子の零点(即ち有理関数の極)における留数を返す. +@item オプションで@var{pole}を指定すればその因子のみの留数を返す. 指定が不適当だと0を返す. +@item taji_alc.residue()で採用しているアルゴリズムでは, +C上の1点に注目するのではなく, Q上での既約因子自体に注目して留数を求める. +戻り値の留数は, その因子の全ての零点が共通に満たす留数多項式である. +従って, 1点ごとの留数値をさらに求めたい場合には, +求めた留数多項式に因子の零点(即ち特異点)の値を代入する必要がある. @example [219] taji_alc.residue(1,x^4+1); [[x^4+1,-1/4*x]] @end example -$B$3$NNc$G8@$&$H(B, $B5a$a$?N1?tB?9`<0(B-1/4*x$B$K(B, x^4+1$B$N(B(4$B$D$"$k(B)$BNmE@$r$=$l$>$lBeF~$7$?$b$N$,8DJL$NN1?tCM$G$"$k(B. -@item @var{den}$B$O(B, $B%j%9%H$G$NF~NO$,K>$^$7$$(B. -($BB?9`<0$GF~NO$9$k$H(B, $B4JLs2=$N=hM}$,@8$8$k$?$a=E$/$J$k(B.) -$B$?$@$7$=$N>l9g$K$O(B, $B4{Ls%A%'%C%/(B, $BM-M}<0$NLsJ,(B, $B@0?t78?t2=$O9T$o$J$$$N$GCm0U$9$k(B. -$BF~NOCM$O%f!<%6B&$,@UG$$r$b$D(B. +この例で言うと, 求めた留数多項式-1/4*xに, x^4+1の(4つある)零点をそれぞれ代入したものが個別の留数値である. +@item @var{den}は, リストでの入力が望ましい. +(多項式で入力すると, 簡約化の処理が生じるため重くなる.) +ただしその場合には, 既約チェック, 有理式の約分, 整数係数化は行わないので注意する. +入力値はユーザ側が責任をもつ. @end itemize @example @@ -421,11 +421,11 @@ pole=[x+1]); @end example @table @t -@item $B;2>H(B +@item 参照 @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -435,38 +435,38 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.invpow,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!jM>BN(BQ[x]/<@var{f}>$B>e$G$N(B@var{poly}$B$N5U85$N(B@var{m}$B>h$r5a$a$k(B. +:: 剰余体Q[x]/<@var{f}>上での@var{poly}の逆元の@var{m}乗を求める. @end table @table @var @item return -$B5UQQ(B +逆冪 @item poly -$BB?9`<0(B +多項式 @item f -Q$B>e$G4{Ls$JB?9`<0(B +Q上で既約な多項式 @item m -$B<+A3?t(B +自然数 @item switch -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : $B5UQQ$rM-M}?t78?tB?9`<0$GJV$9(B. +case 0 : 逆冪を有理数係数多項式で返す. -case 1 : $B5UQQ$r@0?t78?t2=%j%9%H$GJV$9(B. +case 1 : 逆冪を整数係数化リストで返す. default : case 0 @end table @itemize @bullet -@item @var{poly}$B$H(B@var{f}$B$O8_$$$KAG$G$J$1$l$P$J$i$J$$(B. -@item $B%"%k%4%j%:%`$N9|3J$O7+$jJV$7(B2$B>hK!$G$"$k(B. $B$=$3$K:G>.B?9`<0$NM}O@$r1~MQ$7$F9bB.2=$7$F$$$k(B. +@item @var{poly}と@var{f}は互いに素でなければならない. +@item アルゴリズムの骨格は繰り返し2乗法である. そこに最小多項式の理論を応用して高速化している. @end itemize @example @@ -479,11 +479,11 @@ default : case 0 @end example @table @t -@item $B;2>H(B +@item 参照 @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -493,85 +493,85 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.rem_formula,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!jM>8x<0$r5a$a$k(B. +:: 多項式f(x)を与えたときの剰余公式を求める. @end table @table @var @item return -@var{switch} $B$*$h$S(B $B@bL@J8$r;2>H(B +@var{switch} および 説明文を参照 @item polylist -f(x)$B$r(BQ$B>e$G4{LsJ,2r$7$?(B [[$B0x;R(B,$B=EJ#EY(B,$BNmE@$N5-9f(B],...] $B$J$k%j%9%H(B +f(x)をQ上で既約分解した [[因子,重複度,零点の記号],...] なるリスト @item switch -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : x$B$NQQ$G@0M}$7(B, $B%j%9%H$GJV$9(B. +case 0 : xの冪で整理し, リストで返す. -case 10 : f(x)$B$NQQ$G@0M}$7(B, $B%j%9%H$GJV$9(B. ($B0l0x;R$N>l9g$N$_BP1~(B) +case 10 : f(x)の冪で整理し, リストで返す. (一因子の場合のみ対応) -case 20 : x$B$NQQ$G@0M}$7(B, symbolic$B$JI=8=$GJV$9(B. +case 20 : xの冪で整理し, symbolicな表現で返す. default : case 0 @end table @itemize @bullet -@item $B%"%k%4%j%:%`$O(B, $B%(%k%_!<%H$NJd4V>jM>$rMQ$$$F$$$k(B. -@item $B>jM>8x<0$NI=8=J}K!$O$$$/$D$+9M$($i$l$k$?$a(B, @var{switch}$B$GA*Br<0$H$7$?(B. -@item @var{switch}=0 $B$NLa$jCM$N8+J}$r=R$Y$k(B. $BNc$H$7$F(B, f(x)=f1(x)^m1*f2(x)^m2$B$r9M$($k(B. -$BF~NO$O(B [[f1(x),m1,z1],[f2(x),m2,z2]] $B$H$J$k(B. $B$=$N$H$-La$jCM$O(B, +@item アルゴリズムは, エルミートの補間剰余を用いている. +@item 剰余公式の表現方法はいくつか考えられるため, @var{switch}で選択式とした. +@item @var{switch}=0 の戻り値の見方を述べる. 例として, f(x)=f1(x)^m1*f2(x)^m2を考える. +入力は [[f1(x),m1,z1],[f2(x),m2,z2]] となる. そのとき戻り値は, [r_{f1}(x,z1),r_{f2}(x,z2)] -$B$J$k%j%9%H$GJV$5$l$k(B. $B$3$l$O(B, $B>jM>8x<0$,(B +なるリストで返される. これは, 剰余公式が @tex $r(x)=r_{f1}(x,z1)+r_{f2}(x,z2)$ @end tex -$B$J$k7A$GM?$($i$l$k$3$H$r0UL#$7$F$$$k(B. -$B3F@.J,$N(Br_{fi}(x,zi)$B$O(B, +なる形で与えられることを意味している. +各成分のr_{fi}(x,zi)は, -[p^(mi-1)(zi)$B$N78?t$H$J$k(Bx$B$H(Bzi$B$NB?9`<0(B,...,p^(0)(zi)$B$N78?t$H$J$k(Bx$B$H(Bzi$B$NB?9`<0(B] +[p^(mi-1)(zi)の係数となるxとziの多項式,...,p^(0)(zi)の係数となるxとziの多項式] -$B$J$k%j%9%H$G$"$k(B. -@item @var{switch}=10 $B$NLa$jCM$N8+J}$r=R$Y$k(B. $BNc$H$7$F(B, f(x)=f1(x)^m$B$r9M$($k(B. -$BF~NO$O(B [[f1(x),m,z]] $B$H$J$k(B. $B$=$N$H$-La$jCM$O(B, +なるリストである. +@item @var{switch}=10 の戻り値の見方を述べる. 例として, f(x)=f1(x)^mを考える. +入力は [[f1(x),m,z]] となる. そのとき戻り値は, [r_(m-1)(x,z),...,r_0(x,z)] -$B$J$k%j%9%H$GJV$5$l$k(B. $B3F@.J,$O(B, $B>jM>8x<0$r(B +なるリストで返される. 各成分は, 剰余公式を @tex $r(x)=r_{m-1}(x,z)f_1(x)^{m-1}+\cdots+r_0(x,z)$ @end tex -$B$N$h$&$K(Bf1(x)$B$NQQ$GE83+$7$?$H$-$N3F78?t$r0UL#$7$F$$$k(B. -$B3F@.J,$N(Br_{i}(x,z)$B$O(B, +のようにf1(x)の冪で展開したときの各係数を意味している. +各成分のr_{i}(x,z)は, -[p^(m-1)(z)$B$N78?t$H$J$k(Bx$B$H(Bz$B$NB?9`<0(B,...,p^(0)(z)$B$N78?t$H$J$k(Bx$B$H(Bz$B$NB?9`<0(B] +[p^(m-1)(z)の係数となるxとzの多項式,...,p^(0)(z)の係数となるxとzの多項式] -$B$J$k%j%9%H$G$"$k(B. -@item @var{switch}=20 $B$NLa$jCM$N8+J}$r=R$Y$k(B. -symbolic$B$J=PNO$N(Bp^(m)(z)$B$O(B, p(x)$B$N(Bm$B3,$NF34X?t$K(Bz$B$rBeF~$7$?CM$H$$$&0UL#$G$"$k(B. -@item $BLa$jCM$O(B, $BM?$($?0x;R$NA4$F$NNmE@$rBeF~$7$?$b$N$NOB$H$7$F8+$k(B. -$B$3$l$O0x;R$,(B2$Be$NB?9`<0$N>l9g$K4X78$7$F$/$k(B. $BNc$($P(B, +なるリストである. +@item @var{switch}=20 の戻り値の見方を述べる. +symbolicな出力のp^(m)(z)は, p(x)のm階の導関数にzを代入した値という意味である. +@item 戻り値は, 与えた因子の全ての零点を代入したものの和として見る. +これは因子が2次以上の多項式の場合に関係してくる. 例えば, @example [228] taji_alc.rem_formula([[x^2+1,1,z]]); [[-1/2*z*x+1/2]] @end example -$B$N@5$7$$8+J}$O(B, x^2+1$B$NNmE@$r(Ba1,a2$B$H$*$$$?$H$-$K(B, z$B$K(Ba1$B$H(Ba2$B$rBeF~$7$?(B, +の正しい見方は, x^2+1の零点をa1,a2とおいたときに, zにa1とa2を代入した, r(x)=(-1/2*a1*x+1/2)+(-1/2*a2*x+1/2) -$B$G$"$k(B. $B$7$+$7=PNO$G$O(B, $BNmE@$NOB$NItJ,$rJX59>e>JN,$7$FJV$9(B. +である. しかし出力では, 零点の和の部分を便宜上省略して返す. @end itemize @example @@ -609,11 +609,11 @@ z^2-174/529*z-108/529)*x^2+(-105/529*z^2+54/529*z+70/5 @end example @table @t -@item $B;2>H(B +@item 参照 @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -623,90 +623,90 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.solve_ode_cp,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!oHyJ,J}Dx<0$N%3!<%7!oHyJ,:nMQAG(B, f(z)$B$O;X?tB?9`<0$H$9$k(B. +ただし, Pはn階の有理数係数の線形常微分作用素, f(z)は指数多項式とする. @end table @table @var @item return -2$BDL$j$NI=8=$,$"$k(B. +2通りの表現がある. -$B!&I=8=(B1 ($B%3!<%7!<%G!<%?$G@0M}$7$?7A(B) +・表現1 (コーシーデータで整理した形) -$B%3!<%7!$7$?;X?tB?9`<0%j%9%H$rJV$9(B. +のところにデータを代入し, +それを指数関数で整理し直した指数多項式リストを返す. @item poly -$BB?9`<0(B (P$B$NFC@-B?9`<0(B) +多項式 (Pの特性多項式) -$B$^$?$O(B (P$B$NFC@-B?9`<0$r(BQ$B>e$G4{LsJ,2r$7$?(B) [[$B0x;R(B,$B=EJ#EY(B],...] $B$J$k%j%9%H(B +または (Pの特性多項式をQ上で既約分解した) [[因子,重複度],...] なるリスト @item var -$BITDj85(B ($B4X?t$NFHN)JQ?t(B) +不定元 (関数の独立変数) @item exppoly -$B@FWFM$7$J$$$h$&Cm0U(B. -@item $BLa$jCM$NFCr7o(B +は, コーシー条件 @tex $v(0)=0,\ldots,v^{(n-1)}(0)=0$ @end tex -$B$rK~$?$9%3!<%7!H(B +@item 参照 @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -743,65 +743,65 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.solve_ode_cp_ps,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!oHyJ,J}Dx<0$N%3!<%7!]$H$7$F$$$k$N$G(B, +ただし, 非斉次形のみを対象としているので, @tex $f(z)\neq0$ @end tex -$B$H$9$k(B. +とする. @end table @table @var @item return -$B;X?tB?9`<0%j%9%H(B +指数多項式リスト @item poly -$BB?9`<0(B (P$B$NFC@-B?9`<0(B) +多項式 (Pの特性多項式) -$B$^$?$O(B (P$B$NFC@-B?9`<0$r(BQ$B>e$G4{LsJ,2r$7$?(B) [[$B0x;R(B,$B=EJ#EY(B],...] $B$J$k%j%9%H(B +または (Pの特性多項式をQ上で既約分解した) [[因子,重複度],...] なるリスト @item var -$BITDj85(B ($B4X?t$NFHN)JQ?t(B) +不定元 (関数の独立変数) @item exppoly -f(z)$B$N;X?tB?9`<0%j%9%H(B +f(z)の指数多項式リスト @item switch -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : $B;X?tB?9`<0%j%9%H$N(B2$BHVL\$N@.J,$rM-M}?t78?tB?9`<0$GJV$9(B. +case 0 : 指数多項式リストの2番目の成分を有理数係数多項式で返す. -case 1 : $B;X?tB?9`<0%j%9%H$N(B2$BHVL\$N@.J,$r@0?t78?t2=%j%9%H$GJV$9(B. +case 1 : 指数多項式リストの2番目の成分を整数係数化リストで返す. default : case 0 @item switch2 -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : $B%3!<%7!WFM$7$J$$$h$&Cm0U(B. +@item 変数は2種類必要(特性多項式の変数と関数の独立変数). +@var{poly}の不定元と@var{var}の不定元が衝突しないよう注意. @end itemize @example @@ -824,11 +824,11 @@ x-3,[4232*z^2-4278*z-4295,97336]]] @end example @table @t -@item $B;2>H(B +@item 参照 @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -838,43 +838,43 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.fbt,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!e$G4{LsJ,2r$7$?(B) [[$B0x;R(B,$B=EJ#EY(B],...] $B$J$k%j%9%H(B +または (有理関数の分母をQ上で既約分解した) [[因子,重複度],...] なるリスト @item var -$BITDj85(B ($BA|$NFHN)JQ?t(B) +不定元 (像の独立変数) @item switch -$B%*%W%7%g%s;XDj(B +オプション指定 -case 0 : $B;X?tB?9`<0%j%9%H$N(B2$BHVL\$N@.J,$rM-M}?t78?tB?9`<0$GJV$9(B. +case 0 : 指数多項式リストの2番目の成分を有理数係数多項式で返す. -case 1 : $B;X?tB?9`<0%j%9%H$N(B2$BHVL\$N@.J,$r@0?t78?t2=%j%9%H$GJV$9(B. +case 1 : 指数多項式リストの2番目の成分を整数係数化リストで返す. default : case 0 @end table @itemize @bullet -@item $BJQ?t$O(B2$BWFM$7$J$$$h$&Cm0U(B. -@item taji_alc.fbt()$B$O(B, Res(Rat*exp(z*x))$B$J$k7A$NM-M}7A4X?t$NN1?t$r5a$a$k(B. -$B$3$NM-M}7A4X?t$NN1?t$O;X?tB?9`<0$H$J$k$?$a(B, $B;X?tB?9`<0%j%9%H$GJV$9(B. -@item $BFbIt$N%"%k%4%j%:%`$O(Btaji_alc.residue()$B$H$[$\F1$8$G$"$j(B, $BH(B +@item 参照 @ref{taji_alc.residue, taji_alc.invfbt} @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -899,39 +899,39 @@ ChangeLog @page @comment **************************************************************** -@node taji_alc.inv,,, 1$BJQ?tBe?tE*6I=j%3%[%b%m%8!e$G4{LsJ,2r$7$?%j%9%H(B]$B$J$k%j%9%H$GJV$9(B. +case 1 : 有理関数を[分子,分母をQ上で既約分解したリスト]なるリストで返す. default : case 0 @end table @itemize @bullet -@item $BJQ?t$O(B2$B.B?9`<0$NJQ?t$H;X?tB?9`<0$NFHN)JQ?t(B). -$B>WFM$7$J$$$h$&Cm0U(B. -@item taji_alc.invfbt()$B$O(B, exppoly$B$r(B, Res(Rat*exp(z*x))$B$J$k7A$NN1?tI=<($KJQ49$7(B, Rat$BItJ,$rJV$9(B. -@item taji_alc.fbt()$B$N5U1i;;$G$"$k(B. +@item 変数は2種類必要(代数的数の最小多項式の変数と指数多項式の独立変数). +衝突しないよう注意. +@item taji_alc.invfbt()は, exppolyを, Res(Rat*exp(z*x))なる形の留数表示に変換し, Rat部分を返す. +@item taji_alc.fbt()の逆演算である. @end itemize @example @@ -947,12 +947,12 @@ ch=1); @end example @table @t -@item $B;2>H(B +@item 参照 @ref{taji_alc.fbt} @end table -@comment --- ChangeLog $B$r=q$/(B. $BF05!(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B -@comment --- openxm $B$N30It$+$i$N4sM?$b=R$Y$k(B. Credit. +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. @noindent ChangeLog @itemize @bullet @@ -964,7 +964,7 @@ ChangeLog -@comment --- $B$*$^$8$J$$(B --- +@comment --- おまじない --- @node Index,,, Top @unnumbered Index @printindex fn @@ -975,4 +975,4 @@ ChangeLog @summarycontents @contents @bye -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り ---