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