From ab8cc85adde879fb963c94d15675783f2cf4b183 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 14 Aug 2007 05:14:52 +0000 Subject: Initial population. --- src/hyper/pages/LODO1.ht | 184 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 src/hyper/pages/LODO1.ht (limited to 'src/hyper/pages/LODO1.ht') 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} +% -- cgit v1.2.3