Tensor spline

Описание поверхностей тензорным произведением сплайнов.

В данном разделе рассмотрим описание поверхности тензорным произведением В-сплайнов заданных на квадратной решетке \(\textbf{i} h=(ih,jh)\), где \(\textbf{i}\in Z^2\).
Поверхность \(S_{r,s}(\textbf{u})\), описываемая тензорным произведением В-сплайнов, имеет вид \[ \textbf{S}_{r,s}(\textbf{P},\textbf{u})=\sum_{\textbf{i}\in Z^2}\textbf{P}_{\textbf{i}} N_{r,s}(\textbf{u}-\textbf{i} h), \] где \(\textbf{u}=(u,v)\in R^2\) и \[N_{r,s}(\textbf{u}-\textbf{i} h)\equiv B_r(u-ih)B_s(v-jh)\] нормализованное тензорное произведение В-сплайнов порядка \(rs\) по решетке с узлами \(\textbf{i}=(i,j)\).
Рассмотрим биквадратные сплайны \(\textbf{S}_{2,2}(\textbf{P},\textbf{u})\). График функции \(N_{2,2}(\textbf{u})\) выглядит следующим образом


Используя вид параболического В-сплайна, для \(\textbf{u}\in [ih,jh]\times [(i+1)h,(j+1)h]\) получаем \[ \textbf{S}_{2,2}(\textbf{P},\textbf{u})=\sum_{\textbf{i}\in Z^2}\textbf{P}_{\textbf{i}} N_{2,2}(\textbf{u}-\textbf{i} h)= \textbf{P}_{i,j}\frac{1+2\frac{u-ih}{h}-2\left(\frac{u-ih}{h}\right)^2}{2}\cdot \frac{1+2\frac{v-jh}{h}-2\left(\frac{v-jh}{h}\right)^2}{2}+ \] \[ +\textbf{P}_{i-1,j}\frac{\left(1-\frac{u-ih}{h}\right)^2}{2}\cdot \frac{1+2\frac{v-jh}{h}-2\left(\frac{v-jh}{h}\right)^2}{2} +\textbf{P}_{i+1,j}\frac{\left(\frac{u-ih}{h}\right)^2}{2}\,\, \frac{1+2\frac{v-jh}{h}-2\left(\frac{v-jh}{h}\right)^2}{2}+ \] \[ +\textbf{P}_{i,j-1}\frac{1+2\frac{u-ih}{h}-2\left(\frac{u-ih}{h}\right)^2}{2}\cdot \frac{\left(1-\frac{v-jh}{h}\right)^2}{2}+ \] \[ +\textbf{P}_{i-1,j-1}\frac{\left(1-\frac{u-ih}{h}\right)^2}{2}\cdot \frac{\left(1-\frac{v-jh}{h}\right)^2}{2} +\textbf{P}_{i+1,j-1}\frac{\left(\frac{u-ih}{h}\right)^2}{2}\cdot \frac{\left(1-\frac{v-jh}{h}\right)^2}{2}+ \] \[ +\textbf{P}_{i,j+1}\frac{1+2\frac{u-ih}{h}-2\left(\frac{u-ih}{h}\right)^2}{2}\cdot \frac{\left(\frac{v-jh}{h}\right)^2}{2}+ \textbf{P}_{i-1,j+1}\frac{\left(1-\frac{u-ih}{h}\right)^2}{2}\cdot \frac{\left(\frac{v-jh}{h}\right)^2}{2} +\textbf{P}_{i+1,j+1}\frac{\left(\frac{u-ih}{h}\right)^2}{2}\cdot \frac{\left(\frac{v-jh}{h}\right)^2}{2}. \] В матричной форме это будет иметь следующий вид \[ \textbf{S}_{2,2}(\textbf{P},\textbf{u}) \: = \: \left[ \begin{array}{ccc} 1 & \frac{u-ih}{h} & \left(\frac{u-ih}{h}\right)^2 \end{array} \right] M_{2,2} P_{2,2} M^T_{2,2} \left[ \begin{array}{c} 1 \\ \frac{v-jh}{h} \\ \left(\frac{v-jh}{h}\right)^2 \end{array} \right] \] где \( M_{2,2}\) матрица размера \(3 \times 3\) \[ M_{2,2} \: = \: \frac{1}{2} \left[ \begin{array}{rrr} 1 & 1 & 0 \\ -2 & 2 & 0 \\ 1 & -2 & 1 \end{array} \right] \] и \[ P_{2,2} \: = \: \left[ \begin{array}{lll} \textbf{P}_{i-1,j-1} & \textbf{P}_{i,j-1} & \textbf{P}_{i+1,j-1} \\ \textbf{P}_{i-1,j} & \textbf{P}_{i,j} & \textbf{P}_{i+1,j} \\ \textbf{P}_{i-1,j+1} & \textbf{P}_{i,j+1} & \textbf{P}_{i+1,j+1} \end{array} \right] \] Отсюда сразу получаем значение в точке \(\left(\left(i+\frac{1}{2}\right)h,\left(j+\frac{1}{2}\right)h\right)\): \begin{equation}\label{tenz0} \textbf{S}_{2,2}\left(\textbf{P},\left(i+\frac{1}{2}\right)h,\left(j+\frac{1}{2}\right)h\right)={\frac {9}{16}}\,\textbf{P}_{{i,j}}+{\frac {3}{32}} \left( \,\textbf{P}_{{i,j+1}} +\textbf{P}_{{i,j-1}}+\textbf{P}_{{i+1,j}}+\textbf{P}_{{i-1,j}} \right)+{\frac {1}{64} }\left(\,\textbf{P}_{{i-1,j+1}}+ \textbf{P}_{{i-1,j-1}}+\textbf{P}_{{i+1,j+1}}+\textbf{P}_{{i+1,j1}}\right) =\textbf{P}_{{i,j}}-\frac{1}{64}\Delta\textbf{P}_{{i,j}}, \end{equation} где \[ \Delta\textbf{P}_{{i,j}}=28\textbf{P}_{{i,j}}-6\left( \,\textbf{P}_{{i,j+1}} +\textbf{P}_{{i,j-1}}+\textbf{P}_{{i+1,j}}+\textbf{P}_{{i-1,j}} \right) -\left( \,\textbf{P}_{{i+1,j+1}} +\textbf{P}_{{i+1,j-1}}+\textbf{P}_{{i-1,j-1}}+\textbf{P}_{{i-1,j+1}} \right). \] Пусть, поверхность \(\textbf{f}\) задана точками \[f_{\textbf{i} +1/2}=f\left(\left(i+\frac{1}{2}\right)h,\left(j+\frac{1}{2}\right)h\right), (i,j=0,\pm1,\pm2,\ldots)\] и \begin{equation}\label{tenz1} \textbf{P}_{\textbf{i}} (\textbf{f})=f_{\textbf{i} +1/2}-\sum_{\nu=1}^{\infty} \left(-\frac{1}{64}\right)^\nu \Delta^{\nu}f_{\textbf{i} +1/2}, \end{equation} где \(\Delta^{\nu}f_{\textbf{i} +1/2}=\Delta\left(\Delta^{\nu-1}f_{\textbf{i} +1/2}\right)\). Отсюда и из (\ref{tenz0}) получаем \[ \textbf{S}_{2,2}\left(\textbf{P(f)},\left(i+\frac{1}{2}\right)h,\left(j+\frac{1}{2}\right)h\right) = f_{\textbf{i} +1/2}-\sum_{\nu=1}^{\infty} \left(-\frac{1}{64}\right)^\nu \Delta^{\nu}f_{\textbf{i} +1/2}-\frac{1}{64}\Delta\left(f_{\textbf{i} +1/2}-\sum_{\nu=1}^{\infty} \left(-\frac{1}{64}\right)^\nu \Delta^{\nu}f_{\textbf{i} +1/2}\right) \] \[ = f_{\textbf{i} +1/2}-\sum_{\nu=1}^{\infty} \left(-\frac{1}{64}\right)^\nu \Delta^{\nu}f_{\textbf{i} +1/2}-\frac{1}{64}\Delta f_{\textbf{i} +1/2}+\sum_{\nu=2}^{\infty} \left(-\frac{1}{64}\right)^\nu \Delta^{\nu}f_{\textbf{i} +1/2}= f_{\textbf{i} +1/2}-\sum_{\nu=1}^{\infty} \left(-\frac{1}{64}\right)^\nu \Delta^{\nu}f_{\textbf{i} +1/2}+\sum_{\nu=1}^{\infty} \left(-\frac{1}{64}\right)^\nu \Delta^{\nu}f_{\textbf{i} +1/2}= f_{\textbf{i} +1/2}. \] Таким образом, если коэффициенты сплайна \(\textbf{P}_{\textbf{i}}\) определены равенствами (\ref{tenz1}), то для всех \(\textbf{i}\) выполняются равенства \[\textbf{S}_{2,2}\left(\textbf{P(f)},\left(i+\frac{1}{2}\right)h,\left(j+\frac{1}{2}\right)h\right) = f_{\textbf{i} +1/2},\] т.е. при задании коэффициентов равенствами (\ref{tenz0}) сплайн \(\textbf{S}_{2,2}(\textbf{f},\textbf{u})\) интерполирует функцию \(\textbf{f}\) в равноотстоящих точках \(\left(\textbf{i} +\frac{1}{2}\right) h\). Пусть \begin{equation}\label{tenz2} \textbf{P}^1_{\textbf{i}} =\textbf{P}^1_{\textbf{i}} (\textbf{f})=f_{\textbf{i} +1/2}+\frac{1}{64}\Delta f_{\textbf{i} +1/2}= \end{equation} \[ ={\frac {23}{16}}\,f_{{i+1/2,j+1/2}}-{\frac {3}{32}}\left(f_{{i+1/2,j+3/2}}+f_{{i+1/2,j-1/2}}+f_{{i+3/2,j+1/2}}+f_{{i-1/2, j+1/2}}\right) -{\frac {1}{64}}\left(f_{{i-1/2,j+3/2}}+f_{{i-1/2,j-1/2}}+f_{{i+3/2,j-1/2}}+f_{{i+3/2,j+3/2}}\right), \] соответствующий сплайн обозначим через \begin{equation}\label{tenz3} \textbf{S}_{2,2}(\textbf{P}^1,\textbf{u})=\sum_{\textbf{i}\in Z^2}\textbf{P}^1_{\textbf{i}} N_{2,2}(\textbf{u}-\textbf{i} h). \end{equation} Тогда \[ \textbf{S}_{2,2}\left(\textbf{P}^1,\left(i+\frac{1}{2}\right)h,\left(j+\frac{1}{2}\right)h\right) = f_{\textbf{i} +1/2}+\frac{1}{4096}\Delta^2f_{\textbf{i} +1/2}. \] Если функция \(f(\textbf{u})\) имеет все непрерывные производные до четвертого порядка включительно, то существует точка \({\textbf{u}}_0\in [ih,jh]\times [(i+1)h,(j+1)h]\) такая, что \[ \textbf{S}_{2,2}\left(\textbf{P}^1,\left(i+\frac{1}{2}\right)h,\left(j+\frac{1}{2}\right)h\right) = f_{\textbf{i} +1/2}+\frac{3}{8}h^4 \left(\left.\frac{\partial^4 f }{\partial u^4 }\right|_{\textbf{u}_0}+2\left.\frac{\partial^4 f }{\partial u^2 \partial v^2}\right|_{\textbf{u}_0}+\left.\frac{\partial^4 f }{\partial v^4 }\right|_{\textbf{u}_0}\right). \] Для случая бикубических сплайнов \[ \textbf{S}_{3,3}(\textbf{P},\textbf{u})=\sum_{\textbf{i}\in Z^2}\textbf{P}_{\textbf{i}} N_{3,3}(\textbf{u}-\textbf{i} h) \] при \(\textbf{u} \in [ih,jh]\times [(i+1)h,(j+1)h]\) запись бикубического сплайна в матричной форме будет иметь следующий вид \[ \textbf{S}_{3,3}(\textbf{P},\textbf{u}) \: = \: \left[ \begin{array}{cccc} 1 & \frac{u-ih}{h} & \left(\frac{u-ih}{h}\right)^2 & \left(\frac{u-ih}{h}\right)^3 \end{array} \right] M_{3,3} P_{3,3} M_{3,3}^T \left[ \begin{array}{c} 1 \\ \frac{v-jh}{h} \\ \left(\frac{v-jh}{h}\right)^2\\ \left(\frac{v-jh}{h}\right)^3 \end{array} \right] \] где \( M_{3,3}\) матрица размера \(4 \times 4\) \[ M_{3,3} \: = \: \frac{1}{6} \left[ \begin{array}{rrrr} 1 & 4 & 1 & 0 \\ -3 & 0 & 3 & 0 \\ 3 & -6 & 3 & 0 \\ -1 & 3 & -3 & 1 \end{array} \right] \] и \[ P_{3,3} \: = \: \left[ \begin{array}{llll} \textbf{P}_{i-1,j-1} & \textbf{P}_{i,j-1} & \textbf{P}_{i+1,j-1}& \textbf{P}_{i+2,j-1} \\ \textbf{P}_{i-1,j} & \textbf{P}_{i,j} & \textbf{P}_{i+1,j}& \textbf{P}_{i+2,j} \\ \textbf{P}_{i-1,j+1} & \textbf{P}_{i,j+1} & \textbf{P}_{i+1,j+1}& \textbf{P}_{i+2,j+1} \\ \textbf{P}_{i-1,j+2} & \textbf{P}_{i,j+2} & \textbf{P}_{i+1,j+2}& \textbf{P}_{i+2,j+2} \end{array} \right] \] В точке \(\left(ih,jh\right)\) значение бикубического сплайна будет равно \begin{equation}\label{tenz4} \textbf{S}_{3,3}(\textbf{P},\textbf{i} h)={\frac {4}{9}}\,\textbf{P}_{{i,j}}+{\frac {1}{9}} \left( \,\textbf{P}_{{i,j+1}} +\textbf{P}_{{i,j-1}}+\textbf{P}_{{i+1,j}}+\textbf{P}_{{i-1,j}} \right)+{\frac {1}{36} }\left(\,\textbf{P}_{{i-1,j+1}}+ \textbf{P}_{{i-1,j-1}}+\textbf{P}_{{i+1,j+1}}+\textbf{P}_{{i+1,j1}}\right) =\textbf{P}_{{i,j}}-\frac{1}{36}\delta\textbf{P}_{{i,j}}, \end{equation} где \[ \delta\textbf{P}_{{i,j}}=20\textbf{P}_{{i,j}}-4\left( \,\textbf{P}_{{i,j+1}} +\textbf{P}_{{i,j-1}}+\textbf{P}_{{i+1,j}}+\textbf{P}_{{i-1,j}} \right) -\left( \,\textbf{P}_{{i+1,j+1}} +\textbf{P}_{{i+1,j-1}}+\textbf{P}_{{i-1,j-1}}+\textbf{P}_{{i-1,j+1}} \right). \] Пусть, поверхность \(\textbf{f}\) задана точками \[f_{\textbf{i}}=f\left(ih,jh\right), (i,j=0,\pm1,\pm2,\ldots)\] и \begin{equation}\label{tenz5} \textbf{P}_{\textbf{i}} =\textbf{P}_{\textbf{i}} (\textbf{f})=f_{\textbf{i} }-\sum_{\nu=1}^{\infty} \left(-\frac{1}{36}\right)^\nu \delta^{\nu}f_{\textbf{i}}, \end{equation} где \(\delta^{\nu}f_{\textbf{i} }=\delta\left(\delta^{\nu-1}f_{\textbf{i}}\right)\). Отсюда и из (\ref{tenz4}) получаем \[ \textbf{S}_{3,3}\left(\textbf{P}(\textbf{f}),\textbf{i} h\right) = f_{\textbf{i} }-\sum_{\nu=1}^{\infty} \left(-\frac{1}{36}\right)^\nu \delta^{\nu}f_{\textbf{i} } -\frac{1}{36}\delta\left(f_{\textbf{i}}-\sum_{\nu=1}^{\infty} \left(-\frac{1}{36}\right)^\nu \delta^{\nu}f_{\textbf{i} }\right) =\] \[= f_{\textbf{i} }-\sum_{\nu=1}^{\infty} \left(-\frac{1}{36}\right)^\nu \delta^{\nu}f_{\textbf{i} }-\frac{1}{36}\delta f_{\textbf{i} }+\sum_{\nu=2}^{\infty} \left(-\frac{1}{36}\right)^\nu \delta^{\nu}f_{\textbf{i} }= f_{\textbf{i} }-\sum_{\nu=1}^{\infty} \left(-\frac{1}{36}\right)^\nu \delta^{\nu}f_{\textbf{i} }+\sum_{\nu=1}^{\infty} \left(-\frac{1}{36}\right)^\nu \delta^{\nu}f_{\textbf{i} }= f_{\textbf{i} }. \] Таким образом, если коэффициенты сплайна \(\textbf{P}_{\textbf{i}}\) определены равенствами (\ref{tenz4}), то для всех \(\textbf{i}\) выполняются равенства \[\textbf{S}_{3,3}\left(\textbf{f},\textbf{i} h\right) = f_{\textbf{i} },\] т.е. при задании коэффициентов равенствами (\ref{tenz4}) сплайн \(\textbf{S}_{3,3}(\textbf{f},\textbf{u})\) интерполирует функцию \(\textbf{f}\) в равноотстоящих точках \(\textbf{i} h\). Если \begin{equation}\label{tenz6} \textbf{P}^1_{\textbf{i}} =\textbf{P}^1_{\textbf{i}} (\textbf{f})=f_{\textbf{i} }+\frac{1}{36}\delta f_{\textbf{i} }= {\frac {14}{9}}\,f_{{i,j}}-{\frac {1}{9}}\left(f_{{i,j+1}}+f_{{i,j-1}}+f_{{i+1,j}}+f_{{i-1, j}}\right) -{\frac {1}{36}}\left(f_{{i-1,j+1}}+f_{{i-1,j-1}}+f_{{i+1,j-1}}+f_{{i+1,j+1}}\right), \end{equation} соответствующий сплайн обозначим через \begin{equation}\label{tenz7} \textbf{S}_{3,3}(\textbf{P}^1,\textbf{u})=\sum_{\textbf{i}\in Z^2}\textbf{P}^1_{\textbf{i}} N_{3,3}(\textbf{u}-\textbf{i} h). \end{equation} Тогда \[ \textbf{S}_{3,3}\left(\textbf{P}^1(\textbf{f}),\textbf{i} h\right) = f_{\textbf{i} }+\frac{1}{1296}\delta^2f_{\textbf{i} }. \] Если функция \(f(\textbf{u})\) имеет все непрерывные производные до четвертого порядка включительно, то существует точка \({\textbf{u}}_0\in [(i-0.5)h,(j-0.5)h]\times [(i+0.5)h,(j+0.5)h]\) такая, что \[ \textbf{S}_{3,3}\left(\textbf{P}^1(\textbf{f}),\textbf{i} h\right) = f_{\textbf{i} }+\frac{2}{3}h^4 \left(\left.\frac{\partial^4 f }{\partial u^4 }\right|_{\textbf{u}_0}+2\left.\frac{\partial^4 f }{\partial u^2 \partial v^2}\right|_{\textbf{u}_0}+\left.\frac{\partial^4 f }{\partial v^4 }\right|_{\textbf{u}_0}\right). \]