aboutsummaryrefslogtreecommitdiff
path: root/src/input/dpol.input.pamphlet
blob: 78ae0ca95328c2156cf3c49aac4e78354192e795 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
\documentclass{article}
\usepackage{axiom}
\begin{document}
\title{\$SPAD/src/input dpol.input}
\author{The Axiom Team}
\maketitle
\begin{abstract}
\end{abstract}
\eject
\tableofcontents
\eject
\section{License}
<<license>>=
--Copyright The Numerical Algorithms Group Limited 1991.
@
<<*>>=
<<license>>

)clear all
odvar:=ODVAR Symbol
-- here are the first 5 derivatives of w
-- the i-th derivative of w is printed as w subscript 5
[makeVariable('w,i)$odvar for i in 5..0 by -1]
-- these are now algebraic indeterminates, ranked in an orderly way
-- in increasing order:
sort %
-- we now make a general differential polynomial ring
-- instead of ODVAR, one can also use SDVAR for sequential ordering
dpol:=DSMP (FRAC INT, Symbol, odvar)
-- 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
w := makeVariable('w)$dpol
-- create another one called z, which is higher in rank than w
-- since we are ordering by Symbol
z := makeVariable('z)$dpol
-- now define some differential polynomial
(f,b):dpol
f:=w.4::dpol - w.1 * w.1 * z.3
b:=(z.1::dpol)**3 * (z.2)**2 - w.2
-- compute the leading derivative appearing in b
lb:=leader b
-- the separant is the partial derivative of b with respect to its leader
sb:=separant b
-- 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
bprime:= differentiate b
-- find its leader
lbprime:= leader bprime
-- differentiate f partially with respect to lbprime
pbf:=differentiate (f, lbprime)
-- to obtain the partial remainder of f with respect to b
ftilde:=sb * f- pbf * bprime
-- 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
ib:=initial b
-- compute the leading coefficient of ftilde
-- as a polynomial in its leader
lcef:=leadingCoefficient univariate(ftilde, lb)
-- now to continue eliminating the high powers of lb appearing in ftilde:
-- to obtain the remainder of f modulo b and its derivatives
 
f0:=ib * ftilde - lcef * b * lb
@
\eject
\begin{thebibliography}{99}
\bibitem{1} nothing
\end{thebibliography}
\end{document}