[BACK]Return to dsolv.oxweave CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-contrib / packages / doc

Annotation of OpenXM/src/asir-contrib/packages/doc/dsolv.oxweave, Revision 1.3

1.3     ! takayama    1: /* $OpenXM: OpenXM/src/asir-contrib/packages/doc/dsolv.oxweave,v 1.2 2000/02/07 04:46:25 takayama Exp $ */
1.1       takayama    2: /* dsolv.oxweave */
                      3: /*&eg-texi
                      4: @node DSOLV Functions,,, Top
                      5:
                      6: @chapter DSOLV Functions
                      7:
                      8: This section is a collection of functions to solve regular holonomic
                      9: systems in terms of series.
                     10: Algorithms are explained in the book [SST].
                     11: You can load this package by the command
1.3     ! takayama   12: @code{load("dsolv")$}
1.1       takayama   13: This package requires @code{Diff} and @code{dmodule}.
                     14:
1.3     ! takayama   15: To use the functions of the package @code{dsolv} in OpenXM/Risa/Asir,
        !            16: executing the command @code{load("dsolv")$}
        !            17: is necessary at first.
        !            18:
        !            19:
1.1       takayama   20: This package uses @code{ox_sm1}, so the variables you can use
                     21: is as same as those you can use in the package @code{sm1}.
                     22:
                     23: @section Functions
                     24:
                     25: */
                     26:
                     27: /*&jp-texi
                     28: @node DSOLV $BH!?t(B,,, Top
                     29:
                     30: @chapter DSOLV $BH!?t(B
                     31:
                     32: $B$3$N@a$O@5B'%[%m%N%_%C%/7O$r5i?t$G2r$/$?$a$N(B
                     33: $BH!?t$r$"$D$a$F$"$k(B.
                     34: $B%"%k%4%j%:%`$K$D$$$F$O(B [SST] $B$K@bL@$,$"$k(B.
                     35: $B$3$N%Q%C%1!<%8$O<!$N%3%^%s%I(B @code{load("dsolv");}
                     36: $B$G%m!<%I$G$-$k(B.
1.3     ! takayama   37: $B$3$N%Q%C%1!<%8$O(B @code{Diff} $B$*$h$S(B @code{Dmodule} $B$r;HMQ$9$k(B.
        !            38:
        !            39: OpenXM/Risa/Asir $B$G$NMxMQ$K$"$?$C$F$O(B,
        !            40: @example
        !            41: load("dsolv");$
        !            42: @end example
        !            43: $B$,;O$a$KI,MW(B.
1.1       takayama   44:
                     45: $B$3$N%Q%C%1!<%8$O(B @code{ox_sm1} $B$rMxMQ$7$F$$$k(B.
                     46: $B$7$?$,$C$F;HMQ$G$-$kJQ?t$O(B @code{sm1} $B%Q%C%1!<%8$HF1MM$NJQ?t$7$+$D$+$($J$$(B.
                     47:
1.2       takayama   48: @section $BH!?t0lMw(B
1.1       takayama   49:
                     50: */
                     51:
                     52: /*&eg-texi
                     53: @menu
                     54: * dsolv_dual::
                     55: @end menu
                     56: @node dsolv_dual,,, DSOLV Functions
                     57: @subsection @code{dsolv_dual}
                     58: @findex dsolv_dual
                     59: @table @t
                     60: @item dsolv_dual(@var{f},@var{v})
                     61: ::  Grobner dual of @var{f}.
                     62: @end table
                     63:
                     64: @table @var
                     65: @item return
                     66: List
                     67: @item f, v
                     68: List
                     69: @end table
                     70:
                     71: @itemize @bullet
                     72: @item  It returns the Grobner dual of @var{f} in the ring of polynomials
                     73: with variables @var{v}.
                     74: @item The ideal generated by @var{f} must be primary to the maximal ideal
                     75: generated by @var{v}.
                     76: If it is not primary to the maximal ideal, then this function falls into
                     77: an infinite loop.
1.3     ! takayama   78: @end itemize
        !            79:
        !            80:
        !            81: @noindent
        !            82: Algorithm:
        !            83: This is an implementation of Algorithm 2.3.14 of the book [SST].
1.1       takayama   84: If we replace variables x, y, ... in the output by log(x), log(y), ...,
                     85: then these polynomials in log are solutions of the system of differential
1.2       takayama   86: equations @var{f}@code{_(x->x*dx, y->y*dy, ...)}.
1.3     ! takayama   87:
1.1       takayama   88: */
                     89:
                     90: /*&jp-texi
                     91: @menu
                     92: * dsolv_dual::
                     93: @end menu
                     94: @node dsolv_dual,,, DSOLV $BH!?t(B
                     95: @subsection @code{dsolv_dual}
                     96: @findex dsolv_dual
                     97: @table @t
                     98: @item dsolv_dual(@var{f},@var{v})
                     99: ::  @var{f} $B$N%0%l%V%JAPBP(B
                    100: @end table
                    101:
                    102: @table @var
                    103: @item $BLa$jCM(B
                    104: $B%j%9%H(B
                    105: @item f, v
                    106: $B%j%9%H(B
                    107: @end table
                    108:
                    109: @itemize @bullet
                    110: @item  $BJQ?t(B @var{v} $B>e$NB?9`<04D$K$*$$$F(B,
                    111: @var{f}  $B$N%0%l%V%JAPBP$r5a$a$k(B.
                    112: @item @var{f} $B$G@8@.$5$l$k%$%G%"%k$O(B, @var{v} $B$G@8@.$5$l$k6KBg%$%G%"%k$K(B
                    113: $BBP$7$F(B, primary $B$G$J$$$H$$$1$J$$(B.
                    114: primary $B$G$J$$>l9g(B, $B$3$NH!?t$OL58B%k!<%W$K$*$A$$$k(B.
1.3     ! takayama  115: @end itemize
        !           116:
        !           117: @noindent
        !           118: Algorithm:
        !           119: $B$3$NH!?t$OK\(B [SST] $B$N(B Algorithm 2.3.14  $B$N<BAu$G$"$k(B.
1.1       takayama  120: $B=PNOCf$NJQ?t(B x, y, ... $B$r$=$l$>$l(B log(x), log(y), ..., $B$G$*$-$+$($k$H(B,
                    121: $B$3$l$i$N(B log $BB?9`<0$O(B,
1.2       takayama  122: @var{f}@code{_(x->x*dx, y->y*dy, ...)}
                    123: $B$G@8@.$5$l$kHyJ,J}Dx<07O(B
1.1       takayama  124: $B$N2r$H$J$C$F$$$k(B.
                    125: */
                    126:
                    127: /*&C-texi
                    128:
                    129: @example
                    130:
                    131:
                    132: [435] dsolv_dual([y-x^2,y+x^2],[x,y]);
                    133: [x,1]
                    134: [436] dsolv_act(y*dy-sm1_mul(x*dx,x*dx,[x,y]),log(x),[x,y]);
                    135: 0
                    136: [437] dsolv_act(y*dy+sm1_mul(x*dx,x*dx,[x,y]),log(x),[x,y]);
                    137: 0
                    138:
                    139: [439] primadec([y^2-x^3,x^2*y^2],[x,y]);
                    140: [[[y^2-x^3,y^4,x^2*y^2],[y,x]]]
                    141: [440] dsolv_dual([y^2-x^3,x^2*y^2],[x,y]);
                    142: [x*y^3+1/4*x^4*y, x^2*y, x*y^2+1/12*x^4, y^3+x^3*y,
                    143:  x^2, x*y, y^2+1/3*x^3, x, y, 1]
                    144:
                    145: [441] dsolv_test_dual();
                    146:   Output is  omitted.
                    147:
                    148: @end example
                    149:
                    150: */
                    151:
                    152:
                    153: /*&eg-texi
                    154:
                    155: @menu
                    156: * dsolv_starting_term::
                    157: @end menu
                    158: @node dsolv_starting_term,,, DSOLV Functions
                    159: @subsection @code{dsolv_starting_term}
                    160: @findex dsolv_starting_term
                    161: @table @t
                    162: @item dsolv_starting_term(@var{f},@var{v},@var{w})
                    163: ::  Find the starting term of the solutions of
                    164: the regular holonomic system @var{f}
                    165: to the direction @var{w}.
                    166: @end table
                    167:
                    168: @table @var
                    169: @item return
                    170: List
                    171: @item f, v, w
                    172: List
                    173: @end table
                    174:
                    175: @itemize @bullet
                    176: @item Find the starting term of the solutions of
                    177: the regular holonomic system @var{f}
                    178: to the direction @var{w}.
                    179: @item The return value is of the form
                    180: [[@var{e1}, @var{e2}, ...],
                    181:  [@var{s1}, @var{s2}, ...]]
                    182: where @var{e1} is an exponent vector and @var{s1} is the corresponding
                    183: solution set, and so on.
                    184: @item If you set @code{Dsolv_message_starting_term} to 1,
                    185: then this function outputs messages during the computation.
                    186: @end itemize
                    187:
                    188: */
                    189:
                    190: /*&jp-texi
                    191:
                    192: @menu
                    193: * dsolv_starting_term::
                    194: @end menu
                    195: @node dsolv_starting_term,,, DSOLV $BH!?t(B
                    196: @subsection @code{dsolv_starting_term}
                    197: @findex dsolv_starting_term
                    198: @table @t
                    199: @item dsolv_starting_term(@var{f},@var{v},@var{w})
                    200: :: $B@5B'%[%m%N%_%C%/7O(B @var{f} $B$NJ}8~(B @var{w} $B$G$N5i?t2r$N(B
                    201: Staring terms $B$r7W;;$9$k(B. $B$3$3$G(B, @var{v} $B$OJQ?t$N=89g(B.
                    202: @end table
                    203:
                    204: @table @var
                    205: @item $BLa$jCM(B
                    206: $B%j%9%H(B
                    207: @item f, v, w
                    208: $B%j%9%H(B
                    209: @end table
                    210:
                    211: @itemize @bullet
                    212: @item $B@5B'%[%m%N%_%C%/7O(B @var{f} $B$NJ}8~(B @var{w} $B$G$N5i?t2r$N(B
                    213: Staring terms $B$r7W;;$9$k(B. $B$3$3$G(B, @var{v} $B$OJQ?t$N=89g(B.
                    214: @item $BLa$jCM$O<!$N7A$r$7$F$$$k(B:
                    215: [[@var{e1}, @var{e2}, ...],
                    216:  [@var{s1}, @var{s2}, ...]]
                    217: $B$3$3$G(B @var{e1} $B$O(B exponent $B%Y%/%H%k$G$"$j(B @var{s1} $B$O$3$N%Y%/%H%k$K(B
                    218: $BBP1~$9$k2r$N=89g(B,   $B0J2<F1MM(B.
                    219: @item $BJQ?t(B @code{Dsolv_message_starting_term} $B$r(B 1 $B$K$7$F$*$/$H(B,
                    220: $B$3$NH!?t$O7W;;$NESCf$K$$$m$$$m$H%a%C%;!<%8$r=PNO$9$k(B.
                    221: @end itemize
                    222:
1.3     ! takayama  223:
1.1       takayama  224: */
                    225:
                    226: /*&C-texi
1.3     ! takayama  227:
        !           228: @noindent
        !           229: Algorithm: Saito, Sturmfels, Takayama, Grobner Deformations of Hypergeometric
        !           230: Differential Equations ([SST]), Chapter 2.
        !           231:
1.1       takayama  232:
                    233: @example
                    234: [1076]   F = sm1_gkz( [ [[1,1,1,1,1],[1,1,0,-1,0],[0,1,1,-1,0]], [1,0,0]]);
                    235: [[x5*dx5+x4*dx4+x3*dx3+x2*dx2+x1*dx1-1,-x4*dx4+x2*dx2+x1*dx1,
                    236:   -x4*dx4+x3*dx3+x2*dx2,
                    237:   -dx2*dx5+dx1*dx3,dx5^2-dx2*dx4],[x1,x2,x3,x4,x5]]
                    238: [1077]  A= dsolv_starting_term(F[0],F[1],[1,1,1,1,0])$
                    239: Computing the initial ideal.
                    240: Done.
                    241: Computing a primary ideal decomposition.
                    242: Primary ideal decomposition of the initial Frobenius ideal
                    243: to the direction [1,1,1,1,0] is
                    244: [[[x5+2*x4+x3-1,x5+3*x4-x2-1,x5+2*x4+x1-1,3*x5^2+(8*x4-6)*x5-8*x4+3,
                    245:    x5^2-2*x5-8*x4^2+1,x5^3-3*x5^2+3*x5-1],
                    246:  [x5-1,x4,x3,x2,x1]]]
                    247:
                    248: ----------- root is [ 0 0 0 0 1 ]
                    249: ----------- dual system is
                    250: [x5^2+(-3/4*x4-1/2*x3-1/4*x2-1/2*x1)*x5+1/8*x4^2
                    251:  +(1/4*x3+1/4*x1)*x4+1/4*x2*x3-1/8*x2^2+1/4*x1*x2,
                    252:  x4-2*x3+3*x2-2*x1,x5-x3+x2-x1,1]
                    253:
                    254: [1078] A[0];
                    255: [[ 0 0 0 0 1 ]]
                    256: [1079] map(fctr,A[1][0]);
                    257: [[[1/8,1],[x5,1],[log(x2)+log(x4)-2*log(x5),1],
                    258:           [2*log(x1)-log(x2)+2*log(x3)+log(x4)-4*log(x5),1]],
                    259:  [[1,1],[x5,1],[-2*log(x1)+3*log(x2)-2*log(x3)+log(x4),1]],
                    260:  [[1,1],[x5,1],[-log(x1)+log(x2)-log(x3)+log(x5),1]],
                    261:  [[1,1],[x5,1]]]
                    262:
                    263: @end example
                    264:
                    265: */
                    266:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>