diff --git a/books/bookvolbib.pamphlet b/books/bookvolbib.pamphlet index 511ef4c..5fabee6 100644 --- a/books/bookvolbib.pamphlet +++ b/books/bookvolbib.pamphlet @@ -241,6 +241,10 @@ In Miola [Mio90], pp56-60. ISBN 0-387-52531-9 (New York), 3-540-52531-9 Francois Fouche. ``Une implantation de l'algorithme de Kovacic en Scratchpad'' Technical report, Institut de Recherche Math{\'{e}}matique Avanc{\'{e}}e'' Strasbourg, France, 1990 31pp +\bibitem[GCL92]{GCL92} +Geddes, Keith O., Czapor, Stephen R., and Labahn, George +``Algorithms For Computer Algebra'' Kluwer Academic Publishers +ISBN 0-7923-9259-0 (Sept 1992) \bibitem[GBL91]{GBL91} B. M. Goodwin, R. A. Buonopane, and A. Lee. ``Using MathCAD in teaching material and energy balance concepts''. In Anonymous [Ano91], pp345-349 @@ -650,6 +654,10 @@ Karlsruhe, Germany, 1992 Ablamowicz Rafal, ``Spinor Representations of Clifford Algebras: A Symbolic Approach'', Computer Physics Communications Vol. 115, No. 2-3, December 11, 1998, pages 510-535. +\bibitem[AS64]{AS64} +Abramowitz, Milton and Stegun, Irene A. +``Handbook of Mathematical Functions'' (1964) Dover Publications, NY +ISBN 0-486-61272-4 \bibitem[Alt05]{Alt05} Altmann, Simon L. Rotations, Quaternions, and Double Groups Dover Publications, Inc. 2005 ISBN 0-486-44518-6 @@ -776,6 +784,10 @@ J. Res. Natl. Inst. Stand. Technol. (NIST) V105 No4 July-Aug 2000 pp589-590 Thom Mulders. ``A note on subresultants and a correction to the lazard/rioboo/trager formula in rational function integration'' {\sl Journal of Symbolic Computation}, 24(1):45-50, 1997 +\bibitem[NIST10]{NIST10} +Olver, Frank W., Lozier, Daniel W., Boisvert, Ronald F., Clark, Charles W. (ed) +``NIST Handbook of Mathematical Functions'' (2010) Cambridge University +Press ISBN 978-0-521-19225-5 \bibitem[Ost1845]{Ost1845} M.W. Ostrogradsky. De l'int\'{e}gration des fractions rationelles. {\sl Bulletin de la Classe Physico-Math\'{e}matiques de @@ -796,6 +808,10 @@ Ramsey, Norman ``Noweb -- A Simple, Extensible Tool for Literate Programming'' \verb|www.eecs.harvard.edu/~nr/noweb| \bibitem[Ri10]{Ri10} Rich, Albert D. ``Rule-based Mathematics'' \verb|www.apmaths.uwo.ca/~arich| +\bibitem[RF94]{RF94} +Richardson, Dan and Fitch, John +``The identity problem for elementary functions and constants'' +ACM Proc. of ISSAC 94 pp285-290 ISBN 0-89791-638-7 \bibitem[Ris68]{Ris68} Robert Risch. ``On the integration of elementary functions which are built up using algebraic operations'' Research Report diff --git a/changelog b/changelog index 2628440..e141ec7 100644 --- a/changelog +++ b/changelog @@ -1,7 +1,12 @@ +20100801 tpd src/axiom-website/patches.html 20100801.01.wxh.patch +20100801 tpd books/bookvolbib add GCL92, AS64, NIST10, RF94 +20100801 tpd src/input/Makefile add risch.input +20100801 tpd src/input/risch.input illustrate the Risch algorithm 20100729 tpd src/axiom-website/patches.html 20100729.01.wxh.patch 20100729 wxh src/algebra/Makefile help and test for U32Vector 20100729 wxh books/bookvol5 expose U32Vector 20100729 wxh books/bookvol10.3 add U32Vector, move GOPT0 from bookvol10.4 +20100729 wxh books/bookvol10. move GOPT0 from bookvol10.3 20100729 wxh books/ps/v103u32vector.eps added 20100728 tpd src/axiom-website/patches.html 20100728.04.tpd.patch 20100728 tpd books/ps/v104streamtensor.eps added diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index ffbe4d8..2ba2c63 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3041,5 +3041,7 @@ books/bookvol10.4 fix ScriptTensor regression test
books/ps/v104streamtensor.eps added
20100729.01.wxh.patch books/bookvol10.3 add U32Vector, move GOPT0 from bookvol10.4
+20100801.01.wxh.patch +books/bookvolbib Geddes GCL92 Abramowitz AS64 Olver NIST10 Richardson RF94
diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet index feabb93..ae25be5 100644 --- a/src/input/Makefile.pamphlet +++ b/src/input/Makefile.pamphlet @@ -369,7 +369,7 @@ REGRESSTESTS= ackermann.regress \ quat1.regress quat.regress r20abugs.regress r20bugs.regress \ r21bugsbig.regress r21bugs.regress radff.regress radix.regress \ realclos.regress reclos.regress reclos2.regress regset.regress \ - repa6.regress \ + repa6.regress risch.regress \ robidoux.regress \ roman.regress roots.regress ruleset.regress rules.regress \ rubey.regress sae.regress spline.regress \ @@ -752,6 +752,7 @@ FILES= ${OUT}/ackermann.input \ ${OUT}/r21bugs.input \ ${OUT}/radff.input ${OUT}/radix.input ${OUT}/realclos.input \ ${OUT}/reclos.input ${OUT}/reclos2.input ${OUT}/regset.input \ + ${OUT}/risch.input \ ${OUT}/robidoux.input ${OUT}/roman.input ${OUT}/roots.input \ ${OUT}/ruleset.input ${OUT}/rules.input ${OUT}/rubey.input \ ${OUT}/sae.input \ @@ -1175,7 +1176,7 @@ DOCFILES= \ ${DOC}/richtrig700-799.input.dvi \ ${DOC}/richtrig800-899.input.dvi \ ${DOC}/richtrig900-920.input.dvi \ - ${DOC}/rk4draw.input.dvi \ + ${DOC}/rk4draw.input.dvi ${DOC}/risch.input.dvi \ ${DOC}/robidoux.input.dvi ${DOC}/roman.input.dvi \ ${DOC}/romnum.as.dvi ${DOC}/roots.input.dvi \ ${DOC}/ruleset.input.dvi ${DOC}/rules.input.dvi \ diff --git a/src/input/risch.input.pamphlet b/src/input/risch.input.pamphlet new file mode 100644 index 0000000..baa49a7 --- /dev/null +++ b/src/input/risch.input.pamphlet @@ -0,0 +1,286 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input risch.input} +\author{Timothy Daly} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{The Risch Algorithm} +The Risch algorithm (see Ris68, Ris69a, Ris69b), +named after Robert H. Risch, is an algorithm for +the calculus operation of indefinite integration (i.e., finding +antiderivatives). The algorithm transforms the problem of integration +into a problem in algebra. It is based on the form of the function +being integrated and on methods for integrating rational functions, +radicals, logarithms, and exponential functions. Risch, who developed +the algorithm in 1968, called it a decision procedure, because it is a +method for deciding if a function has an elementary function as an +indefinite integral, and also, if it does, determining it. The Risch +algorithm is described (in more than 100 pages) in ``Algorithms for +Computer Algebra'' by Keith O. Geddes, Stephen R. Czapor and George +Labahn (see GCL92). The Risch-Norman algorithm, a faster but less powerful +technique, was developed in 1976. + +The Risch algorithm is used to integrate elementary functions. These +are functions obtained by composing exponentials, logarithms, +radicals, trigonometry, and the four arithmetic operations ($+$, $-$, +$\times$, $\div$). Laplace solved this problem for the case of +rational functions, as he showed that the indefinite integral of a +rational function is a rational function and a finite number of +constant multiples of logarithms of rational functions. The algorithm +suggested by Laplace is usually described in calculus textbooks; as a +computer program it was finally implemented in the 1960s. + +Liouville (see Lio1833a) formulated the problem solved by the Risch +algorithm. Liouville proved by analytical means that if there is an +elementary solution $g$ to the equation $g^{'} = f$ then for constants +$\alpha_i$ and elementary functions $u_i$ and $v$ the solution of the form +\[g = v + \sum_{i> Error detected within library code: +--R integrate: implementation incomplete (constant residues) +--R +--R Continuing to read the file... +--R +--E 8 + +)spool +)lisp (bye) + +\end{chunk} + +In fact, the antiderivative of this function has a fairly short form +\[F(x)=2(\sqrt{x+\ln x} + \ln(x+\sqrt{x+\ln x}))+C\] + +\subsection{Decidability} + +The Risch Algorithm applied to general functions is not an algorithm +but a semi-algorithm because it needs as a part to check if some +expression is equivalent to zero, (constant problem), in particular in +the constant field. For a common meaning of an elementary function it +is not known whether such an algorithm exists or not (current computer +algebra systems use heuristics), moreover, if one adds the absolute +value function to the list of elementary functions, it is known that +no such algorithm exists, see Richardson's theorem (see RF94) + +Note that, technically, this issue also arises in the polynomial +division algorithm, it will not work correctly if it cannot correctly +determine if the coefficients are identically $0$. Therefore, the +Risch Algorithm requires that the constant field be computable, i.e., +that for elements not dependent on $x$, that the problem of +zero-equivalence is decidable. + +\subsection{License} +This information was originally published under Wikipedia under the +CC-BY-SA license ( +\verb|http://creativecommons.org/licenses/by-sa/3.0/|) on the page\\ +(\verb|http://en.wikipedia.org/w/index.php?title=Risch_algorithm#Implementation|) + +\eject +\begin{thebibliography}{99} +\bibitem{1} Wikipedia web page\\ +\verb|http://en.wikipedia.org/w/index.php?title=Risch_algorithm#Implementation| +\bibitem{2} Creative Common License\\ +\verb|http://creativecommons.org/licenses/by-sa/3.0| +\end{thebibliography} +\end{document}