$SPAD/src/input dpol.input

Timothy Daly December 3, 2016

Abstract

Contents

2

1 License

— license —

--Copyright The Numerical Algorithms Group Limited 1991.

———-

— * —

)set break resume
)spool dpol.output
)set message test on
)set message auto off
)clear all
--S 1 of 18
odvar:=ODVAR Symbol
--R
--R
--R   (1)  OrderlyDifferentialVariable(Symbol)
--R                                                                 Type: Domain
--E 1

———-

Here are the first 5 derivatives of w, the i-th derivative of w is printed as w_{5} — * —

--S 2 of 18
[makeVariable('w,i)$odvar for i in 5..0 by -1]
--R
--R
--R   (2)  [w ,w ,w ,w ,w ,w]
--R          5  4  3  2  1
--R                              Type: List(OrderlyDifferentialVariable(Symbol))
--E 2

———-

These are now algebraic indeterminates, ranked in an orderly way in increasing order: — * —

--S 3 of 18
sort %
--R
--R
--R   (3)  [w,w ,w ,w ,w ,w ]
--R            1  2  3  4  5
--R                              Type: List(OrderlyDifferentialVariable(Symbol))
--E 3

———-

We now make a general differential polynomial ring instead of ODVAR, one can also use SDVAR for sequential ordering

— * —

--S 4 of 18
dpol:=DSMP (FRAC INT, Symbol, odvar)
--R
--R
--R   (4)
--R  DifferentialSparseMultivariatePolynomial(Fraction(Integer),Symbol,OrderlyDiff
--R  erentialVariable(Symbol))
--R                                                                 Type: Domain
--E 4

———-

Instead of using makeVariable, it is easier to think of a differential variable w as a map, where w.n is n-th derivative of w as an algebraic indeterminate

— * —

--S 5 of 18
w := makeVariable('w)$dpol
--R
--R
--R   (5)  theMap(DPOLCAT-;makeVariable;AM;17!0,0)
--IType: (NonNegativeInteger -> DifferentialSparseMultivariatePolynomial(...
--E 5

———-

Create another one called z, which is higher in rank than w since we are ordering by Symbol — * —

--S 6 of 18
z := makeVariable('z)$dpol
--R
--R
--R   (6)  theMap(DPOLCAT-;makeVariable;AM;17!0,0)
--IType: (NonNegativeInteger -> DifferentialSparseMultivariatePolynomial(...
--E 6

———-

Now define some differential polynomial — * —

--S 7 of 18
(f,b):dpol
--R
--R                                                                   Type: Void

--E 7
--S 8 of 18
f:=w.4::dpol - w.1 * w.1 * z.3
--R
--R
--R               2
--R   (8)  w  - w  z
--R         4    1  3
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 8
--S 9 of 18
b:=(z.1::dpol)**3 * (z.2)**2 - w.2
--R
--R
--R          3  2
--R   (9)  z  z   - w
--R         1  2     2
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 9

———-

Compute the leading derivative appearing in b — * —

--S 10 of 18
lb:=leader b
--R
--R
--R   (10)  z
--R          2
--R                                    Type: OrderlyDifferentialVariable(Symbol)
--E 10

———-

The separant is the partial derivative of b with respect to its leader — * —

--S 11 of 18
sb:=separant b
--R
--R
--R            3
--R   (11)  2z  z
--R           1  2
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 11

———-

Of course you can differentiate these differential polynomials and try to reduce f modulo the differential ideal generated by b first eliminate z.3 using the derivative of b

— * —

--S 12 of 18
bprime:= differentiate b
--R
--R
--R            3               2  3
--R   (12)  2z  z z  - w  + 3z  z
--R           1  2 3    3     1  2
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 12

———-

Find its leader — * —

--S 13 of 18
lbprime:= leader bprime
--R
--R
--R   (13)  z
--R          3
--R                                    Type: OrderlyDifferentialVariable(Symbol)
--E 13

———-

Differentiate f partially with respect to lbprime — * —

--S 14 of 18
pbf:=differentiate (f, lbprime)
--R
--R
--R             2
--R   (14)  - w
--R            1
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 14

———-

To obtain the partial remainder of f with respect to b — * —

--S 15 of 18
ftilde:=sb * f- pbf * bprime

--R
--R
--R            3         2        2  2  3
--R   (15)  2z  z w  - w  w  + 3w  z  z
--R           1  2 4    1  3     1  1  2
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 15

———-

Note high powers of lb still appears in ftilde. The initial is the leading coefficient when b is written as a univariate polynomial in its leader

— * —

--S 16 of 18
ib:=initial b
--R
--R
--R           3
--R   (16)  z
--R          1
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 16

———-

Compute the leading coefficient of ftilde as a polynomial in its leader — * —

--S 17 of 18
lcef:=leadingCoefficient univariate(ftilde, lb)
--R
--R
--R            2  2
--R   (17)  3w  z
--R           1  1
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 17

———-

Now to continue eliminating the high powers of lb appearing in ftilde: to obtain the remainder of f modulo b and its derivatives

— * —

--S 18 of 18
f0:=ib * ftilde - lcef * b * lb
--R
--R
--R            6         2  3        2  2
--R   (18)  2z  z w  - w  z  w  + 3w  z  w z

--R           1  2 4    1  1  3     1  1  2 2
--IType: DifferentialSparseMultivariatePolynomial(Fraction Integer,...
--E 18
)spool
)lisp (bye)

———-

References^{[1] nothing}

9