From 578c4bfb1d233ec14f9bb75490d56fefa14e419a Mon Sep 17 00:00:00 2001
From: Tim Daly
Date: Wed, 17 May 2017 18:01:47 0400
Subject: [PATCH] bookvol10.4 document Sylvester matrix in BezoutMatrix help
file
Goal: Axiom Literate Programming

books/bookvol10.4.pamphlet  48 ++++++++++++++++++++++++++++++
changelog  2 +
patch  60 +
src/axiomwebsite/patches.html  2 +
4 files changed, 51 insertions(+), 61 deletions()
diff git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index d960bdb..ba99820 100644
 a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ 10332,6 +10332,42 @@ BezoutMatrix examples
BezoutMatrix contains functions for computing resultants and
discriminants using Bezout matrices.
+A Syvester matrix can be used to compute the resultant of two
+polynomials. Given
+
+ p(x) = a_m * x^m + ... a_0
+ q(x) = b_n * x^n + ... b_0
+
+The Sylvester matrix is
+
+ + +
+  a_m a_(m1) ... a_0 0 0 0 0 
+  0 a_m a_(m1) ... a_0 0 0 0 
+  . . . . . . . . 
+  0 0 0 0 a_m a_(m1) ... a_0 
+  b_n b_(n1) ... b_0 0 0 0 0 
+  0 b_n b_(n1) ... b_0 0 0 0 
+  . . . . . . . . 
+  0 0 0 0 b_n b_(n1) ... b_0 
+ + +
+
+where there are n rows of the a_i and m rows of the b_i
+
+The resultant of p and q is the determinant of the Sylvester matrix.
+
+There is a strong connection between Sylvester's matrix and greatest
+common divisors. In fact, the operation of Guassian elimination in
+Sylvester's matrix is equivalent to the calculations one normally
+performs when calculating a greatest common divisor of two polynomials
+by repeated subtraction.
+
+The resultant is zero if and only if p and q have a nonconstant common
+divisor.
+
+Sylvester's matrix is not normally the best way of calculating resultants.
+Collins presents a modular algorithm for calculating resultants over the
+integers or over polynomial domains.
+
See Also:
o )show BezoutMatrix
@@ 10347,13 +10383,17 @@ o )show BezoutMatrix
\cross{BEZOUT}{sylvesterMatrix}
\end{tabular}
+See Davenport\cite{Dave85a}, Knuth\cite{Knut71} p619 problem 12,
+Collins\cite{Coll71}
\begin{chunk}{package BEZOUT BezoutMatrix}
)abbrev package BEZOUT BezoutMatrix
++ Author: Clifton J. Williamson
++ Date Created: 2 August 1988
++ Date Last Updated: 3 November 1993
++ Reference: Knuth, The Art of Computer Programming, 2nd edition,
++ Vol. 2, p. 619, problem 12.
+++ Reference:
+++ Dave85a Computer Algebra for Cylindrical Algebraic Decomposition
+++ Knut71 The Art of Computer Programming
+++ Coll71 The Calculation of Multivariate Polynomial Resultants
++ Description:
++ \spadtype{BezoutMatrix} contains functions for computing resultants and
++ discriminants using Bezout matrices.
@@ 10391,6 +10431,7 @@ BezoutMatrix(R,UP,M,Row,Col) : SIG == CODE where
CODE ==> add
\end{chunk}
+
The Sylvester matrix is used to compute the {\bf resultant} of two
polynomials. The Sylvester matrix is formed from the coefficients of
the two polynomials. Given a polynomial with degree $m$ and another of
@@ 10533,6 +10574,9 @@ In symbolic form the resultant can show the multiplicity of roots.
(* package BEZOUT *)
(*
+Note: For a proof see Davenport\cite{Dave85a} page 5 or
+Collins\cite{Coll71} page 516
+
sylvesterMatrix : (UP,UP) > M
sylvesterMatrix(p,q) ==
n1 := degree p; n2 := degree q; n := n1 + n2
diff git a/changelog b/changelog
index 31cab68..e3a7411 100644
 a/changelog
+++ b/changelog
@@ 1,3 +1,5 @@
+20170517 tpd src/axiomwebsite/patches.html 20170517.01.tpd.patch
+20170517 tpd bookvol10.4 document Sylvester matrix in BezoutMatrix help file
20170516 tpd src/axiomwebsite/patches.html 20170516.01.tpd.patch
20170516 tpd bookvolbib Davenport CAD documentation
20170514 tpd src/axiomwebsite/patches.html 20170514.01.tpd.patch
diff git a/patch b/patch
index 279a881..01ca579 100644
 a/patch
+++ b/patch
@@ 1,62 +1,4 @@
bookvolbib Davenport CAD documentation
+bookvol10.4 document Sylvester matrix in BezoutMatrix help file
Goal: Axiom Literate Programming
\index{Davenport, J.H.}
\begin{chunk}{axiom.bib}
@techreport{Dave85a,
 author = "Davenport, J.H.",
 title = "Computer Algebra for Cylindrical Algebraic Decomposition",
 institution = "NADA Kth Stockholm / Bath Ccomputer Science",
 link = "\url{http://staff.bath.ac.uk/masjhd/TRITA.pdf}",
 type = "technical report",
 number = "8810",
 year = "1985",
 abstract =
 "This report describes techniques for resolving systems of polynomial
 equations and inequalities. The general technique is {\sl cylindrical
 algebraic decomposition}, which decomposes space into a number of
 regions, on each of which the equations and inequalities have the
 same sign. Most of the report is spent describing the algebraic and
 algorithmic prerequisites (resultants, algebraic numbers, Sturm
 sequences, etc.), and then describing the method, first in two
 dimensions and then in an artitrary number of dimensions.",
 paper = "Dave85a.pdf"
}

\end{chunk}

\index{Collins, George E.}
\begin{chunk}{axiom.bib}
@article{Coll71,
 author = "Collins, George E.",
 title = "The Calculation of Multivariate Polynomial Resultants",
 volume = "18",
 number = "4",
 year = "1971",
 pages = "515532",
 abstract =
 "An efficient algorithm is presented for the exact calculation of
 resultants of multivariate polynomials with integer coefficients.
 The algorithm applies modular homomorphisms and the Chinese remainder
 theorem, evaluation homomorphisms and interpolation, in reducing
 the problem to resultant calculation for univariate polynomials
 over GF(p), whereupon a polynomial remainder sequence algorithm is used.

 The computing time of the algorithm is analyzed theoretically as a
 function of the degrees and coefficient sizes of its inputs. As a very
 special case, it is shown that when all degrees are equal and the
 coefficient size is fixed, its computing time is approximately
 proportional to $\lambda^{2r+1}$, where $\lambda$ is the common
 degree and $r$ is the number of variables.

 Empirically observed computing times of the algorithm are tabulated
 for a large number of examples, and other algorithms are compared.
 Potential application of the algorithm to the solution of systems of
 polynomial equations is discussed.",
 paper = "Coll71.pdf"
}

\end{chunk}


diff git a/src/axiomwebsite/patches.html b/src/axiomwebsite/patches.html
index a06e39e..e6a80cf 100644
 a/src/axiomwebsite/patches.html
+++ b/src/axiomwebsite/patches.html
@@ 5724,6 +5724,8 @@ gcl2.6.13pre move to a new GCL version
bookvol5 remove wildcard ? from help filenames
20170516.01.tpd.patch
bookvolbib Davenport CAD documentation
+20170517.01.tpd.patch
+bookvol10.4 document Sylvester matrix in BezoutMatrix help file

1.7.5.4