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