[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.13, Mon Jan 17 08:50:56 2000 UTC (24 years, 3 months ago) by noro
Branch: MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, RELEASE_20000124, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.12: +2 -2 lines

Final corrections.
(skip -> discard in Section 5.3 etc.)

% $OpenXM: OpenXM/doc/issac2000/heterotic-network.tex,v 1.13 2000/01/17 08:50:56 noro Exp $
\section{Applications}

\subsection{Heterogeneous Servers}

\def\pd#1{ \partial_{#1} }

By using OpenXM, we can treat OpenXM servers essentially 
like a subroutine.
Since OpenXM provides a universal stack machine which does not
depend each servers, 
it is relatively easy to install new servers.
We can build a new computer math system by assembling
different OpenXM servers.
It is similar to building a toy house by LEGO blocks.

We will see two examples of custom-made systems
built by OpenXM servers.

\subsubsection{Computation of annihilating ideals by kan/sm1 and ox\_asir}

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 (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 minimal integral root of a polynomial.
This algorithm (the function {\tt annfs}) is implemented by
kan/sm1 \cite{kan}, for Gr\"obner basis computation in $D$, and
{\tt ox\_asir}, to factorize polynomials to find the integral
roots.
These two OpenXM compliant systems are integrated by
the OpenXM protocol.

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.

Similarly, 
an algorithm to stratify singularity 
\cite{oaku-advance}
is implemented by
kan/sm1 \cite{kan}, for Gr\"obner basis computation in $D$, and
{\tt ox\_asir}, for primary ideal decompositions.

\subsubsection{A Course on Solving Algebraic Equations}

Risa/Asir \cite{asir} is a general computer algebra system
which can be used for Gr\"obner basis computations for zero dimensional ideal
with ${\bf Q}$ coefficients.
However, it is not good at graphical presentations and
numerical methods.
We integrated Risa/Asir, ox\_phc (based on PHC pack by Verschelde \cite{phc}
for the polyhedral homotopy method) and
ox\_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.
We taught the course
with a unified environment
controlled by the Asir user language, which is similar to C.
The following is an Asir session to solve algebraic equations by calling
the PHC pack (Figure \ref{katsura} is the output of {\tt [292]}):
\begin{verbatim}
[287] phc(katsura(7));
The detailed output is in the file tmp.output.*
The answer is in the variable Phc.
0
[290] B=map(first,Phc)$
[291] gnuplot_plotDots([],0)$
[292] gnuplot_plotDots(B,0)$
\end{verbatim}

\begin{figure}[htbp]
\epsfxsize=8.5cm
\epsffile{katsura7.ps}
\caption{The first components of the solutions to the system of algebraic equations Katsura 7.}
\label{katsura}
\end{figure}