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

Annotation of OpenXM/src/asir-contrib/packages/doc/dsolv/dsolv.oxw, Revision 1.1

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

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