More generally, by Equation (\ref{eq:t_and_s}), it follows that: \[ \sigma_{-1}\left(\rho_t(B^d)\right) = \rho_{-t-1-d}(B^d). \label{eq:symmetry} \]
$B^{d+1}$ | $\frac{\partial B^{d+1}}{\partial x}$ |
---|
More generally, by Equation (\ref{eq:i_c_t_and_s}), it follows that: \[ \int_{-\infty}^x \rho_t\left(B^d\right)\,ds = \sum_{j=0}^\infty\rho_{t+j}(B^{d+1}). \label{eq:integrals} \]
In what follows, we will consider the case of an interval $[0,n]$, with $n\in{\mathbb N}$, over which we would like to define a function space, satisfying varyious boundary conditions.
We note that, by construction, if $F(x_1,\ldots,x_k)\in\hbox{Span}({\mathfrak b})$ then $\frac{\partial F}{\partial x_i}\in\hbox{Span}\left(\partial_i({\mathfrak b})\right)$.
Given a basis ${\mathfrak b}\in{\mathfrak B}_\Omega$, the $i$-th partial derivative operator can be expressed by the $|\partial_i({\mathfrak b})|\times|{\mathfrak b}|$ matrix ${\mathbf D}_i({\mathfrak b})$, with:
\[
\big({\mathbf D}_i({\mathfrak b})\big)_{\{\sigma_1,\ldots,\sigma_k\}\{\tau_1,\ldots,\tau_k\}} =
\left\{\begin{array}{cl}
\big({\mathbf D}({\mathfrak b}_i)\big)_{\sigma_i\tau_i} & \hbox{if }\sigma_j=\tau_j,\,\forall j\neq i\\
0 & \hbox{otherwise}
\end{array}\right.
\nonumber
\]
More generally, we can represent the gradient operator by the $(|\partial_0({\mathfrak b})|+\cdots+|\partial_k({\mathfrak b})|)\times|{\mathfrak b}|$ matrix ${\mathbf D}({\mathfrak b})$, with:
\[
{\mathbf D}({\mathfrak b})\equiv {\mathbf D}_0({\mathfrak b})\oplus\cdots\oplus{\mathbf D}_k({\mathfrak b}).
\nonumber
\]
Given a basis ${\mathfrak b}\in{\mathfrak B}_\Omega$, the prolongation operator can be expressed by the $|\Pi({\mathfrak b})|\times|{\mathfrak b}|$ matrix ${\mathbf P}({\mathfrak b})$, with:
\[
\big({\mathbf P}({\mathfrak b})\big)_{\{\sigma_1,\ldots,\sigma_k\}\{\tau_1,\ldots,\tau_k\}} =
\prod_{j=1}^k\big({\mathbf P}({\mathfrak b}_j)\big)_{\sigma_j\tau_j}.
\nonumber
\]
Visualization:
$B^{d+1}_{n,\tau}$
$\frac{\partial B^{d+1}_{n,\tau}}{\partial x}$
$d$:
$n$:
$\tau$:
free
periodic
Neumann
Dirichlet
The dilation of the basis functions can be expressed as the linear combinations of undilated basis functions:
\[
\sigma_2(F_{n,\tau}^d) = \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}F_{2n,2\tau-(d+1)/2+j}^d,
\qquad
\sigma_2(P_{n,\tau}^d) = \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}P_{2n,2\tau-(d+1)/2+j}^d,
\qquad
\sigma_2(D_{n,\tau}^d) = \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}D_{2n,2\tau-(d+1)/2+j}^d,
\qquad\hbox{and}\qquad
\sigma_2(N_{n,\tau}^d) = \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}N_{2n,2\tau-(d+1)/2+j}^d.
\nonumber
\]
Proof:
For the free boundary, this follows from the properties of the centered B-splines.
For the periodic boundary we have:
\begin{align*}
\sigma_2(P_{n,\tau}^d)
&= \sigma_2\left(\sum_{k=-\infty}^\infty B_{\tau+kn}^d\right)\\
&= \sum_{k=-\infty}^\infty\sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}B_{2\tau-(d+1)/2+j+2kn}^d\\
&= \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}\sum_{k=-\infty}^\infty B_{2\tau-(d+1)/2+j+2kn}^d\\
&= \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j} P_{2n,2\tau-(d+1)/2+j}^d.
\end{align*}
For the Dirichlet boundary we have:
\begin{align*}
\sigma_2(D_{n,\tau}^d)
&= \sigma_2\left(\sum_{k=-\infty}^\infty\left(B_{\tau+2kn}^d - B_{-\tau-2kn}^d\right)\right)\\
&= \sum_{k=-\infty}^\infty\left(\sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}B_{2\tau-(d+1)/2+j+4kn}^d - \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}B_{-2\tau-(d+1)/2+j-4kn}^d\right)\\
&= \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}\sum_{k=-\infty}^\infty\left(B_{2\tau-(d+1)/2+j+4kn}^d -
B_{-2\tau-(d+1)/2+j-4kn}^d\right)\\
&= \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j} D_{2n,2\tau-(d+1)/2+j}^d.
\end{align*}
For the Neumann boundary we have:
\begin{align*}
\sigma_2(N_{n,\tau}^d)
&= \sigma_2\left(\sum_{k=-\infty}^\infty\left(B_{\tau+2kn}^d + B_{-\tau-2kn}^d\right)\right)\\
&= \sum_{k=-\infty}^\infty\left(\sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}B_{2\tau-(d+1)/2+j+4kn}^d + \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}B_{-2\tau-(d+1)/2+j-4kn}^d\right)\\
&= \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j}\sum_{k=-\infty}^\infty\left(B_{2\tau-(d+1)/2+j+4kn}^d +
B_{-2\tau-(d+1)/2+j-4kn}^d\right)\\
&= \sum_{j=0}^{d+1}\frac{1}{2^d}\choose{d+1}{j} N_{2n,2\tau-(d+1)/2+j}^d\\
\end{align*}
Visualization:
$d$:
$n$:
$\tau$:
free
periodic
Neumann
Dirichlet
Given $n\in{\mathbb N}$ and $d\geq0$, we denote by ${\mathfrak B}_{[0,n]}^d$ the set of free, periodic, Dirichlet, and Neumann bases on the interval $[0,n]$, with degree equal to $d$:
\[
{\mathfrak B}_{[0,n]}^d\equiv{\mathfrak f}_n^d\cup{\mathfrak p}_n^d\cup{\mathfrak d}_n^d\cup{\mathfrak n}_n^d.
\nonumber
\]
We denote by ${\mathfrak B}_{[0,n]}^{\geq d}$ the set of free, periodic, Dirichlet, and Neumann bases on the interval $[0,n]$, with degree greater than or equal to $d$:
\[
{\mathfrak B}_{[0,n]}^{\geq d}\equiv\bigcup_{k=d}^\infty{\mathfrak B}_{[0,n]}^k.
\]
And we set ${\mathfrak B}_{[0,n]}$ to be the set of all free, periodic, Dirichlet, and Neumann bases on the interval $[0,n]$:
\[
{\mathfrak B}_{[0,n]}\equiv{\mathfrak B}_{[0,n]}^{\geq0}.
\nonumber
\]
Given $d\geq0$, we define the map $\partial:{\mathfrak B}_{[0,n]}^{\geq d+1}\rightarrow{\mathfrak B}_{[0,n]}^{\geq d}$ to be the map taking the basis ${\mathfrak b}$ to:
\[
\partial({\mathfrak b})=\left\{\begin{array}{ll}
{\mathfrak f}_n^d &\hbox{if } {\mathfrak b}={\mathfrak f}_n^{d+1}\\
{\mathfrak p}_n^d &\hbox{if } {\mathfrak b}={\mathfrak p}_n^{d+1}\\
{\mathfrak d}_n^d &\hbox{if } {\mathfrak b}={\mathfrak n}_n^{d+1}\\
{\mathfrak n}_n^d &\hbox{if } {\mathfrak b}={\mathfrak d}_n^{d+1}
\end{array}\right.
\nonumber
\]
and we define $\delta_{d+1}:I_{d+1}\times I_d\rightarrow{\mathbb R}$ to be the map:
\[
\delta_{d+1}(\tau,\sigma) =
\left\{
\begin{array}{rl}
1 & \hbox{if }\sigma = \tau-\frac12 \\
-1 & \hbox{if }\sigma = \tau+\frac12 \\
0 & \hbox{otherwise}
\end{array}
\right..
\nonumber
\]
Then, given a free, periodic, Dirichlet, or Neumann basis of degree $d+1$, ${\mathfrak b}\in{\mathfrak B}_{[0,n]}^{d+1}$, the derivative operator can be expressed by the $|\partial({\mathfrak b})|\times|{\mathfrak b}|$ matrix ${\mathbf D}({\mathfrak b})$, with:
\[
\big({\mathbf D}({\mathfrak b})\big)_{\sigma\tau} =
\left\{\begin{array}{cl}
\displaystyle \delta_{d+1}(\tau,\sigma) & \hbox{if }{\mathfrak b}\in{\mathfrak f}_n^{d+1}\\
\displaystyle \sum_{k=-\infty}^\infty\delta_{d+1}(\tau,\sigma+kn) & \hbox{if }{\mathfrak b}\in{\mathfrak p}_n^{d+1}\\
\displaystyle \sum_{k=-\infty}^\infty\big(\delta_{d+1}(\tau,\sigma+2kn)+\delta_{d+1}(\tau,-\sigma-2kn)\big) & \hbox{if }{\mathfrak b}\in{\mathfrak d}_n^d\\
\displaystyle \sum_{k=-\infty}^\infty\big(\delta_{d+1}(\tau,\sigma+2kn)-\delta_{d+1}(\tau,-\sigma-2kn)\big) & \hbox{if }{\mathfrak b}\in{\mathfrak n}_n^d.
\end{array}\right.
\nonumber
\]
Given $n\in{\mathbb N}$, we define the map $\Pi:{\mathfrak B}_{[0,n]}\rightarrow{\mathfrak B}_{[0,2n]}$ to be the map taking the basis ${\mathfrak b}$ to:
\[
\Pi({\mathfrak b})=\left\{\begin{array}{ll}
{\mathfrak f}_{2n}^d &\hbox{if } {\mathfrak b}={\mathfrak f}_n^d\\
{\mathfrak p}_{2n}^d &\hbox{if } {\mathfrak b}={\mathfrak p}_n^d\\
{\mathfrak d}_{2n}^d &\hbox{if } {\mathfrak b}={\mathfrak d}_n^d\\
{\mathfrak n}_{2n}^d &\hbox{if } {\mathfrak b}={\mathfrak n}_n^d
\end{array}\right.
\nonumber
\]
and we define $\pi_d:I_d\rightarrow I_d$ be the map:
\[
\pi_d(\tau,\sigma) =
\left\{
\begin{array}{cl}
\frac{1}{2^d}\choose{d+1}{\sigma-2\tau+\frac{d+1}2} & \hbox{if } \sigma\in\left[2\tau-\frac{d+1}2,2\tau+\frac{d+1}2\right]\\
0 & \hbox{otherwise}
\end{array}
\right..
\nonumber
\]
Then, given a free, periodic, Dirichlet, or Neumann basis, ${\mathfrak b}\in{\mathfrak B}_n$, the prolongation operator can be expressed by the $|\Pi({\mathfrak b})|\times|{\mathfrak b}|$ matrix ${\mathbf P}({\mathfrak b})$, with:
\[
\big({\mathbf P}({\mathfrak b})\big)_{\sigma\tau}=
\left\{\begin{array}{cl}
\displaystyle \pi_d(\tau,\sigma) & \hbox{if }\exists\,d\geq0\hbox{ s.t. }{\mathfrak b}\in{\mathfrak f}_n^d\\
\displaystyle \sum_{k=-\infty}^\infty\pi_d(\tau,\sigma+kn) & \hbox{if }\exists\,d\geq0\hbox{ s.t. }{\mathfrak b}\in{\mathfrak p}_n^d\\
\displaystyle \sum_{k=-\infty}^\infty\big(\pi_d(\tau,\sigma+2kn)+\pi_d(\tau,-\sigma-2kn)\big), & \hbox{if }\exists\,d\geq0\hbox{ s.t. }{\mathfrak b}\in{\mathfrak d}_n^d\\
\displaystyle \sum_{k=-\infty}^\infty\big(\pi_d(\tau,\sigma+2kn)-\pi_d(\tau,-\sigma-2kn)\big) & \hbox{if }\exists\,d\geq0\hbox{ s.t. }{\mathfrak b}\in{\mathfrak n}_n^d\\
\end{array}\right.
\nonumber
\]
The mass-matrix for the free, periodic, Dirichlet, and Neumann basis ${\mathfrak b}\in{\mathfrak B}_{[0,n]}$ can be expressed by the $|{\mathfrak b}|\times|{\mathfrak b}|$ matrix ${\mathbb M}({\mathfrak b})$ with:
\[
\big({\mathbf M}({\mathfrak b})\big)_{\sigma\tau}=
\left\{\begin{array}{cl}
\displaystyle \int_0^n F_{n,\tau}^d\cdot F_{n,\sigma}^d & \hbox{if }\exists\,d\geq0\hbox{ s.t. }{\mathfrak b}\in{\mathfrak f}_n^d\\
\displaystyle \int_0^n P_{n,\tau}^d\cdot P_{n,\sigma}^d & \hbox{if }\exists\,d\geq0\hbox{ s.t. }{\mathfrak b}\in{\mathfrak p}_n^d\\
\displaystyle \int_0^n N_{n,\tau}^d\cdot N_{n,\sigma}^d & \hbox{if }\exists\,d\geq0\hbox{ s.t. }{\mathfrak b}\in{\mathfrak d}_n^d\\
\displaystyle \int_0^n D_{n,\tau}^d\cdot D_{n,\sigma}^d & \hbox{if }\exists\,d\geq0\hbox{ s.t. }{\mathfrak b}\in{\mathfrak n}_n^d
\end{array}\right.
\nonumber
\]
The $|{\mathfrak b}|\times|{\mathfrak b}|$ stiffness matrix can be obtained by computing the mass of the derivative:
\[
{\mathbf S}({\mathfrak b}) = \big({\mathbf D}({\mathfrak b})\big)^\top\cdot{\mathbf M}\big(\partial({\mathfrak b})\big)\cdot\big({\mathbf D}({\mathfrak b})\big).
\nonumber
\]
Extension to higher dimensions
Given $\vec{n}=(n_1,\ldots,n_k)\in{\mathbb N}^k$, we denote the set of function bases on the rectangle $\Omega=[0,n_1]\times\cdots\times[0,n_k]$ as:
\[
{\mathfrak B}_\Omega \equiv {\mathfrak B}_{[0,n_1]}\times\cdots\times{\mathfrak B}_{[0,n_k]}.
\nonumber
\]
Specifically, given ${\mathfrak b}\in{\mathfrak B}_\Omega$, we can think of ${\mathfrak b}$ as a function basis on $\Omega$ by using the tensor-product to associate the set of functions $(\phi_1,\ldots,\phi_k)\in{\mathfrak b}$ with a function on $\Omega$:
\[
\left(\phi_1,\ldots,\phi_k\right)(x_1,\ldots,x_n) \equiv \prod_{i=1}^k \phi_i(x_i).
\nonumber
\]
We define $\partial_i$ to be the map taking function bases on $\Omega$ to functions bases on $\Omega$, defined by:
\begin{align*}
\partial_i:{\mathfrak B}_\Omega&\rightarrow{\mathfrak B}_\Omega\\
({\mathfrak b}_1,\ldots,{\mathfrak b}_{i-1},{\mathfrak b}_i,{\mathfrak b}_{i+1},\ldots{\mathfrak b}_k)&\mapsto
({\mathfrak b}_1,\ldots,{\mathfrak b}_{i-1},\partial\left({\mathfrak b}_i\right),{\mathfrak b}_{i+1},\ldots{\mathfrak b}_k).
\end{align*}
(Technically, this requires that ${\mathfrak b}_i\in{\mathcal B}_{[0,n_i]}^{\geq1}$.)
We define $\Pi$ to be the map taking function bases on $\Omega$ to functions bases on $2\Omega\equiv[0,2n_1]\times\cdots\times[0,2n_k]$, defined by:
\begin{align*}
\Pi:{\mathfrak B}_\Omega&\rightarrow{\mathfrak B}_{2\Omega}\\
({\mathfrak b}_1,\ldots,{\mathfrak b}_k)&\mapsto
(\Pi({\mathfrak b}_1),\ldots,\Pi({\mathfrak b}_k))
\end{align*}
The mass matrix for a basis ${\mathfrak b}\in{\mathfrak B}_\Omega$ can be expressed by the $|{\mathfrak b}|\times|{\mathfrak b}|$ matrix ${\mathbf M}({\mathfrak b})$, with:
\[
\big({\mathbf M}({\mathfrak b})\big)_{\{\sigma_1,\ldots,\sigma_k\}\{\tau_1,\ldots,\tau_k\}}
= \prod_{j=1}^k\big({\mathbf M}({\mathfrak b}_j)\big)_{\sigma_j\tau_j}.
\nonumber
\]
Proof:
This follows from the fact that if $(\phi_1,\ldots,\phi_k),(\psi_1,\ldots,\psi_k)\in{\mathfrak b}$ are two basis functions on $\Omega$, the integral of the functions over the $k$-dimensional rectangle $\Omega$ is the product of the one-dimensional integrals:
\begin{align*}
\int_\Omega\big(\phi_1,\ldots,\phi_k\big)(x_1,\ldots,x_k)\cdot\big(\psi_1,\ldots,\psi_k\big)(x_1,\ldots,x_k)\,dx_k\cdots dx_1
&=
\int_0^{n_1}\cdots\int_0^{n_k}
\big(\phi_1,\ldots,\phi_k\big)(x_1,\ldots,x_k)\cdot\big(\psi_1,\ldots,\psi_k\big)(x_1,\ldots,x_k)\,dx_k\cdots dx_1\\
&=
\int_0^{n_1}\cdots\int_0^{n_k}\prod_{i=1}^k\phi_i(x_i)\cdot\prod_{i=1}^k\psi_i(x_i)\,dx_k\cdots dx_1\\
&=\prod_{i=1}^k\int_0^{n_i}\phi_i(x_i)\cdot\psi_i(x_i)\,dx_i.
\end{align*}
The $|{\mathfrak b}|\times|{\mathfrak b}|$ stiffness matrix can be obtained by computing the mass of the gradient:
\[
{\mathbf S}({\mathfrak b}) = \sum_{i=1}^k\big({\mathbf D}_i({\mathfrak b})\big)^\top\cdot{\mathbf M}\big(\partial_i({\mathfrak b})\big)\cdot\big({\mathbf D}_i({\mathfrak b})\big).
\nonumber
\]
We note that if $d$ is odd, functions are represented in terms of basis functions that are centered on the integers (a primal representation). That is, a function can be thought of as an assignment of values to a subset of the integers. And, when $d$ is even, functions are represented in terms of basis functions that are centered on the half-integers (a dual representation). That is, a function can be though of as an assignment of values to a subset of the half-integers.
When we take derivatives, representations are reversed, so that primal representations are mapped to dual representations and dual representations are mapped to primal representations.
If for each dimension the basis functions have odd degree, a function can be thought of as an assignment of values to a subset of the $0$-dimensional vertices of a $k$-dimensional lattice. Conversely, it the basis functions have even degree, a function can be be thought of as an assignment of values to a subset of the $k$-dimensional cells of a $k$-dimensional lattice. (Or, equivalently, to a subset of the the $0$-dimensional vertices of the dual lattice.)
If we take the $i$-th partial derivative of a function represented by values at $0$-dimensional vertices, we obtain a function represented by values at $1$-dimensional edges along the $i$-th direction. Similarly, if we take the $i$-th partial derivative of a function represented by values at $k$-dimensional cells, we obtain a function represented by values at $(k-1)$-dimensional faces perpendicular to the $i$-th direction.
More generally, if we take the gradient of a function represented by values at $0$-dimensional vertices, we obtain a function represented by values at $0$-dimensional edges. And, if we take the gradient of function represented by values at $k$-dimensional cells, we obtain a function represented by values at $(k-1)$-dimensional faces.
It is important to note, however, that in the $k$-dimensional case a function need not be represented using either a primal or dual representation, as the component along one dimension may have even degree and along a different dimension may have odd degree. (E.g. If we start with a primal representation and take the partial derivative with respect to the first component, we get a function that is neither in the primal representation nor in the dual representation.)