aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/pages/polys.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/polys.ht
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/hyper/pages/polys.ht')
-rw-r--r--src/hyper/pages/polys.ht170
1 files changed, 170 insertions, 0 deletions
diff --git a/src/hyper/pages/polys.ht b/src/hyper/pages/polys.ht
new file mode 100644
index 00000000..5b22ed9e
--- /dev/null
+++ b/src/hyper/pages/polys.ht
@@ -0,0 +1,170 @@
+% Copyright The Numerical Algorithms Group Limited 1991.
+% Certain derivative-work portions Copyright (C) 1988 by Leslie Lamport.
+% All rights reserved
+
+% Polynomial page
+% @(#)poly.ht 1.1 90/07/12 18:32:24
+% added PolynomialNumberFieldFactorizationPage: 90/12/05 J. Grabmeier
+
+\begin{page}{PolynomialPage}{Polynomials}
+\beginscroll
+\beginmenu
+\menulink{Basic Functions}{PolynomialBasicPage} \tab{18}
+Create and manipulate polynomials.
+\menulink{Substitutions}{PolynomialSubstitutionPage} \tab{18}
+Evaluate polynomials.
+\menulink{Factorization}{ugProblemFactorPage} \tab{18}
+Factor in different contexts.
+\menulink{GCDs and Friends}{PolynomialGCDPage} \tab{18}
+Greatest common divisors etc..
+\menulink{Roots}{PolynomialRootPage}\tab{18}
+Work with and solve for roots.
+\menulink{Specific Types}{PolynomialTypesPage}\tab{18}
+More specific information.
+\endmenu
+\endscroll
+\autobuttons
+\end{page}
+
+\begin{page}{PolynomialTypesPage}{The Specific Polynomial Types}
+\beginscroll
+\beginmenu
+\menulink{Polynomial}{PolynomialXmpPage} \newline
+The general type.
+\menulink{UnivariatePolynomial}{UnivariatePolynomialXmpPage} \newline
+One variable polynomials.
+\menulink{MultivariatePolynomial}{MultivariatePolynomialXmpPage} \newline
+Multiple variable polynomials, recursive structure.
+\menulink{DistributedMultivariatePolynomial}{DistributedMultivariatePolynomialXmpPage}
+\newline
+Multiple variable polynomials, non-recursive structure.
+\endmenu
+\endscroll
+\autobuttons
+\end{page}
+
+\begin{page}{PolynomialBasicPage}{Basic Operations On Polynomials}
+
+\beginscroll
+You create
+polynomials using the usual operations of \spadopFrom{+}{Polynomial},
+\spadopFrom{-}{Polynomial}, \spadopFrom{*}{Polynomial}
+(for multiplication), and \spadopFrom{**}{Polynomial} (for exponentiation).
+Here are two examples: \newline
+\spadpaste{p := a*x**2 + b*x*y + c*y**2 \bound{p}}
+\spadpaste{q := 13*x**2 + 3*z \bound{q}}
+These operations can also be used to combine polynomials.
+Try the following:
+\spadpaste{p + q \free{p q}}
+\spadpaste{p - 3*q \free{p q}}
+\spadpaste{p**2 + p*q \free{p q}}
+\spadpaste{r := (p + q)**2 \bound{r} \free{p q}}
+As you can see from the above examples, the variables are ordered
+by defaults \spad{z > y > x > c > b > a},
+that is, \spad{z} is the main variable, then
+\spad{y} and so on in reverse alphabetical order.
+You can redefine this
+ordering (for display purposes only) with the \spadfun{setVariableOrder}
+command.
+For example, the following
+makes \spad{a} the main variable, then \spad{b}, and so on:
+\spadpaste{setVariableOrder [a,b,c,x,y,z] \bound{vord}}
+Now compare the way polynomials are displayed:
+\spadpaste{p \free{p vord}}
+\spadpaste{q \free{q vord}}
+\spadpaste{r \free{r vord}}
+To return to the system's default ordering,
+use \spadfun{resetVariableOrder}.
+\spadpaste{resetVariableOrder() \bound{rvord}}
+\spadpaste{p \free{p rvord}}
+Polynomial coefficients can be pulled out
+using the function \spadfun{coefficient}. \newline
+For example:
+\spadpaste{coefficient(q,x,2) \free{q}}
+will give you the coefficient of \spad{x**2} in the polynomial \spad{q}.
+\newline
+Try these commands:
+\spadpaste{coefficient(r,x,3) \free{r}}
+\spadpaste{c := coefficient(r,z,1) \free{r} \bound{c}}
+\spadpaste{coefficient(c,x,2) \free{c}}
+Coefficients of monomials can be obtained as follows:
+\spadpaste{coefficient(q**2, [x,z], [2,1]) \free{q}}
+This will return the coefficient of x**2 * z in the polynomial q**2.
+Also,
+\spadpaste{coefficient(r, [x,y], [2,2]) \free{r}}
+will return the coefficient of \spad{x**2 * y**2}
+in the polynomial \spad{r(x,y)}.
+\endscroll
+\autobuttons
+\end{page}
+
+\begin{page}{PolynomialSubstitutionPage}{Polynomial Evaluation and Substitution}
+\beginscroll
+The function \spadfun{eval} is used to substitute values into polynomials.
+Here's an example of how to use it:
+\spadpaste{p := x**2 + y**2 \bound{p}}
+\spadpaste{eval(p,x=5) \free{p}}
+\newline
+This example would give you the value of the polynomial \spad{p} at 5.
+You can also substitute into polynomials with
+several variables. First, specify the polynomial, then give
+a list of bindings of the form \spad{variable = value}. For example:
+\spadpaste{eval(p,[x = a + b,y = c + d]) \free{p}}
+Here \spad{x} was replaced by \spad{a + b},
+and \spad{y} was replaced by \spad{c + d}.
+Here's another example:
+\spadpaste{q := x**3 + 5*x - y**4 \bound{q}}
+\spadpaste{eval(q,[x=y,y=x]) \free{q}}
+Substitution is done ``in parallel.''
+That is, \Language{} takes
+\spad{q(x,y)} and returns \spad{q(y,x)}.
+\newline
+You can also substitute numerical values for some or all of the
+variables:
+\spadpaste{px := eval(p, y = sin(2.0)) \bound{px} \free{p}}
+\spadpaste{eval(px, x = cos(2.0)) \free{px}}
+\endscroll
+\autobuttons
+\end{page}
+
+\begin{page}{PolynomialGCDPage}{Greatest Common Divisors, Resultants, and Discriminants}
+\beginscroll
+You can compute the greatest common divisor of two polynomials using the
+function \spadfun{gcd}.
+Here's an example:
+\spadpaste{p := 3*x**8 + 2*x**7 + 6*x**2 + 7*x + 2 \bound{p}}
+\spadpaste{q := 2*x**13 + 9*x**7 + 2*x**6 + 10*x + 5 \bound{q}}
+\spadpaste{gcd(p,q) \free{p q}}
+You could
+also see that \spad{p} and \spad{q} have a factor in common by using the
+function \spadfun{resultant}:
+\spadpaste{resultant(p,q,x) \free{p q}}
+The resultant of two polynomials vanishes precisely when they have a
+factor in common.
+(In the example above
+we specified the variable with
+which we wanted to compute the resultant because the
+polynomials could have involved variables other than x.)
+\endscroll
+\autobuttons
+\end{page}
+
+\begin{page}{PolynomialRootPage}{Roots of Polynomials}
+\beginscroll
+\beginmenu
+\menulink{Using a Single Root of a Polynomial}{ugxProblemSymRootOnePage}
+\newline
+Working with a single root of a polynomial.
+\menulink{Using All Roots of a Polynomial}{ugxProblemSymRootAllPage}
+\newline
+Working with all the roots of a polynomial.
+\menulink{Solution of a Single Polynomial Equation}{ugxProblemOnePolPage}
+\newline
+Finding the roots of one polynomial.
+\menulink{Solution of Systems of Polynomial Equations}{ugxProblemPolSysPage}
+\newline
+Finding the roots of a system of polynomials.
+\endmenu
+\endscroll
+\autobuttons
+\end{page}