1
2\subsection{Introduction}
3This package can expand functions of certain type into
4their corresponding Laurent-Puiseux series as a sum of terms of the form
5\[
6\sum_{k=0}^{\infty} a_{k} (x-x_{0})^{m k/n + s}
7\]
8where $m$ is the `symmetry number', $s$ is the `shift number',
9$n$ is the `Puiseux number',
10and $x_0$ is the `point of development'. The following types are
11supported:
12\begin{itemize}
13\item
14{\bf functions of `rational type'}, which are either rational or have a
15rational derivative of some order;
16\item
17{\bf functions of `hypergeometric type'} where $a(k+m)/a(k)$ is a rational
18function for some integer $m$;
19\item
20{\bf functions of `explike type'} which satisfy a linear homogeneous
21differential equation with constant coefficients.
22\end{itemize}
23
24The FPS package is an implementation of the method
25presented in \cite{Koepf:92}. The implementations of this package
26for {\sc Maple} (by D.\ Gruntz) and {\sc Mathematica} (by W.\ Koepf)
27served as guidelines for this one.
28
29Numerous examples can be found in \cite{Koepf:93a}--\cite{Koepf:93b},
30most of which are contained in the test file {\tt fps.tst}. Many
31more examples can be found in the extensive bibliography of Hansen \cite{Hansen:75}.
32
33
34\subsection{\REDUCE{} operator {\tt FPS}}
35
36\ttindex{FPS}
37{\tt FPS(f,x,x0)} tries to find a formal power
38series expansion for {\tt f} with respect to the variable {\tt x}
39at the point of development {\tt x0}.
40It also works for formal Laurent (negative exponents) and Puiseux series
41(fractional exponents). If the third
42argument is omitted, then {\tt x0:=0} is assumed.
43
44Examples: {\tt FPS(asin(x)\verb+^+2,x)} results in
45\begin{verbatim}
46
47         2*k  2*k             2  2
48        x   *2   *factorial(k) *x
49infsum(----------------------------,k,0,infinity)
50        factorial(2*k + 1)*(k + 1)
51\end{verbatim}
52{\tt FPS(sin x,x,pi)} gives
53\begin{verbatim}
54                   2*k       k
55        ( - pi + x)   *( - 1) *( - pi + x)
56infsum(------------------------------------,k,0,infinity)
57                factorial(2*k + 1)
58\end{verbatim}
59and {\tt FPS(sqrt(2-x\verb+^+2),x)} yields
60\begin{verbatim}
61            2*k
62         - x   *sqrt(2)*factorial(2*k)
63infsum(--------------------------------,k,0,infinity)
64           k             2
65          8 *factorial(k) *(2*k - 1)
66\end{verbatim}
67Note: The result contains one or more {\tt infsum} terms such that it does
68not interfere with the {\REDUCE} operator {\tt sum}. In graphical oriented
69REDUCE interfaces this operator results in the usual $\sum$ notation.
70
71If possible, the output is given using factorials. In some cases, the
72use of the Pochhammer symbol {\tt pochhammer(a,k)}$:=a(a+1)\cdots(a+k-1)$
73is necessary.
74
75The operator {\tt FPS} uses the operator {\tt SimpleDE} of the next section.
76
77If an error message of type
78\begin{verbatim}
79Could not find the limit of:
80\end{verbatim}
81occurs, you can set the corresponding limit yourself and try a
82recalculation. In the computation of {\tt FPS(atan(cot(x)),x,0)},
83REDUCE is not able to find the value for the limit
84{\tt limit(atan(cot(x)),x,0)} since the {\tt atan} function is multi-valued.
85One can choose the branch of {\tt atan} such that this limit equals
86$\pi/2$ so that we may set
87\begin{verbatim}
88let limit(atan(cot(~x)),x,0)=>pi/2;
89\end{verbatim}
90and a recalculation of {\tt FPS(atan(cot(x)),x,0)}
91yields the output {\tt pi - 2*x} which is
92the correct local series representation.
93
94\subsection{\REDUCE{} operator {\tt SimpleDE}}
95\ttindex{SIMPLEDE}
96
97{\tt SimpleDE(f,x)} tries to find a homogeneous linear differential
98equation with polynomial coefficients for $f$ with respect to $x$.
99Make sure that $y$ is not a used variable.
100The setting {\tt factor df;} is recommended to receive a nicer output form.
101
102Examples: {\tt SimpleDE(asin(x)\verb+^+2,x)} then results in
103\begin{verbatim}
104            2
105df(y,x,3)*(x  - 1) + 3*df(y,x,2)*x + df(y,x)
106\end{verbatim}
107{\tt SimpleDE(exp(x\verb+^+(1/3)),x)} gives
108\begin{verbatim}
109              2
11027*df(y,x,3)*x  + 54*df(y,x,2)*x + 6*df(y,x) - y
111\end{verbatim}
112and {\tt SimpleDE(sqrt(2-x\verb+^+2),x)} yields
113\begin{verbatim}
114          2
115df(y,x)*(x  - 2) - x*y
116\end{verbatim}
117The depth for the search of a differential equation for {\tt f} is
118controlled by the variable {\tt fps\verb+_+search\verb+_+depth};
119higher values for {\tt fps\verb+_+search\verb+_+depth}
120will increase the chance to find the solution, but increases the
121complexity as well. The default value for {\tt fps\verb+_+search\verb+_+depth}
122is 5. For {\tt FPS(sin(x\verb+^+(1/3)),x)}, or
123{\tt SimpleDE(sin(x\verb+^+(1/3)),x)} e.\ g., a setting
124{\tt fps\verb+_+search\verb+_+depth:=6} is necessary.
125
126The output of the FPS package can be influenced by the
127switch {\tt tracefps}. Setting {\tt on tracefps} causes various
128prints of intermediate results.
129
130\subsection{Problems in the current version}
131The handling of logarithmic singularities is not yet implemented.
132
133The rational type implementation is not yet complete.
134
135The support of special functions \cite{Koepf:94c}
136will be part of the next version.
137