fps.tex 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. \documentstyle[11pt,reduce]{article}
  2. \title{{\tt FPS}\\
  3. A Package for the\\
  4. Automatic Calculation \\
  5. of Formal Power Series}
  6. \date{}
  7. \author{Wolfram Koepf\\
  8. ZIB Berlin \\
  9. Email: {\tt Koepf@ZIB.de}
  10. \\
  11. \\
  12. Present \REDUCE{} form by \\
  13. Winfried Neun \\
  14. ZIB Berlin \\
  15. Email: {\tt Neun@ZIB.de}}
  16. \begin{document}
  17. \maketitle
  18. \section{Introduction}
  19. This package can expand functions of certain type into
  20. their corresponding Laurent-Puiseux series as a sum of terms of the form
  21. \begin{displaymath}
  22. \sum_{k=0}^{\infty} a_{k} (x-x_{0})^{m k/n + s}
  23. \end{displaymath}
  24. where $m$ is the `symmetry number', $s$ is the `shift number',
  25. $n$ is the `Puiseux number',
  26. and $x_0$ is the `point of development'. The following types are
  27. supported:
  28. \begin{itemize}
  29. \item
  30. {\bf functions of `rational type'}, which are either rational or have a
  31. rational derivative of some order;
  32. \item
  33. {\bf functions of `hypergeometric type'} where $a(k+m)/a(k)$ is a rational
  34. function for some integer $m$;
  35. \item
  36. {\bf functions of `explike type'} which satisfy a linear homogeneous
  37. differential equation with constant coefficients.
  38. \end{itemize}
  39. The FPS package is an implementation of the method
  40. presented in \cite{Koepf:92}. The implementations of this package
  41. for {\sc Maple} (by D.\ Gruntz) and {\sc Mathematica} (by W.\ Koepf)
  42. served as guidelines for this one.
  43. Numerous examples can be found in \cite{Koepf:93a}--\cite{Koepf:93b},
  44. most of which are contained in the test file {\tt fps.tst}. Many
  45. more examples can be found in the extensive bibliography of Hansen \cite{Han}.
  46. \section{\REDUCE{} operator {\tt FPS}}
  47. The FPS Package must be loaded first by:
  48. \begin{verbatim}
  49. load FPS;
  50. \end{verbatim}
  51. {\tt FPS(f,x,x0)} tries to find a formal power
  52. series expansion for {\tt f} with respect to the variable {\tt x}
  53. at the point of development {\tt x0}.
  54. It also works for formal Laurent (negative exponents) and Puiseux series
  55. (fractional exponents). If the third
  56. argument is omitted, then {\tt x0:=0} is assumed.
  57. Examples: {\tt FPS(asin(x)\verb+^+2,x)} results in
  58. \begin{verbatim}
  59. 2*k 2*k 2 2
  60. x *2 *factorial(k) *x
  61. infsum(----------------------------,k,0,infinity)
  62. factorial(2*k + 1)*(k + 1)
  63. \end{verbatim}
  64. {\tt FPS(sin x,x,pi)} gives
  65. \begin{verbatim}
  66. 2*k k
  67. ( - pi + x) *( - 1) *( - pi + x)
  68. infsum(------------------------------------,k,0,infinity)
  69. factorial(2*k + 1)
  70. \end{verbatim}
  71. and {\tt FPS(sqrt(2-x\verb+^+2),x)} yields
  72. \begin{verbatim}
  73. 2*k
  74. - x *sqrt(2)*factorial(2*k)
  75. infsum(--------------------------------,k,0,infinity)
  76. k 2
  77. 8 *factorial(k) *(2*k - 1)
  78. \end{verbatim}
  79. Note: The result contains one or more {\tt infsum} terms such that it does
  80. not interfere with the {\REDUCE} operator {\tt sum}. In graphical oriented
  81. REDUCE interfaces this operator results in the usual $\sum$ notation.
  82. If possible, the output is given using factorials. In some cases, the
  83. use of the Pochhammer symbol {\tt pochhammer(a,k)}$:=a(a+1)\cdots(a+k-1)$
  84. is necessary.
  85. The operator {\tt FPS} uses the operator {\tt SimpleDE} of the next section.
  86. If an error message of type
  87. \begin{verbatim}
  88. Could not find the limit of:
  89. \end{verbatim}
  90. occurs, you can set the corresponding limit yourself and try a
  91. recalculation. In the computation of {\tt FPS(atan(cot(x)),x,0)},
  92. REDUCE is not able to find the value for the limit
  93. {\tt limit(atan(cot(x)),x,0)} since the {\tt atan} function is multi-valued.
  94. One can choose the branch of {\tt atan} such that this limit equals
  95. $\pi/2$ so that we may set
  96. \begin{verbatim}
  97. let limit(atan(cot(~x)),x,0)=>pi/2;
  98. \end{verbatim}
  99. and a recalculation of {\tt FPS(atan(cot(x)),x,0)}
  100. yields the output {\tt pi - 2*x} which is
  101. the correct local series representation.
  102. \section{\REDUCE{} operator {\tt SimpleDE}}
  103. {\tt SimpleDE(f,x)} tries to find a homogeneous linear differential
  104. equation with polynomial coefficients for $f$ with respect to $x$.
  105. Make sure that $y$ is not a used variable.
  106. The setting {\tt factor df;} is recommended to receive a nicer output form.
  107. Examples: {\tt SimpleDE(asin(x)\verb+^+2,x)} then results in
  108. \begin{verbatim}
  109. 2
  110. df(y,x,3)*(x - 1) + 3*df(y,x,2)*x + df(y,x)
  111. \end{verbatim}
  112. {\tt SimpleDE(exp(x\verb+^+(1/3)),x)} gives
  113. \begin{verbatim}
  114. 2
  115. 27*df(y,x,3)*x + 54*df(y,x,2)*x + 6*df(y,x) - y
  116. \end{verbatim}
  117. and {\tt SimpleDE(sqrt(2-x\verb+^+2),x)} yields
  118. \begin{verbatim}
  119. 2
  120. df(y,x)*(x - 2) - x*y
  121. \end{verbatim}
  122. The depth for the search of a differential equation for {\tt f} is
  123. controlled by the variable {\tt fps\verb+_+search\verb+_+depth};
  124. higher values for {\tt fps\verb+_+search\verb+_+depth}
  125. will increase the chance to find the solution, but increases the
  126. complexity as well. The default value for {\tt fps\verb+_+search\verb+_+depth}
  127. is 5. For {\tt FPS(sin(x\verb+^+(1/3)),x)}, or
  128. {\tt SimpleDE(sin(x\verb+^+(1/3)),x)} e.\ g., a setting
  129. {\tt fps\verb+_+search\verb+_+depth:=6} is necessary.
  130. The output of the FPS package can be influenced by the
  131. switch {\tt tracefps}. Setting {\tt on tracefps} causes various
  132. prints of intermediate results.
  133. \section{Problems in the current version}
  134. The handling of logarithmic singularities is not yet implemented.
  135. The rational type implementation is not yet complete.
  136. The support of special functions \cite{Koepf:94}
  137. will be part of the next version.
  138. \begin{thebibliography}{9}
  139. \bibitem{Han}
  140. E.\ R. Hansen, {\em A table of series and products.}
  141. Prentice-Hall, Englewood Cliffs, NJ, 1975.
  142. \bibitem{Koepf:92} Wolfram Koepf,
  143. {\em Power Series in Computer Algebra},
  144. J.\ Symbolic Computation 13 (1992)
  145. \bibitem{Koepf:93a} Wolfram Koepf,
  146. {\em Examples for the Algorithmic Calculation of Formal
  147. Puiseux, Laurent and Power series},
  148. SIGSAM Bulletin 27, 1993, 20-32.
  149. \bibitem{Koepf:93b} Wolfram Koepf,
  150. {\em Algorithmic development of power series.} In:
  151. Artificial intelligence and symbolic mathematical computing,
  152. ed.\ by J.\ Calmet and J.\ A.\ Campbell,
  153. International Conference AISMC-1, Karlsruhe, Germany, August 1992, Proceedings,
  154. Lecture Notes in Computer Science {\bf 737}, Springer-Verlag,
  155. Berlin--Heidelberg, 1993, 195--213.
  156. \bibitem{Koepf:94} Wolfram Koepf,
  157. {\em Algorithmic work with orthogonal polynomials and special functions.}
  158. Konrad-Zuse-Zentrum Berlin (ZIB), Preprint SC 94-5, 1994.
  159. \end{thebibliography}
  160. \end{document}