diff options
author | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
commit | ab8cc85adde879fb963c94d15675783f2cf4b183 (patch) | |
tree | c202482327f474583b750b2c45dedfc4e4312b1d /src/hyper/pages/polys.ht | |
download | open-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz |
Initial population.
Diffstat (limited to 'src/hyper/pages/polys.ht')
-rw-r--r-- | src/hyper/pages/polys.ht | 170 |
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} |