Annotation of OpenXM/doc/ascm2001/heterotic-network.tex, Revision 1.3
1.3 ! takayama 1: % $OpenXM: OpenXM/doc/ascm2001/heterotic-network.tex,v 1.2 2001/03/07 06:54:40 takayama Exp $
1.1 noro 2: \section{Applications}
3:
4: \subsection{Heterogeneous Servers}
5:
6: \def\pd#1{ \partial_{#1} }
7:
8: By using OpenXM, we can treat OpenXM servers essentially
9: like a subroutine.
10: Since OpenXM provides a universal stack machine which does not
11: depend each servers,
12: it is relatively easy to install new servers.
13: We can build a new computer math system by assembling
14: different OpenXM servers.
15: It is similar to building a toy house by LEGO blocks.
16:
1.2 takayama 17: We will see three examples of custom-made systems
1.1 noro 18: built by OpenXM servers.
19:
20: \subsubsection{Computation of annihilating ideals by kan/sm1 and ox\_asir}
21:
22: Let $D = {\bf Q} \langle x_1, \ldots, x_n , \pd{1}, \ldots, \pd{n} \rangle$
23: be the ring of differential operators.
24: For a given polynomial
25: $ f \in {\bf Q}[x_1, \ldots, x_n] $,
26: the annihilating ideal of $f^{-1}$ is defined as
27: $$ {\rm Ann}\, f^{-1} = \{ \ell \in D \,|\,
28: \ell \bullet f^{-1} = 0 \}.
29: $$
30: Here, $\bullet$ denotes the action of $D$ to functions.
31: The annihilating ideal can be regarded as the maximal differential
32: equations for the function $f^{-1}$.
33: An algorithm to determine generators of the annihilating ideal
34: was given by Oaku (see, e.g., \cite[5.3]{sst-book}).
35: His algorithm reduces the problem to computations of Gr\"obner bases
36: in $D$ and to find the minimal integral root of a polynomial.
37: This algorithm (the function {\tt annfs}) is implemented by
38: kan/sm1 \cite{kan}, for Gr\"obner basis computation in $D$, and
39: {\tt ox\_asir}, to factorize polynomials to find the integral
40: roots.
41: These two OpenXM compliant systems are integrated by
42: the OpenXM protocol.
43:
44: For example, the following is a sm1 session to find the annihilating
45: ideal for $f = x^3 - y^2 z^2$.
46: \begin{verbatim}
47: sm1>[(x^3-y^2 z^2) (x,y,z)] annfs ::
48: Starting ox_asir server.
49: Byte order for control process is network byte order.
50: Byte order for engine process is network byte order.
51: [[-y*Dy+z*Dz, 2*x*Dx+3*y*Dy+6, -2*y*z^2*Dx-3*x^2*Dy,
52: -2*y^2*z*Dx-3*x^2*Dz, -2*z^3*Dx*Dz-3*x^2*Dy^2-2*z^2*Dx],
53: [-1,-139968*s^7-1119744*s^6-3802464*s^5-7107264*s^4
54: -7898796*s^3-5220720*s^2-1900500*s-294000]]
55: \end{verbatim}
56: The last polynomial is factored as
57: $-12(s+1)(3s+5)(3s+4)(6s+5)(6s+7)$
58: and the minimal integral root is $-1$
59: as shown in the output.
60:
61: Similarly,
62: an algorithm to stratify singularity
63: \cite{oaku-advance}
64: is implemented by
65: kan/sm1 \cite{kan}, for Gr\"obner basis computation in $D$, and
66: {\tt ox\_asir}, for primary ideal decompositions.
67:
68: \subsubsection{A Course on Solving Algebraic Equations}
69:
70: Risa/Asir \cite{asir} is a general computer algebra system
71: which can be used for Gr\"obner basis computations for zero dimensional ideal
72: with ${\bf Q}$ coefficients.
73: However, it is not good at graphical presentations and
74: numerical methods.
75: We integrated Risa/Asir, ox\_phc (based on PHC pack by Verschelde \cite{phc}
76: for the polyhedral homotopy method) and
77: ox\_gnuplot (GNUPLOT) servers
78: to teach a course on solving algebraic equations.
79: This course was presented with the text book \cite{CLO},
80: which discusses
81: on the Gr\"obner basis method and the polyhedral homotopy method
82: to solve systems of algebraic equations.
83: We taught the course
84: with a unified environment
85: controlled by the Asir user language, which is similar to C.
86: The following is an Asir session to solve algebraic equations by calling
87: the PHC pack (Figure \ref{katsura} is the output of {\tt [292]}):
88: \begin{verbatim}
89: [287] phc(katsura(7));
90: The detailed output is in the file tmp.output.*
91: The answer is in the variable Phc.
92: 0
93: [290] B=map(first,Phc)$
94: [291] gnuplot_plotDots([],0)$
95: [292] gnuplot_plotDots(B,0)$
96: \end{verbatim}
97:
98: \begin{figure}[htbp]
99: \epsfxsize=8.5cm
100: \epsffile{katsura7.ps}
101: \caption{The first components of the solutions to the system of algebraic equations Katsura 7.}
102: \label{katsura}
103: \end{figure}
1.2 takayama 104:
105: \subsubsection{Asir-contrib-HG package to solve GKZ hypergeometric systems}
106:
107: GKZ hypergeometric system is a system of linear partial differential
108: equations associated to $A=(a_{ij})$
109: (an integer $d\times n$-matrix of rank $d$)
110: and $\beta \in {\bf C}^d$.
111: The book by Saito, Sturmfels and Takayama \cite{sst-book}
112: discusses algorithmic methods to construct series solutions of the GKZ
113: system.
114: The current Asir-contrib-HG package is built in order to implement
115: these algorithms.
116: What we need for the implementation are mainly
117: (1) Gr\"obner basis computation both in the ring of polynomials
118: and in the ring of differential operators,
119: and
120: (2) enumeration of all the Gr\"obner bases of toric ideals.
1.3 ! takayama 121: Asir and kan/sm1 provide functions for (1) and
1.2 takayama 122: {\tt TiGERS} provides a function for (2).
123: These components communicate each other by OpenXM-RFC 100 protocol.
124:
125: Let us see an example how to construct series solution of a GKZ hypergeometric
126: system.
127: The function
128: {\tt dsolv\_starting\_term} finds the leading terms of series solutions
129: to a given direction.
130: \begin{enumerate}
131: \item Generate the GKZ hypergeometric system associated to
132: $\pmatrix{ 1&1&1&1&1 \cr
133: 1&1&0&-1&0 \cr
134: 0&1&1&-1&0 \cr}$
135: by the function {\tt sm1\_gkz}.
136: \begin{verbatim}
137: [1076] F = sm1_gkz(
138: [ [[1,1,1,1,1],
139: [1,1,0,-1,0],
140: [0,1,1,-1,0]], [1,0,0]]);
141: [[x5*dx5+x4*dx4+x3*dx3+x2*dx2+x1*dx1-1,
142: -x4*dx4+x2*dx2+x1*dx1,
143: -x4*dx4+x3*dx3+x2*dx2,
144: -dx2*dx5+dx1*dx3,dx5^2-dx2*dx4],
145: [x1,x2,x3,x4,x5]]
146: \end{verbatim}
147: \item Find the leading terms of this system to the direction
148: $(1,1,1,1,0)$.
149: \begin{verbatim}
150: [1077] A= dsolv_starting_term(F[0],F[1],
151: [1,1,1,1,0])$
152: Computing the initial ideal.
153: Done.
154: Computing a primary ideal decomposition.
155: Primary ideal decomposition of
156: the initial Frobenius ideal
157: to the direction [1,1,1,1,0] is
158: [[[x5+2*x4+x3-1,x5+3*x4-x2-1,
159: x5+2*x4+x1-1,3*x5^2+(8*x4-6)*x5-8*x4+3,
160: x5^2-2*x5-8*x4^2+1,x5^3-3*x5^2+3*x5-1],
161: [x5-1,x4,x3,x2,x1]]]
162:
163: ----------- root is [ 0 0 0 0 1 ]
164: ----------- dual system is
165: [x5^2+(-3/4*x4-1/2*x3-1/4*x2-1/2*x1)*x5+1/8*x4^2
166: +(1/4*x3+1/4*x1)*x4+1/4*x2*x3-1/8*x2^2+1/4*x1*x2,
167: x4-2*x3+3*x2-2*x1,x5-x3+x2-x1,1]
168: \end{verbatim}
169: \item From the output, we can see that we have four possible
170: leading terms.
171: Factoring these leading terms, we get the following simpler expressions.
172: The third entry
173: {\tt [[1,1],[x5,1],[-log(x1)+log(x2)-log(x3)+log(x5),1]], }
174: means that there exists a series solution which starts with
175: \[
176: x_5 (-\log x_1 + \log x_2 - \log x_3 + \log x_5) =
177: x_5 \log \frac{x_2 x_5}{x_1 x_3}
178: \]
179: \begin{verbatim}
180: [1078] A[0];
181: [[ 0 0 0 0 1 ]]
182: [1079] map(fctr,A[1][0]);
183: [[[1/8,1],[x5,1],[log(x2)+log(x4)-2*log(x5),1],
184: [2*log(x1)-log(x2)+2*log(x3)+log(x4)-4*log(x5)
185: ,1]],
186: [[1,1],[x5,1],
187: [-2*log(x1)+3*log(x2)-2*log(x3)+log(x4),1]],
188: [[1,1],[x5,1],
189: [-log(x1)+log(x2)-log(x3)+log(x5),1]],
190: [[1,1],[x5,1]]]
191: \end{verbatim}
192: \end{enumerate}
193:
194:
195:
196:
1.1 noro 197:
198:
199:
200:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>