aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/pages/exsum.ht
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/hyper/pages/exsum.ht
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/hyper/pages/exsum.ht')
-rw-r--r--src/hyper/pages/exsum.ht120
1 files changed, 120 insertions, 0 deletions
diff --git a/src/hyper/pages/exsum.ht b/src/hyper/pages/exsum.ht
new file mode 100644
index 00000000..f5e7f8b1
--- /dev/null
+++ b/src/hyper/pages/exsum.ht
@@ -0,0 +1,120 @@
+% Copyright The Numerical Algorithms Group Limited 1991.
+% Certain derivative-work portions Copyright (C) 1988 by Leslie Lamport.
+% All rights reserved
+
+% Title: Summations
+
+% Address comments and questions to the
+% Computer Algebra Group, Mathematical Sciences Department
+% IBM Thomas J. Watson Research Center, Box 218
+% Yorktown Heights, New York 10598 USA
+
+% Author: Clifton J. Williamson
+% Date created: 2 November 1989
+% Date last updated: 2 November 1989
+
+\begin{page}{ExSumListEntriesI}{Summing the Entries of a List I}
+\beginscroll
+In \Language{}, you can create lists of consecutive integers by giving the
+first and last entries of the list.
+Here's how you create a list of the integers between {\em 1} and {\em 15}:
+\spadpaste{[i for i in 1..15]}
+To sum the entries of a list, simply put {\em +/} in front of the list.
+For example, the following command will sum the integers from 1 to 15:
+\spadpaste{reduce(+,[i for i in 1..15])}
+\endscroll
+\autobuttons\end{page}
+
+\begin{page}{ExSumListEntriesII}{Summing the Entries of a List II}
+\beginscroll
+In \Language{}, you can also create lists whose elements are some expression
+{\em f(n)} as the parameter n ranges between two integers.
+For example, the following command will create a list of the squares of
+the integers between {\em 5} and {\em 20}:
+\spadpaste{[n**2 for n in 5..20]}
+You can also compute the sum of the entries of this list:
+\spadpaste{reduce(+,[n**2 for n in 5..20])}
+\endscroll
+\autobuttons\end{page}
+
+\begin{page}{ExSumApproximateE}{Approximating e}
+\beginscroll
+You can obtain a numerical approximation of the number {\em e} by summing the
+entries of the following list:
+\spadpaste{reduce(+,[1.0/factorial(n) for n in 0..20])}
+\endscroll
+\autobuttons\end{page}
+
+\begin{page}{ExSumClosedForm}{Closed Form Summations}
+\beginscroll
+In a previous example, we found the sum of the squares of the integers
+between {\em 5} and {\em 20}.
+We can also use \Language{} to find a formula for the sum of the squares of
+the integers between {\em a} and {\em b}, where {\em a} and {\em b}
+are integers which will remain
+unspecified:
+\spadpaste{s := sum(k**2,k = a..b) \bound{s}}
+{\em sum(k**2,k = a..b)} returns the sum of {\em k**2} as the index {\em k}
+runs from {\em a} to {\em b}.
+Let's check our answer in one particular case by substituting specific values
+for {\em a} and {\em b} in our formula:
+% Warning: syntax for polynomial evaluation will probably change.
+\spadpaste{eval(s,[a,b],[1,25]) \free{s}}
+\spadpaste{reduce(+,[i**2 for i in 1..25])}
+\endscroll
+\autobuttons\end{page}
+
+\begin{page}{ExSumCubes}{Sums of Cubes}
+\beginscroll
+Here's a cute example.
+First compute the sum of the cubes from {\em 1} to {\em n}:
+\spadpaste{sum(k**3,k = 1..n)}
+Then compute the square of the sum of the integers from {\em 1} to {\em n}:
+\spadpaste{sum(k,k = 1..n) ** 2}
+The answers are the same.
+\endscroll
+\autobuttons\end{page}
+
+\begin{page}{ExSumPolynomial}{Sums of Polynomials}
+\beginscroll
+\Language{} can compute {\em sum(f,k = a..b)}
+when {\em f} is any polynomial in {\em k}, even
+one with parameters.
+\spadpaste{sum(3*k**2/(c**2 + 1) + 12*k/d,k = (3*a)..(4*b))}
+\endscroll
+\autobuttons\end{page}
+
+%\begin{page}{ExSumRationalFunction}{Sums of Rational Functions}
+%\beginscroll
+%\Language{} can compute {\em sum(f,k = a..b)} for some rational functions (quotients
+%of polynomials) in {\em k}.
+%\spadpaste{sum(1/(k * (k + 2)),k = 1..n)}
+%However, the method used (Gosper's method) does not guarantee an answer
+%in every case.
+%Here's an example of a sum that the method cannot compute:
+%\spadpaste{sum(1/(k**2 + 1),k = 1..n)}
+%\endscroll
+%\autobuttons\end{page}
+
+\begin{page}{ExSumGeneralFunction}{Sums of General Functions}
+\beginscroll
+Gosper's method can also be used to compute {\em sum(f,k = a..b)}
+for some functions
+f which are not rational functions in {\em k}.
+Here's an example:
+\spadpaste{sum(k * x**k,k = 1..n)}
+\endscroll
+\autobuttons\end{page}
+
+% provide a package for infinite sums
+\begin{page}{ExSumInfinite}{Infinite Sums}
+\beginscroll
+In a few cases, we can compute infinite sums by taking limits of finite
+sums.
+For instance, you can compute the sum of {\em 1/(k * (k + 2))} as {\em k}
+ranges from
+{\em 1} to {\em infinity}.
+Use {\em \%plusInfinity} to denote `plus infinity'.
+\spadpaste{limit( sum(1/(k * (k + 2)),k = 1..n) ,n = \%plusInfinity)}
+\endscroll
+\autobuttons\end{page}