aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/pages/LODO1.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/LODO1.ht
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/hyper/pages/LODO1.ht')
-rw-r--r--src/hyper/pages/LODO1.ht184
1 files changed, 184 insertions, 0 deletions
diff --git a/src/hyper/pages/LODO1.ht b/src/hyper/pages/LODO1.ht
new file mode 100644
index 00000000..527ee37f
--- /dev/null
+++ b/src/hyper/pages/LODO1.ht
@@ -0,0 +1,184 @@
+% Copyright The Numerical Algorithms Group Limited 1992-94. All rights reserved.
+% !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk.
+\newcommand{\LinearOrdinaryDifferentialOperatorOneXmpTitle}{LinearOrdinaryDifferentialOperator1}
+\newcommand{\LinearOrdinaryDifferentialOperatorOneXmpNumber}{9.45}
+%
+% =====================================================================
+\begin{page}{LinearOrdinaryDifferentialOperatorOneXmpPage}{9.45 LinearOrdinaryDifferentialOperator1}
+% =====================================================================
+\beginscroll
+
+\spadtype{LinearOrdinaryDifferentialOperator1(A)} is the domain of linear
+%-% \HDindex{operator!linear ordinary differential}{LinearOrdinaryDifferentialOperatorOneXmpPage}{9.45}{LinearOrdinaryDifferentialOperator1}
+ordinary differential operators with coefficients in the differential ring
+\spad{A}.
+%This includes the cases of operators which are polynomials in \spad{D}
+%acting upon scalar or vector expressions of a single variable.
+%The coefficients of the operator polynomials can be integers, rational
+%functions, matrices or elements of other domains.
+\showBlurb{LinearOrdinaryDifferentialOperator1}
+
+\beginmenu
+ \menudownlink{{9.45.1. Differential Operators with Rational Function Coefficients}}{ugxLinearOrdinaryDifferentialOperatorOneRatPage}
+\endmenu
+\endscroll
+\autobuttons
+\end{page}
+%
+%
+\newcommand{\ugxLinearOrdinaryDifferentialOperatorOneRatTitle}{Differential Operators with Rational Function Coefficients}
+\newcommand{\ugxLinearOrdinaryDifferentialOperatorOneRatNumber}{9.45.1.}
+%
+% =====================================================================
+\begin{page}{ugxLinearOrdinaryDifferentialOperatorOneRatPage}{9.45.1. Differential Operators with Rational Function Coefficients}
+% =====================================================================
+\beginscroll
+
+This example shows differential operators with rational function
+coefficients. In this case operator multiplication is non-commutative and,
+since the coefficients form a field, an operator division algorithm exists.
+
+\labelSpace{2pc}
+\xtc{
+We begin by defining \spad{RFZ} to be the rational functions in
+\spad{x} with integer coefficients and \spad{Dx} to be the differential
+operator for \spad{d/dx}.
+}{
+\spadpaste{RFZ := Fraction UnivariatePolynomial('x, Integer) \bound{RFZ0}}
+}
+\xtc{
+}{
+\spadpaste{x : RFZ := 'x \free{RFZ0}\bound{RFZ}}
+}
+\xtc{
+}{
+\spadpaste{Dx : LODO1 RFZ := D()\bound{Dx}\free{RFZ}}
+}
+\xtc{
+Operators are created using the usual arithmetic operations.
+}{
+\spadpaste{b : LODO1 RFZ := 3*x**2*Dx**2 + 2*Dx + 1/x \free{Dx}\bound{b}}
+}
+\xtc{
+}{
+\spadpaste{a : LODO1 RFZ := b*(5*x*Dx + 7) \free{b Dx}\bound{a}}
+}
+\xtc{
+Operator multiplication corresponds to functional composition.
+}{
+\spadpaste{p := x**2 + 1/x**2 \bound{p}\free{RFZ}}
+}
+\xtc{
+Since operator coefficients depend on \spad{x}, the multiplication is
+not commutative.
+}{
+\spadpaste{(a*b - b*a) p \free{a b p}}
+}
+
+When the coefficients of operator polynomials come from a field, as in this
+case, it is possible to define operator division.
+Division on the left and division on the right yield different results when
+the multiplication is non-commutative.
+
+The results of \spadfunFrom{leftDivide}{LinearOrdinaryDifferentialOperator1} and
+\spadfunFrom{rightDivide}{LinearOrdinaryDifferentialOperator1} are
+quotient-remainder pairs satisfying: \newline
+%
+\spad{leftDivide(a,b) = [q, r]} such that \spad{a = b*q + r} \newline
+\spad{rightDivide(a,b) = [q, r]} such that \spad{a = q*b + r} \newline
+%
+\xtc{
+In both cases, the \spadfunFrom{degree}{LinearOrdinaryDifferentialOperator1}
+of the remainder, \spad{r}, is less than
+the degree of \spad{b}.
+}{
+\spadpaste{ld := leftDivide(a,b) \bound{ld}\free{a b}}
+}
+\xtc{
+}{
+\spadpaste{a = b * ld.quotient + ld.remainder \free{a b ld}}
+}
+\xtc{
+The operations of left and right division
+are so-called because the quotient is obtained by dividing
+\spad{a} on that side by \spad{b}.
+}{
+\spadpaste{rd := rightDivide(a,b) \bound{rd}\free{a b}}
+}
+\xtc{
+}{
+\spadpaste{a = rd.quotient * b + rd.remainder \free{a b rd}}
+}
+
+\xtc{
+Operations \spadfunFrom{rightQuotient}{LinearOrdinaryDifferentialOperator1}
+and \spadfunFrom{rightRemainder}{LinearOrdinaryDifferentialOperator1}
+are available if only one of the quotient or remainder are of
+interest to you.
+This is the quotient from right division.
+}{
+\spadpaste{rightQuotient(a,b) \free{a b}}
+}
+\xtc{
+This is the remainder from right division.
+The corresponding ``left'' functions
+\spadfunFrom{leftQuotient}{LinearOrdinaryDifferentialOperator1} and
+\spadfunFrom{leftRemainder}{LinearOrdinaryDifferentialOperator1}
+are also available.
+}{
+\spadpaste{rightRemainder(a,b) \free{a b}}
+}
+
+\xtc{
+For exact division, the operations
+\spadfunFrom{leftExactQuotient}{LinearOrdinaryDifferentialOperator1} and
+\spadfunFrom{rightExactQuotient}{LinearOrdinaryDifferentialOperator1} are supplied.
+These return the quotient but only if the remainder is zero.
+The call \spad{rightExactQuotient(a,b)} would yield an error.
+}{
+\spadpaste{leftExactQuotient(a,b) \free{a b}}
+}
+
+\xtc{
+The division operations allow the computation of left and right greatest
+common divisors (\spadfunFrom{leftGcd}{LinearOrdinaryDifferentialOperator1} and
+\spadfunFrom{rightGcd}{LinearOrdinaryDifferentialOperator1}) via remainder
+sequences, and consequently the computation of left and right least common
+multiples (\spadfunFrom{rightLcm}{LinearOrdinaryDifferentialOperator1} and
+\spadfunFrom{leftLcm}{LinearOrdinaryDifferentialOperator1}).
+}{
+\spadpaste{e := leftGcd(a,b) \bound{e}\free{a b}}
+}
+\xtc{
+Note that a greatest common divisor doesn't necessarily divide \spad{a} and
+%-% \HDindex{greatest common divisor}{ugxLinearOrdinaryDifferentialOperatorOneRatPage}{9.45.1.}{Differential Operators with Rational Function Coefficients}
+\spad{b} on both sides.
+Here the left greatest common divisor does not divide \spad{a} on the right.
+}{
+\spadpaste{leftRemainder(a, e) \free{a e}}
+}
+\xtc{
+}{
+\spadpaste{rightRemainder(a, e) \free{a e}}
+}
+
+\xtc{
+Similarly, a least common multiple
+%-% \HDindex{least common multiple}{ugxLinearOrdinaryDifferentialOperatorOneRatPage}{9.45.1.}{Differential Operators with Rational Function Coefficients}
+is not necessarily divisible from both sides.
+}{
+\spadpaste{f := rightLcm(a,b) \bound{f}\free{a b}}
+}
+\xtc{
+}{
+\spadpaste{rightRemainder(f, b) \free{f b}}
+}
+\xtc{
+}{
+\spadpaste{leftRemainder(f, b) \free{f b}}
+}
+
+\endscroll
+\autobuttons
+\end{page}
+%