aboutsummaryrefslogtreecommitdiff
path: root/src/input/skew.input.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/skew.input.pamphlet')
-rw-r--r--src/input/skew.input.pamphlet113
1 files changed, 113 insertions, 0 deletions
diff --git a/src/input/skew.input.pamphlet b/src/input/skew.input.pamphlet
new file mode 100644
index 00000000..4c86808f
--- /dev/null
+++ b/src/input/skew.input.pamphlet
@@ -0,0 +1,113 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/input skew.input}
+\author{The Axiom Team}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{License}
+<<license>>=
+--Copyright The Numerical Algorithms Group Limited 1994.
+@
+<<*>>=
+<<license>>
+-- make sure that LALG, EAB, ANTISYM are loaded
+--
+)cl all
+
+-- We will look at the deRham complex of Euclidean 3-space and use
+-- coordinates (x,y,z).
+lv:List Symbol := [x,y,z]
+
+-- Next is our ring of functions. We can have functions of any
+-- number of variables, but since we've chosen to work with ordinary
+-- Euclidean 3-space, an expression like f(x,t,r,y,u,z) will be treated
+-- as a parameterized function of (x,y,z) and will be considered to be
+-- constant in the variables t,r,u. We choose expressions with integer
+-- coefficients in this example.
+macro coefRing == Integer
+R := Expression coefRing
+
+-- The declaration for the deRham complex takes arguments a ring coefRing
+-- and a list of variables (lv is of type List Symbol).
+der := DERHAM(coefRing,lv)
+
+-- here are some functions chosen at random.
+f:R:=x**2*y*z-5*x**3*y**2*z**5
+g:R:=z**2*y*cos(z)-7*sin(x**3*y**2)*z**2
+h:R:=x*y*z-2*x**3*y*z**2
+
+-- The multiplicative basis elements for the exterior algebra over R are
+-- defined here.
+dx :der := generator(1)
+dy :der := generator(2)
+dz :der := generator(3)
+-- A nice alternate for the assignments above is
+[dx,dy,dz] := [generator(i)$der for i in 1..3]
+
+-- Now some 1-forms chosen at random.
+alpha:der := f*dx + g*dy + h*dz
+beta:der := cos(tan(x*y*z)+x*y*z)*dx + x*dy
+
+-- we know that exteriorDifferential^2 = 0, let's see that:
+exteriorDifferential alpha
+exteriorDifferential %
+
+-- exteriorDifferential is long, let's shorten that.
+macro exD == exteriorDifferential
+
+-- we know that exD is a (graded) derivation, let's see that:
+gamma := alpha * beta
+
+delta := exD gamma
+-- need the "-" because alpha is a 1-form and 1 is odd.
+epsilon := exD(alpha)*beta - alpha * exD(beta)
+
+delta - epsilon
+
+-- We define some operators.
+a:BOP := operator('a)
+b:BOP := operator('b)
+c:BOP := operator('c)
+
+-- Now some indeterminate one and two forms.
+alpha := a(x,y,z) * dx + b(x,y,z) * dy + c(x,y,z) * dz
+beta := a(x,y,z) * dx * dy + b(x,y,z) * dx * dz + c(x,y,z) * dy * dz
+
+-- the "gradient".
+totalDifferential(a(x,y,z))$der
+-- the "curl".
+exD alpha
+-- the "divergence".
+exD beta
+
+-- Note that the deRham complex is an algebra with 1.
+id:der := 1
+
+-- Now some parameterized functions (and fomrs -- left as an exercise).
+-- Note how the system keeps track of where your coordinate functions
+-- are located in expressions. By multiplying the expressions below by
+-- 1 in the deRham complex, we automatically convert them to 0-forms,
+-- i.e., functions on our space.
+g1:der := a([x,t,y,u,v,z,e]) * id
+h1:der := a([x,y,x,t,x,z,y,r,u,x]) * id
+
+exD g1
+exD h1
+
+-- Now note that we can find the coefficient of some basis term in
+-- any form (the basis in this case consists of the 8 forms
+-- 1, dx, dx, dz, dx dy, dx dz, dy dz, dx dy dz.
+coefficient(gamma, dx*dy)
+coefficient(gamma, id)
+coefficient(g1,id)
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}