[BACK]Return to heterotic-network.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / issac2000

File: [local] / OpenXM / doc / issac2000 / heterotic-network.tex (download)

Revision 1.3, Mon Jan 3 04:27:52 2000 UTC (24 years, 4 months ago) by takayama
Branch: MAIN
Changes since 1.2: +8 -6 lines

My final update of the paper for ISSAC2000.
Please feel free to make any changes.

% $OpenXM: OpenXM/doc/issac2000/heterotic-network.tex,v 1.3 2000/01/03 04:27:52 takayama Exp $

\subsection{Heterotic Network}   (Takayama)

\def\pd#1{ \partial_{#1} }
\subsubsection{Annihilating ideal}

Let $D = {\bf Q} \langle x_1, \ldots, x_n , \pd{1}, \ldots, \pd{n} \rangle$
be the ring of differential operators.
For a given polynomial
$ f \in {\bf Q}[x_1, \ldots, x_n] $,
the annihilating ideal of $f^{-1}$ is defined as
$$ {\rm Ann}\, f^{-1} = \{ \ell \in D \,|\,
  \ell \bullet f^{-1} = 0 \}.
$$
Here, $\bullet$ denotes the action of $D$ to functions.
The annihilating ideal can be regarded as the maximal differential
equations for the function $f^{-1}$.
An algorithm to determine generators of the annihilating ideal
was given by Oaku in 1995 (see, e.g., \cite[5.3]{sst-book}).
His algorithm reduces the problem to computations of Gr\"obner bases
in $D$ and to find the maximal integral root of a polynomial.
An implementation of this algorithm (the function {\tt annfs})
on kan/sm1 \cite{kan}
calls ox\_asir to factorize polynomials to find the integral
roots.
For example, the following is a sm1 session to find the annihilating
ideal for $f = x^3 - y^2 z^2$.
\begin{verbatim}
sm1>[(x^3-y^2 z^2) (x,y,z)] annfs ::
Starting ox_asir server.
Byte order for control process is network byte order.
Byte order for engine process is network byte order.
[[-y*Dy+z*Dz, 2*x*Dx+3*y*Dy+6, -2*y*z^2*Dx-3*x^2*Dy, 
  -2*y^2*z*Dx-3*x^2*Dz, -2*z^3*Dx*Dz-3*x^2*Dy^2-2*z^2*Dx], 
 [-1,-139968*s^7-1119744*s^6-3802464*s^5-7107264*s^4
     -7898796*s^3-5220720*s^2-1900500*s-294000]] 
\end{verbatim}
The last polynomial is factored as
$-12(s+1)(3s+5)(3s+4)(6s+5)(6s+7)$
and the minimal integral root is $-1$
as shown in the output.

\subsubsection{Primary ideal decomposition and
a stratification of singularity}
Let ${\cal D} = {\cal O}\langle \pd{1}, \ldots, \pd{n} \rangle$
be the sheaf of algebraic differential operators on ${\bf C}^n$.
For a given polynomial
$f \in {\bf Q}[x_1, \ldots, x_n]$,
minimal degree non-zero polynomial $b_a(s)$ such that
$ b_a(s) f^s \in {\cal D}_{a} \bullet f^{s+1} $
is called the local $b$-function of $f^s$ at
$x=a$.
Here, ${\cal D}_a$ denotes the germ of the sheaf ${\cal D}$ at
$x=a$.
The polynomial $b_a(s)$ depends on $a$ and ${\bf C}^n$ is
stratified into a finite algebraic sets such that
$b_a(s)$ is a constant with respect to $a$ on each 
algebraic set.
An algorithm to determine the stratification
was given by Oaku in 1997 \cite{oaku-advance}.
His algorithm reduces the problem to computations of Gr\"obner bases
in $D$ and primary ideal decompositions.
An implementation of this algorithm 
uses sm1 for Gr\"obner basis computation in $D$ and 
ox\_asir for primary ideal decomposition and Gr\"obner basis computation
in the ring of polynomials.

\subsubsection{A Course on Solving Algebraic Equations}

Risa/asir \cite{asir} is a general computer algebra system
which is good at Gr\"obner basis computations for zero dimensional ideal
with ${\bf Q}$ coefficients.
However, it is not good at graphical presentations and
numerical methods.
We used Risa/asir with ox\_sm1\_phc (based on PHC pack by Verschelde \cite{phc}
for the polyhedral homotopy method) and
ox\_sm1\_gnuplot (GNUPLOT) servers
to teach a course on solving algebraic equations.
This course was presented with the text book \cite{CLO} which discusses
on the Gr\"obner basis method and the polyhedral homotopy method
to solve systems of algebraic equations.
Risa/asir has a user language like C and we could teach a course
with a unified environment
controlled by asir user language.
The following is an asir session to solve algebraic equations by calling
the PHC pack.
\begin{verbatim}
[257] phc([x^2+y^2-4,x*y-1]);
The detailed output is in the file tmp.output.*
The answer is in the variable Phc.
0
[260] Phc ;
[[[-0.517638,0],[-1.93185,0]],
[[1.93185,0],[0.517638,0]],
[[-1.93185,0],[-0.517638,0]],
[[0.517638,0],[1.93185,0]]]
[261] 
\end{verbatim}