dx
, dy
, and dz
in the stokes
package
Convenience objects dx
, dy
, and dz
are discussed here.
Spivak, in a memorable passage, states (p89):
Fields and forms
If \(f\colon\mathbb{R}^n\longrightarrow\mathbb{R}\) is differentiable, then \(Df(p)\in\Lambda^1(\mathbb{R}^n)\). By a minor modification we therefore obtain a \(1\)-form \(df\), defined by
\[df(p)(v_p)=Df(p)(v).\]
Let us consider in particular the \(1\)-forms \(d\pi^i\) 1 It is customary to let \(x^i\) denote the function \(\pi^i\) (on \(\mathbb{R}^3\) we often denote \(x^1\), \(x^2\), and \(x^3\) by \(x\), \(y\), and \(z\)) \(\ldots\) Since \(dx^i(p)(v_p)=d\pi^i(p)(v_p)=D\pi^i(p)(v)=v^i\), we see that \(dx^1(p),\ldots,dx^n(p)\) is just the dual basis to \((e_1)_p,\ldots, (e_n)_p\).
- Michael Spivak, 1969 (Calculus on Manifolds, Perseus books). Page 89
Spivak goes on to observe that every \(k\)-form \(\omega\) can be written \(\omega=\sum_{i_1 < \cdots < i_k}\omega_{i_1,\ldots i_k}dx^{i_1}\wedge\cdots\wedge dx^{i_k}\). If working in \(\mathbb{R}^3\), we have three elementary forms \(dx\), \(dy\), and \(dz\); in the package we have the pre-defined objects dx
, dy
, and dz
. These are convenient for reproducing textbook results. We start with some illustrations of the package print method.
## An alternating linear map from V^1 to R with V=R^1:
## + dx
This is somewhat opaque and difficult to understand. It is easier to start with a more complicated example: take \(dx\wedge dy -7dx\wedge dz + 3dy\wedge dz\):
## An alternating linear map from V^2 to R with V=R^3:
## -7 dx^dz +3 dy^dz + dx^dy
We see three rows for the three elementary components. Taking the row with coefficient \(-7\) [which would be \(-7dx\wedge dz\)], this maps \(\left(\mathbb{R}^3\right)^2\) to \(\mathbb{R}\) and we have
\[(-7dx\wedge dz)\left(\begin{pmatrix} u_1\\u_2\\u_3\end{pmatrix}, \begin{pmatrix}v_1\\v_2\\v_3\end{pmatrix}\right)= -7\det\begin{pmatrix}u_1&v_1\\u_3&v_3\end{pmatrix}\]
Armed with this familiar fact, we can interpret \(dx\) as a map from \(\left(\mathbb{R}^3\right)^1\) to \(\mathbb{R}\) with
\[dx\left(\begin{pmatrix} u_1\\u_2\\u_3\end{pmatrix} \right)= \det\begin{pmatrix}u_1\end{pmatrix}=u_1\]
or, in other words, \(dx\) picks out the first component of its vector (as the print method gives, albeit obscurely). This is easily shown in the package:
## [1] 113
We might want to verify that \(dx\wedge dy=-dy\wedge dx\):
## [1] TRUE
The print method is configurable and can display kforms in symbolic form. For working with dx dy dz
we may set option kform_symbolic_print
to dx
:
Then the results of calculations are more natural:
## An alternating linear map from V^1 to R with V=R^1:
## + dx
## An alternating linear map from V^2 to R with V=R^3:
## + dx^dy +56 dy^dz
However, this setting can be confusing if we work with \(dx^i,i>3\), for the print method runs out of alphabet:
## An alternating linear map from V^3 to R with V=R^7:
## +6 dy^dNA^dNA +5 dy^dNA^dNA -9 dNA^dNA^dNA +4 dx^dz^dNA +7 dx^dNA^dNA -3 dy^dz^dNA -8 dx^dNA^dNA +2 dx^dy^dNA + dx^dNA^dNA
Above, we see the use of NA
because there is no defined symbol.
Function hodge()
returns the Hodge dual:
## An alternating linear map from V^1 to R with V=R^3:
## +13 dx + dz
Note that calling hodge(dx)
can be confusing:
## [1] 1
This returns a scalar because dx
is interpreted as a one-form on one-dimensional space, which is a scalar form. One usually wants the result in three dimensions:
## An alternating linear map from V^2 to R with V=R^3:
## + dy^dz
It is possible to create these objects using package idiom:
## [1] TRUE
Following lines create dx.rda
, residing in the data/
directory of the package.
Spivak introduces the \(\pi^i\) notation on page 11: “if \(\pi\colon\mathbb{R}^n\longrightarrow\mathbb{R}^n\) is the identity function, \(\pi(x)=x\), then [its components are] \(\pi^i(x)=x^i\); the function \(\pi^i\) is called the \(i^\mathrm{th}\) projection function”↩