Журнал вычислительной математики и математической физики, 2019, T. 59, № 5, стр. 731-738

О реализации неполиномиальной сплайновой аппроксимации

О. В. Белякова *

Балтийский федеральный ун-т
236041 Калининград, ул. А. Невского, 14, Россия

* E-mail: obelyakova@yandex.ru

Поступила в редакцию 02.10.2018
После доработки 22.12.2018
Принята к публикации 23.12.2018

Полный текст (PDF)

Аннотация

В данной работе исследованы варианты обработки числовых потоков с использованием неполиномиальных сплайнов лагранжева и эрмитова типов. Рассматриваемые сплайны строятся из аппроксимационных соотношений, включающих генерирующую вектор-функцию с компонентами различного характера, в том числе неполиномиального. Здесь рассмотрены аппроксимации сплайнами лагранжева типа первого порядка и эрмитова типа третьего порядка. На ряде модельных примеров продемонстрирована эффективность построенных аппроксимаций для потоков из значений функции и потоков из значений функции и ее производной. Преимуществами рассматриваемых сплайнов являются простота их построения, максимальная гладкость, интерполяционные и аппроксимационные свойства, а также точность на априори заданных функциях (на компонентах генерирующей вектор-функции). Библ. 6. Табл. 7.

Ключевые слова: неполиномиальные сплайны, аппроксимация, погрешность аппроксимации.

ВВЕДЕНИЕ

Необходимость эффективно обрабатывать числовые информационные потоки, в том числе цифровые потоки от измерительных приборов, повышает интерес к локальным аппроксимациям с помощью сплайнов, вейвлетов, сплайн-вейвлетных разложений и др. Наиболее популярны непрерывные или непрерывно дифференцируемые полиномиальныe сплайны (см., например, [1]–[3]). В некоторых случаях интерполяции и аппроксимации целесообразно применять неполиномиальные сплайны, обладающие свойством точности на некоторых, вообще говоря, неполиномиальных функциях. Построение таких сплайнов предложено в [4] и развивалось в [5], [6]. Оно основано на применении так называемых аппроксимационных соотношений, использующих ограниченность носителей сплайн-функций на введенной сетке и некоторую априори заданную генерирующую вектор-функцию, компоненты которой могут быть и неполиномиальными функциями. Если коэффициенты в аппроксимационных соотношениях специальным образом связать с генерирующей функцией, то построенная аппроксимация станет непрерывной интерполирующей функцией. В случае, когда генерирующую функцию удается задать так, чтобы она примерно соответствовала закономерностям в цифровом потоке, то получается аппроксимация высокой точности.

Данная работа посвящена апробации нового подхода, разработанного в [4], реализации аппроксимаций цифрового потока с помощью неполиномиальных сплайнов лагранжева типа первого порядка и неполиномиальных сплайнов эрмитова типа третьего порядка и численному исследованию эффективности таких аппроксимаций.

При построении аппроксимирующих сплайнов для задания исходного потока используются значения, которые генерируются модельными функциями на заданной сетке. В случае сплайнов лагранжева типа первого порядка используются только значения функций, для сплайнов эрмитова типа используются значения функций и их производных первого порядка на упомянутой сетке. В данной работе в качестве модельных рассматриваются функции $\sin (t),\;{{{\text{e}}}^{t}},\;1{\text{/(}}1 + {{t}^{2}}{\text{)}}$ и т.п. Указанный подход в построении аппроксимаций приводит к достаточно простым алгоритмам с небольшим числом арифметических операций. Для оценивания эффективности исследуются уклонения полученных аппроксимаций от исходных функций. Полученные численные результаты согласуются с теоретическими оценками, а также дают представление о неизвестных константах в упомянутых оценках.

1. АППРОКСИМАЦИИ ЛАГРАНЖЕВА ТИПА

Пусть требуется аппроксимировать функцию $u(t) \in C(\alpha ,\beta )$. Аппроксимирующая функция $\tilde {u}(t)$ ищется в виде

(1.1)
$\tilde {u}(t) = \mathop \sum \limits_j \,{{c}_{j}} \cdot {{\omega }_{j}}(t),$
где числовые коэффициенты ${{c}_{j}}$ и координатные сплайны ${{\omega }_{j}}(t)$ определяются ниже.

Для того, чтобы построить координатные сплайны ${{\omega }_{j}}(t)$, достаточно выполнить следующие действия: 1) ввести сетку, например, равномерную: ${{x}_{k}} = k \cdot h,\;h > 0,\;k \in Z$; 2) задать носитель функции ${{\omega }_{j}}(t)$, например, $\operatorname{supp} \;{{\omega }_{j}}(t) = [{{x}_{j}},\;{{x}_{{j + 2}}}]$, и двухкомпонентную вектор-функцию $\phi (t) = {{(1,\quad{{\phi }_{1}}(t))}^{{\text{т }}}},\quad\;{{\phi }_{1}}(t) \in C({{R}^{1}})$, например, ${{\phi }_{1}}(t) = \sin (t)$; 3) использовать аппроксимационные соотношения (см. [4, с. 187]):

(1.2)
${{a}_{{i - 1}}} \cdot {{\omega }_{{i - 1}}}(t) + {{a}_{i}} \cdot {{\omega }_{i}}(t) = \phi (t),\quad t \in ({{x}_{i}},{{x}_{{i + 1}}}),\quad i \in {\rm Z},$
в которых ${{a}_{{i - 1}}},\;{{a}_{i}}$ – двухкомпонентные числовые векторы, ${{a}_{i}} = {{(a_{i}^{{(0)}},a_{i}^{{(1)}})}^{{\text{т }}}}$. Поэтому соотношение (1.2) соответствует системе линейных уравнений относительно неизвестных ${{\omega }_{{i - 1}}}(t),\;{{\omega }_{i}}(t)$
(1.3)
$\begin{array}{*{20}{c}} {a_{{i - 1}}^{{\left( 0 \right)}} \cdot {{\omega }_{{i - 1}}}(t) + a_{i}^{{\left( 0 \right)}} \cdot {{\omega }_{i}}(t) = 1,} \\ {a_{{i - 1}}^{{\left( 1 \right)}} \cdot {{\omega }_{{i - 1}}}(t) + a_{i}^{{\left( 1 \right)}} \cdot {{\omega }_{i}}(t) = {{\phi }_{1}}(t).} \end{array}$
Предполагая, что
(1.4)
$\det ({{a}_{{j - 1}}},{{a}_{j}}) \ne 0\quad \forall j \in Z,$
из (1.3) легко найти
(1.5)
${{\omega }_{{i - 1}}}(t) = \frac{{\det (\phi (t),{{a}_{i}})}}{{\det ({{a}_{{i - 1}}},{{a}_{i}})}},\quad {{\omega }_{i}}(t) = \frac{{\det ({{a}_{{i - 1}}},\phi (t))}}{{\det ({{a}_{{i - 1}}},{{a}_{i}})}}.$
Множество векторов ${{a}_{j}} \in {{R}^{2}}$, удовлетворяющих условию (1.4), называется полной цепочкой векторов.

Для $t \in \left( {{{x}_{{i + 1}}},\;{{x}_{{i + 2}}}} \right)$, ввиду (1.2), имеем аппроксимационное соотношение ${{a}_{i}}{{\omega }_{i}}(t)\,\; + $ $ + \;{{a}_{{i + 1}}}{{\omega }_{{i + 1}}}(t) = \phi (t)$, из которого, аналогично (1.5), получим

(1.6)
${{\omega }_{i}}(t) = \frac{{\det (\phi (t),{{a}_{{i + 1}}})}}{{\det ({{a}_{i}},{{a}_{{i + 1}}})}},\quad {{\omega }_{{i + 1}}}(t) = \frac{{\det ({{a}_{i}},\phi (t))}}{{\det ({{a}_{i}},{{a}_{{i + 1}}})}}.$
Таким образом, из (1.5), (1.6) находим формулу сплайна, который называется координатным сплайном
(1.7)
Поэтому в выражении (1.1) для аппроксимирующей функции $\tilde {u}(t)$ при любом $t \in ({{x}_{j}},\;{{x}_{{j + 1}}})$ имеется не более двух ненулевых слагаемых
(1.8)
$\tilde {u}(t) = {{c}_{{j - 1}}} \cdot {{\omega }_{{j - 1}}}(t) + {{c}_{j}} \cdot {{\omega }_{j}}(t).$
Координатный сплайн ${{\omega }_{j}}(t)$ определен на всей вещественной оси, за исключением узлов ${{x}_{j}},\;{{x}_{{j + 1}}},\quad\;{{x}_{{j + 2}}},$ в этих узлах он может оказаться разрывным. На практике обычно применяются непрерывные сплайны. В работе [4, с. 206] доказано, что сплайны (1.7) непрерывны лишь в случае, когда полная цепочка векторов ${{a}_{j}}$ в определении координатных сплайнов связана с вектор-функцией $\phi (t)$ следующим образом:
(1.9)
${{a}_{j}} = \phi ({{x}_{{j + 1}}}).$
Таким образом, аппроксимирующая функция $\tilde {u}(t)$ будет непрерывной, если ${{\phi }_{1}}(t) \in C({{R}^{1}})$ и координатные функции ${{\omega }_{j}}(t)$ в (1.1) вычисляются по формуле
(1.10)
${{\omega }_{j}}(t) = \left\{ {\begin{array}{*{20}{l}} {\frac{{\det (\phi ({{x}_{j}}),\phi (t))}}{{\det (\phi ({{x}_{j}}),\phi ({{x}_{{j + 1}}}))}},\quad t \in ({{x}_{j}},{{x}_{{j + 1}}}),} \\ {\frac{{\det (\phi (t),\phi ({{x}_{{j + 2}}}))}}{{\det (\phi ({{x}_{{j + 1}}}),\phi ({{x}_{{j + 2}}}))}},\quad t \in ({{x}_{{j + 1}}},{{x}_{{j + 2}}}),} \\ {0,\quad t \notin [{{x}_{j}},{{x}_{{j + 2}}}].} \end{array}} \right.$
Из формулы (1.10) следуют равенства: ${{\omega }_{j}}({{x}_{{j + 1}}}) = 1$, ${{\omega }_{j}}({{x}_{j}}) = {{\omega }_{j}}({{x}_{{j + 2}}}) = 0$. Поэтому функция (1.8) при ${{c}_{j}} = u({{x}_{{j + 1}}})$ принимающая вид
(1.11)
$\tilde {u}(t) = u({{x}_{j}}) \cdot {{\omega }_{{j - 1}}}(t) + u({{x}_{{j + 1}}}) \cdot {{\omega }_{j}}(t),$
интерполирует функцию $u(t)$ в узлах ${{x}_{j}},\;{{x}_{{j + 1}}}$. В работе [5] доказано, что если $u \in {{C}^{2}}(\alpha ,\beta )$, то функция (1.11) обеспечивает 2-й порядок аппроксимации:
(1.12)
$\left| {u(t) - \tilde {u}(t)} \right| \leqslant C{{h}^{2}},\quad t \in (\alpha ,\beta ),$
где $C = {\text{const}} > 0$, зависит от $u(t)$ и $\phi (t)$, но не зависит от $h$. В случае, когда $u(t) = {{\phi }_{1}}(t)$ выполняется тождество: $\tilde {u}(t) \equiv {{\phi }_{1}}(t)$ $\forall t \in (\alpha ,\beta )$.

В данной работе в численных экспериментах ограничимся промежутком $(\alpha ,\beta ) \equiv [0;1]$ и упомянутой выше равномерной сеткой.

В табл. 1 представлены результаты реализации аппроксимирующей функции (1.11), (1.10) на сетках с различными значениями сеточного параметра $h\quad$ и неполиномиальной генерирующей функцией $\phi (t) = {{\left( {1,\sin (t)} \right)}^{{\text{т }}}}$ для ряда модельных функций $u(t)$. Величина погрешности аппроксимации здесь и далее вычислялась по формуле: $r \equiv \mathop {{\text{max}}}\limits_{t = j\tau } \left| {u(t) - \tilde {u}(t)} \right|$, $\tau = 0.005$ – шаг контрольной сетки на [0; 1], а значения $j \in {\rm Z}$ таковы, что $t \in \left[ {0;1} \right]$.

Таблица 1.  

Зависимость погрешности аппроксимации $u(t)$ от величины сеточного параметра $h$ при генерирующей функции $\phi (t) = {{\left( {1,\sin (t)} \right)}^{{\text{т }}}}$

$u(t)$ ${{h}_{1}} = 0.1$ ${{h}_{2}} = 0.05$ ${{h}_{3}} = 0.01$
1 $\sin (t)$ 0.0 0.0 0.0
2 $t$ $7.0 \times {{10}^{{ - 3}}}$ $4.6 \times {{10}^{{ - 4}}}$ $1.9 \times {{10}^{{ - 5}}}$
3 ${{t}^{2}}$ $5.8 \times {{10}^{{ - 3}}}$ $1.5 \times {{10}^{{ - 3}}}$ $6.3 \times {{10}^{{ - 5}}}$
4 ${{{\text{e}}}^{t}}$ $7.8 \times {{10}^{{ - 3}}}$ $2.1 \times {{10}^{{ - 3}}}$ $8.6 \times {{10}^{{ - 5}}}$
5 $\cos (t)$ $2.1 \times {{10}^{{ - 3}}}$ $5.6 \times {{10}^{{ - 4}}}$ $2.3 \times {{10}^{{ - 5}}}$
6 $1{\text{/}}(1 + {{t}^{2}})$ $2.5 \times {{10}^{{ - 3}}}$ $6.2 \times {{10}^{{ - 4}}}$ $2.5 \times {{10}^{{ - 5}}}$
7 $\sqrt t $ $7.9 \times {{10}^{{ - 2}}}$ $5.5 \times {{10}^{{ - 2}}}$ $2.1 \times {{10}^{{ - 2}}}$
8 $\sin (3t)$ $1.1 \times {{10}^{{ - 2}}}$ $2.9 \times {{10}^{{ - 3}}}$ $1.1 \times {{10}^{{ - 4}}}$

Табл. 1 иллюстрирует аппроксимацию с оценкой типа (1.12) для всех рассматриваемых функций $u(t)$ на промежутке [0; 1]; эта таблица подтверждает закономерность изменения погрешности аппроксимации в соответствии с изменением величины сеточного параметра $h$ и порядком аппроксимации в (1.12). Указанная закономерность нарушается только для функции $u(t) = \sqrt t $, которая не имеет 1-й производной при $t = 0$.

Описанный выше подход к построению аппроксимирующей функции по заданной генерирующей функции $\phi (t) = {{(1,{{\phi }_{1}}(t))}^{{\text{т }}}}$ является экономичным и легко реализуется при различном выборе функции ${{\phi }_{1}}(t)$.

Из табл. 2 видно, что наименьшая погрешность аппроксимации для заданной функции достигается при ${{\phi }_{1}}(t) = t$ и ${{\phi }_{1}}(t) = {{{\text{e}}}^{{ - t}}}$. Наибольшая погрешность аппроксимации, как и следовало ожидать, оказывается при порождающих функциях ${{\phi }_{1}}(t) = \sin (t) + \sin (2t)$, ${{\phi }_{1}}\left( t \right) = \sin (3t)$, поскольку они не учитывают поведение аппроксимируемой функции.

Таблица 2.   

Зависимость погрешности аппроксимации $u(t) = \sin (t)$ при $h = 0.01$ от выбора генерирующей функции $\phi (t) = {{(1,{{\phi }_{1}}(t))}^{{\text{т }}}}$

${{\phi }_{1}}(t)$ $r$
1 $\cos (t)$ $2.5 \times {{10}^{{ - 3}}}$
2 $t$ $1.0 \times {{10}^{{ - 5}}}$
3 ${{t}^{2}}$ $2.5 \times {{10}^{{ - 3}}}$
4 ${{{\text{e}}}^{t}}$ $1.8 \times {{10}^{{ - 5}}}$
5 ${{{\text{e}}}^{{ - t}}}$ $1.2 \times {{10}^{{ - 5}}}$
6 $1{\text{/}}(1 + {{t}^{2}})$ $2.5 \times {{10}^{{ - 3}}}$
7 $\sin (t) + \sin (2t)$ $8.0 \times {{10}^{{ - 3}}}$
8 $\sin (3t)$ $7.7 \times {{10}^{{ - 3}}}$

2. АППРОКСИМАЦИИ ЭРМИТОВА ТИПА

Аналогично случаю построения неполиномиальных аппроксимаций лагранжева типа можно построить неполиномиальные аппроксимации эрмитова типа, если известны не только функция $u(t)$, но и ее производная $u{\kern 1pt} '(t)$ в узлах сетки.

Для построения аппроксимирующей функции $\tilde {u}(t)$ снова будем использовать равномерную сетку, введенную в предыдущем разделе, и полагать

(2.1)
$\tilde {u}(t) = \mathop \sum \limits_j \left( {{{c}_{j}} \cdot {{\omega }_{j}}(t) + {{{\hat {c}}}_{j}} \cdot {{{\hat {\omega }}}_{j}}(t)} \right),$
где ${{c}_{j}},\;{{\hat {c}}_{j}}$ – описываемые далее числовые коэффициенты, ${{\omega }_{j}}(t),\;{{\hat {\omega }}_{j}}(t)$ – координатные сплайны с заданным носителем

(2.2)
$\operatorname{supp} {{\omega }_{j}}(t) = \operatorname{supp} {{\hat {\omega }}_{j}}(t) = [{{x}_{j}},{{x}_{{j + 2}}}].$

Зададим четырехкомпонентную вектор-функцию $\phi (t) = {{(1,{{\phi }_{1}}(t),{{\phi }_{2}}(t),{{\phi }_{3}}(t))}^{{\text{т }}}}$, удовлетворяющую условиям

(2.3)
$\begin{gathered} {{\phi }_{i}} \in {{C}^{1}}({{R}^{1}}),\quad i = 1,2,3, \\ \det \quad\left( {\phi (x),\phi {\kern 1pt} '(x),\phi (y),\phi {\kern 1pt} '(y)} \right) \ne 0\quad \forall x,y \in (\alpha ,\beta ),\quad x \ne y. \\ \end{gathered} $
Будем искать координатные функции ${{\omega }_{j}}(t),\;{{\hat {\omega }}_{j}}(t)$ из аппроксимационных соотношений вида (см. [4, с. 429]):
(2.4)
$\mathop \sum \limits_j \quad\,\left( {\phi ({{x}_{j}}){{\omega }_{{j - 1}}}(t) + \phi {\kern 1pt} '({{x}_{j}}){{{\hat {\omega }}}_{{j - 1}}}(t)} \right) = \phi (t).$
Ввиду предположения (2.2) из (2.4) при $t \in ({{x}_{i}},{{x}_{{i + 1}}})$ получим

(2.5)
$\phi ({{x}_{i}}) \cdot {{\omega }_{{i - 1}}}(t) + \phi {\kern 1pt} '({{x}_{i}}) \cdot {{\hat {\omega }}_{{i - 1}}}(t) + \phi ({{x}_{{i + 1}}}) \cdot {{\omega }_{i}}(t) + \phi {\kern 1pt} '({{x}_{{i + 1}}}) \cdot {{\hat {\omega }}_{i}}(t) = \phi (t).$

Соотношение (2.5) соответствует системе линейных уравнений

(2.6)
$\begin{gathered} {{\omega }_{{i - 1}}}(t) + 0 \cdot {{{\hat {\omega }}}_{{i - 1}}}(t) + {{\omega }_{i}}(t) + 0 \cdot {{{\hat {\omega }}}_{i}}(t) = 1, \\ {{\phi }_{1}}({{x}_{i}}) \cdot {{\omega }_{{i - 1}}}(t) + \varphi _{1}^{'}({{x}_{i}}) \cdot {{{\hat {\omega }}}_{{i - 1}}}(t) + {{\varphi }_{1}}({{x}_{{i + 1}}}) \cdot {{\omega }_{i}}(t) + \varphi _{1}^{'}({{x}_{{i + 1}}}) \cdot {{{\hat {\omega }}}_{i}}(t) = {{\varphi }_{1}}(t), \\ {{\phi }_{2}}({{x}_{i}}) \cdot {{\omega }_{{i - 1}}}(t) + \varphi _{2}^{'}({{x}_{i}}) \cdot {{{\hat {\omega }}}_{{i - 1}}}(t) + {{\varphi }_{2}}({{x}_{{i + 1}}}) \cdot {{\omega }_{i}}(t) + \varphi _{2}^{'}({{x}_{{i + 1}}}) \cdot {{{\hat {\omega }}}_{i}}(t) = {{\varphi }_{2}}(t), \\ {{\phi }_{3}}({{x}_{i}}) \cdot {{\omega }_{{i - 1}}}(t) + \varphi _{3}^{'}({{x}_{i}}) \cdot {{{\hat {\omega }}}_{{i - 1}}}(t) + {{\varphi }_{3}}({{x}_{{i + 1}}}) \cdot {{\omega }_{i}}(t) + \varphi _{3}^{'}({{x}_{{i + 1}}}) \cdot {{{\hat {\omega }}}_{i}}(t) = {{\varphi }_{3}}(t) \\ \end{gathered} $
относительно неизвестных ${{\omega }_{{i - 1}}}(t),\;{{\hat {\omega }}_{{i - 1}}}(t),\;{{\omega }_{i}}(t),\;{{\hat {\omega }}_{i}}(t)$. Эта система однозначно разрешима для таких $\phi (t)$, которые удовлетворяют условиям (2.3), так как в этом случае имеем
${{W}_{i}} \equiv \det \left( {\phi ({{x}_{i}}),\phi {\kern 1pt} '({{x}_{i}}),\phi ({{x}_{{i + 1}}}),\phi {\kern 1pt} '({{x}_{{i + 1}}})} \right) \ne 0.$
Решение (2.6) может быть записано следующим образом:
$\begin{gathered} {{\omega }_{{i - 1}}}(t) = \det (\varphi (t),\varphi {\kern 1pt} '({{x}_{i}}),\varphi ({{x}_{{i + 1}}}),\varphi {\kern 1pt} '({{x}_{{i + 1}}})){\text{/}}{{W}_{i}}, \\ {{{\hat {\omega }}}_{{i - 1}}}(t) = \det (\varphi ({{x}_{i}}),\varphi {\kern 1pt} '(t),\varphi ({{x}_{{i + 1}}}),\varphi {\kern 1pt} '({{x}_{{i + 1}}})){\text{/}}{{W}_{i}}, \\ {{\omega }_{i}}(t) = \det (\varphi ({{x}_{i}}),\varphi {\kern 1pt} '({{x}_{i}}),\varphi (t),\varphi {\kern 1pt} '({{x}_{{i + 1}}})){\text{/}}{{W}_{i}}, \\ {{{\hat {\omega }}}_{i}}(t) = \det (\varphi ({{x}_{i}}),\varphi {\kern 1pt} '({{x}_{i}}),\varphi ({{x}_{{i + 1}}}),\varphi {\kern 1pt} '(t)){\text{/}}{{W}_{i}}. \\ \end{gathered} $
При $t \in \left( {{{x}_{{i + 1}}},\;{{x}_{{i + 2}}}} \right)$ аппроксимационное соотношение (2.4) принимает вид
$\phi ({{x}_{{i + 1}}}) \cdot {{\omega }_{i}}(t) + \phi {\kern 1pt} '({{x}_{{i + 1}}}) \cdot {{\hat {\omega }}_{i}}(t) + \phi ({{x}_{{i + 2}}}) \cdot {{\omega }_{{i + 1}}}(t) + \phi {\kern 1pt} '({{x}_{{i + 2}}}) \cdot {{\hat {\omega }}_{{i + 1}}}(t) = \phi (t).$
Отсюда, аналогично решению (2.6), находим
$\begin{array}{*{20}{c}} {{{\omega }_{i}}(t) = \det \quad\left( {\phi (t),\;\phi {\kern 1pt} '({{x}_{{i + 1}}}),\;\phi ({{x}_{{i + 2}}}),\;\phi {\kern 1pt} '({{x}_{{i + 2}}})} \right){\text{/}}{{W}_{{i + 1}}},} \\ {{{{\hat {\omega }}}_{i}}(t) = \det \quad\left( {\phi ({{x}_{{i + 1}}}),\;\phi (t),\;\phi ({{x}_{{i + 2}}}),\;\phi {\kern 1pt} '({{x}_{{i + 2}}})} \right){\text{/}}{{W}_{{i + 1}}}.} \end{array}$
В работе [4, с. 430] доказано, что если $\phi (t)$ удовлетворяет условиям (2.3), то координатные функции ${{\omega }_{i}}(t),\;{{\hat {\omega }}_{i}}(t)$ принадлежат пространству ${{C}^{1}}{\kern 1pt} \left( {\alpha ,\beta } \right).$ Таким образом, если задать генерирующую функцию $\phi (t)$ так, чтобы для нее выполнялись условия (2.3), то координатные функции ${{\omega }_{i}}(t),\;{{\hat {\omega }}_{i}}(t)$ будут принадлежать пространству ${{C}^{1}}{\kern 1pt} \left( {\alpha ,\beta } \right)$ и описываться формулами
(2.7a)
${{\omega }_{i}}(t) = \left\{ {\begin{array}{*{20}{l}} {\det \quad\left( {\phi ({{x}_{i}}),\phi {\kern 1pt} '({{x}_{i}}),\phi (t),\phi {\kern 1pt} '({{x}_{{i + 1}}})} \right){\text{/}}{{W}_{i}},\quad t \in ({{x}_{i}},{{x}_{{i + 1}}}),} \\ {\det \quad\left( {\phi (t),\phi {\kern 1pt} '({{x}_{{i + 1}}}),\phi ({{x}_{{i + 2}}}),\phi {\kern 1pt} '({{x}_{{i + 2}}})} \right){\text{/}}{{W}_{{i + 1}}},\quad t \in ({{x}_{{i + 1}}},{{x}_{{i + 2}}}),} \\ {0,\quad t \notin [{{x}_{i}},\;{{x}_{{i + 2}}}],} \end{array}} \right.$
(2.7б)
${{\hat {\omega }}_{i}}(t) = \left\{ {\begin{array}{*{20}{l}} {\det \left( {\phi ({{x}_{i}}),\phi {\kern 1pt} '({{x}_{i}}),\phi (t),\phi {\kern 1pt} '(t)} \right){\text{/}}{{W}_{i}},\quad t \in ({{x}_{i}},{{x}_{{i + 1}}}),} \\ {\det \quad\left( {\phi ({{x}_{{i + 1}}}),\phi (t),\phi ({{x}_{{i + 2}}}),\phi {\kern 1pt} '({{x}_{{i + 2}}})} \right){\text{/}}{{W}_{{i + 1}}},\quad t \in ({{x}_{{i + 1}}},{{x}_{{i + 2}}}),} \\ {0,\quad t \notin [{{x}_{i}},{{x}_{{i + 2}}}].} \end{array}} \right.$
Из (2.7a) , (2.7 б) следуют равенства
$\begin{array}{*{20}{c}} {{{\omega }_{i}}({{x}_{i}}) = {{\omega }_{i}}({{x}_{{i + 2}}}) = 0,\quad {{\omega }_{i}}({{x}_{{i + 1}}}) = 1,} \\ {{{{\hat {\omega }}}_{i}}({{x}_{i}}) = {{{\hat {\omega }}}_{i}}({{x}_{{i + 2}}}) = {{{\hat {\omega }}}_{i}}({{x}_{{i + 1}}}) = 0.} \end{array}$
Таким образом, в силу свойств координатных сплайнов (2.7), аппроксимирующая функция (2.1) с ${{c}_{j}} = u({{x}_{{j + 1}}})$, ${{\hat {c}}_{j}} = u{\kern 1pt} '({{x}_{{j + 1}}})$ при каждом содержит не более четырех слагаемых, отличных от нуля,
(2.8)
$\tilde {u}(t) = \mathop \sum \limits_j \,(u({{x}_{{j + 1}}}){{\omega }_{j}}(t) + u{\kern 1pt} '({{x}_{{j + 1}}}){{\hat {\omega }}_{j}}(t)) = u({{x}_{i}}){{\omega }_{{i - 1}}}(t) + u{\kern 1pt} '({{x}_{i}}){{\hat {\omega }}_{{i - 1}}}(t) + u({{x}_{{i + 1}}}){{\omega }_{i}}(t) + u{\kern 1pt} '({{x}_{{i + 1}}}){{\hat {\omega }}_{i}}(t),$
и является интерполянтой для заданной функции $u(t)$. В работе [6] показано, что если функции $u(t),\;{{\phi }_{i}}(t),$ $i = 1,2,3,$ принадлежат пространству ${{C}^{4}}{\kern 1pt} \left( {\alpha ,\beta } \right)$ и для $\phi (t)$ выполняется условие
(2.9)
$W(t) = \left| {{det\;}(\phi ,\phi {\kern 1pt} ',\phi {\kern 1pt} '',\phi {\kern 1pt} ''')(t)} \right| \geqslant c > 0\quad \forall t \in (\alpha ,\beta ),\quad c = {\text{const}} > 0,$
то аппроксимация (2.8), (2.7) для функции $u(t)$ точна на компонентах ${{\phi }_{i}}(t),\;i = 1,2,3,$ генерирующей функции $\phi (t)$, то есть $\tilde {u}(t) \equiv u(t),$ $u(t) = {{\phi }_{i}}(t)$ $\forall t \in \left( {\alpha ,\beta } \right);$ кроме того, справедлива оценка
(2.10)
$\left| {u(t) - \tilde {u}(t)} \right| \leqslant C{{h}^{4}}\quad\quad \forall t \in \left( {\alpha ,\beta } \right),$
где $C = {\text{const}} > 0,\;C$ зависит от $u(t),\;\phi (t)$ и их производных до 4-го порядка включительно, а также от значения константы $c$ из предположения (2.9).

В табл. 3 представлены результаты реализации аппроксимирующей функции $\tilde {u}(t)$ по формулам (2.8), (2.7) с различными по величине сеточными параметрами $h$ и генерирующей функцией $\phi (t) = {{(1,t,{{t}^{2}},{{t}^{3}})}^{{\text{т }}}}$.

Таблица 3.  

Зависимость погрешности аппроксимации $u(t)$ от величины сеточного параметра $h$ в случае генерирующей функции $\phi (t) = {{(1,t,{{t}^{2}},{{t}^{3}})}^{{\text{T}}}}$

$u(t)$ ${{h}_{1}} = 0.1$ ${{h}_{2}} = 0.05$ ${{h}_{3}} = 0.01$
1 $t$ $2.0 \times {{10}^{{ - 17}}}$ $7.6 \times {{10}^{{ - 17}}}$ $2.1 \times {{10}^{{ - 15}}}$
2 ${{t}^{2}}$ $3.6 \times {{10}^{{ - 17}}}$ $1.4 \times {{10}^{{ - 16}}}$ $3.7 \times {{10}^{{ - 15}}}$
3 ${{t}^{3}}$ $4.8 \times {{10}^{{ - 17}}}$ $1.9 \times {{10}^{{ - 16}}}$ $5.0 \times {{10}^{{ - 15}}}$
4 ${{e}^{t}}$ $6.7 \times {{10}^{{ - 7}}}$ $4.3 \times {{10}^{{ - 8}}}$ $7.0 \times {{10}^{{ - 11}}}$
5 $\cos (t)$ $2.6 \times {{10}^{{ - 7}}}$ $1.6 \times {{10}^{{ - 8}}}$ $2.6 \times {{10}^{{ - 11}}}$
6 $1{\text{/}}(1 + {{t}^{2}})$ $6.0 \times {{10}^{{ - 6}}}$ $3.9 \times {{10}^{{ - 7}}}$ $6.2 \times {{10}^{{ - 10}}}$
7 $\sin (t)$ $2.1 \times {{10}^{{ - 7}}}$ $1.3 \times {{10}^{{ - 8}}}$ $2.2 \times {{10}^{{ - 11}}}$
8 $\sin (3t)$ $2.1 \times {{10}^{{ - 5}}}$ $1.3 \times {{10}^{{ - 6}}}$ $2.1 \times {{10}^{{ - 9}}}$

Из табл. 3 видно, что аппроксимация с помощью функции (2.8), (2.7) точна на компонентах $t,\;{{t}^{2}},\;{{t}^{3}}$ генерирующей функции $\phi (t)$ (уклонение от нуля вызвано ошибками округления). Из этой таблицы также видно, что заданная генерирующая функция при различных значениях $h$ дает хорошую аппроксимацию для многих часто встречающихся на практике гладких функций. Такой выбор генерирующей функции соответствует известной аппроксимации кубическими эрмитовыми сплайнами [4, с. 431].

В табл. 4 представлены результаты численного исследования аппроксимирующих свойств функции (2.8), (2.7) в случае задания генерирующей функции с неполиномиальными компонентами: $\phi (t) = {{\left( {1,\sin (t),\cos (t),\sin (2t),} \right)}^{{\text{т }}}}$.

Таблица 4.  

Зависимость погрешности аппроксимации $u(t)$ от величины сеточного параметра $h$ при генерирующей функции $\phi (t) = {{\left( {1,\;\sin (t),\cos (t),\sin (2t)} \right)}^{{\text{T}}}}$

$u(t)$ ${{h}_{1}} = 0.1$ ${{h}_{2}} = 0.05$ ${{h}_{3}} = 0.01$
1 $t$ $7.3 \times {{10}^{{ - 6}}}$ $1.5 \times {{10}^{{ - 6}}}$ $6.6 \times {{10}^{{ - 8}}}$
2 ${{t}^{2}}$ $1.1 \times {{10}^{{ - 5}}}$ $2.5 \times {{10}^{{ - 6}}}$ $1.0 \times {{10}^{{ - 7}}}$
3 ${{t}^{3}}$ $5.8 \times {{10}^{{ - 5}}}$ $1.2 \times {{10}^{{ - 5}}}$ $5.1 \times {{10}^{{ - 7}}}$
4 ${{{\text{e}}}^{t}}$ $3.2 \times {{10}^{{ - 5}}}$ $6.9 \times {{10}^{{ - 6}}}$ $2.9 \times {{10}^{{ - 7}}}$
5 $\cos (t)$ $3.8 \times {{10}^{{ - 15}}}$ $9.3 \times {{10}^{{ - 14}}}$ $1.9 \times {{10}^{{ - 10}}}$
6 $1{\text{/}}(1 + {{t}^{2}})$ $5.5 \times {{10}^{{ - 6}}}$ $7.1 \times {{10}^{{ - 7}}}$ $3.0 \times {{10}^{{ - 8}}}$
7 $\sin (t)$ $3.7 \times {{10}^{{ - 15}}}$ $8.7 \times {{10}^{{ - 14}}}$ $1.9 \times {{10}^{{ - 10}}}$
8 $\sin (3t)$ $1.3 \times {{10}^{{ - 4}}}$ $2.7 \times {{10}^{{ - 5}}}$ $1.1 \times {{10}^{{ - 6}}}$

На компонентах $\sin (t),\;\cos (t)$ генерирующей функции при $h = 0.1$ аппроксимация точна (как и прежде уклонение от нуля вызвано ошибками округления). При уменьшении сеточного параметра $h$ точность вычислений может снижаться из-за ошибок округления. Сравнение величины погрешности для функций $t,\;{{t}^{2}},\;1{\text{/}}(1 + {{t}^{2}}),\;{{{\text{e}}}^{t}},\;\sin (3t)$ в табл. 1 и табл. 4 позволяет заключить, что аппроксимация эрмитова типа на 2 порядка лучше, чем аппроксимациия лагранжева типа.

В табл. 5 и табл. 6 представлены численные результаты аппроксимации модельных функций $u(t) = \sin (2t)$ и $u(t) = {{{\text{e}}}^{t}}$ соответственно. В них иллюстрируется зависимость погрешности аппроксимации эрмитова типа от выбора генерирующей функции $\phi (t)$ при сеточном параметре $h = 0.01$.

Таблица 5.  

Зависимость погрешности аппроксимации $u(t) = \sin (2t)$ при $h = 0.01$ от выбора генерирующей функции $\phi (t)$

$\phi (t)$ $r$
1 ${{(1,t,{{t}^{2}},{{t}^{3}})}^{{\text{т }}}}$ $4.2 \times {{10}^{{ - 10}}}$
2 $\left( {1,\sin (t} \right),\cos (t),\sin (2t){{)}^{{\text{т }}}}$ $2.7 \times {{10}^{{ - 10}}}$
3 ${{(1,{{{\text{e}}}^{t}},\sin (t),\cos (t))}^{{\text{т }}}}$ $3.5 \times {{10}^{{ - 10}}}$
4 $\left( {1,t,\sin (t} \right),\cos (t){{)}^{{\text{т }}}}$ $3.1 \times {{10}^{{ - 10}}}$
Таблица 6.  

Зависимость погрешности аппроксимации $u(t) = {{{\text{e}}}^{t}}$ при $h = 0.01$ от выбора генерирующей функции $\phi (t)$

$\phi (t)$ $r$
1 ${{(1,t,{{t}^{2}},{{t}^{3}})}^{{\text{т }}}}$ $7.0 \times {{10}^{{ - 11}}}$
2 $\left( {1,\sin (t} \right),\cos (t),\sin (2t){{)}^{{\text{т }}}}$ $2.9 \times {{10}^{{ - 7}}}$
3 ${{(1,{{{\text{e}}}^{t}},\sin (t),\cos (t))}^{{\text{т }}}}$ $2.5 \times {{10}^{{ - 12}}}$
4 $\left( {1,t,\sin (t} \right),\cos (t){{)}^{{\text{т }}}}$ $1.4 \times {{10}^{{ - 10}}}$

В строке 2 табл. 5 и в строке 3 табл. 6 указаны результаты численной аппроксимации функций $u(t)$, совпадающих с одной из компонент генерирующей вектор-функции $\phi (t)$. Как уже отмечалось, на величину погрешности могут существенно влиять ошибки округления. Поэтому при вычислениях на компьютере в этих случаях точного совпадения аппроксимируемой и аппроксимирующей функций нет. Однако из табл. 5 и 6 видно, что рассмотренные модельные потоки хорошо  аппроксимируются функциями вида (2.8), (2.7) при различных генерирующих функциях $\phi (t)$. Очевидно, что если известна предварительная информация о характере поведения функции $u(t)$, то можно задать наиболее подходящую генерирующую функцию $\phi (t)$. Если предварительной информации о поведении $u(t)$ нет, то представляется целесообразным в качестве генерирующей функции взять $\phi (t) = {{\left( {1,t,\sin (t),\cos (t)} \right)}^{{\text{т }}}}$.

Из табл. 7 видно, что для разнообразных входных функций при выбранной генерирующей вектор-функции обеспечивается хорошая аппроксимация с погрешностью не менее $C \times {{10}^{{ - 9}}},$ $C = {\text{const}}$, $C \in \left( {0;10} \right)$.

Таблица 7.  

Погрешность аппроксимации $u(t)$ при $h = 0.01$ и генерирующей функции $\phi (t) = {{\left( {1,t,\sin (t),\cos (t)} \right)}^{{\text{т }}}}$

$u(t)$ $r$
1 $t \cdot \sin (3t)$ $1.9 \times {{10}^{{ - 9}}}$
2 ${{{\text{e}}}^{t}} \cdot \sin (3t)$ $6.5 \times {{10}^{{ - 9}}}$
3 ${{{\text{e}}}^{{ - t}}} \cdot \sin (3t)$ $2.3 \times {{10}^{{ - 9}}}$
4 $\cos (0.5t) \cdot \sin (3t)$ $2.2 \times {{10}^{{ - 9}}}$
5 $1{\text{/}}(1 + {{t}^{2}})$ $5.7 \times {{10}^{{ - 10}}}$
6 ${{t}^{2}} \cdot \sin (t)$ $2.7 \times {{10}^{{ - 10}}}$
7 ${{t}^{3}}$ $1.6 \times {{10}^{{ - 10}}}$

В заключение отметим, что новый подход построения аппроксимирующей функции на основе сплайн-всплесковых разложений, описанный в [4], позволил разработать экономичную реализацию неполиномиальных сплайн-всплесковых аппроксимаций лагранжева и эрмитова типов высокой точности. Преимуществом рассматриваемых аппроксимаций является их точность на компонентах генерирующей функции.

Список литературы

  1. Завьялов Ю.С., Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. М.: Наука, 1980. 352 с.

  2. Малоземов В.Н., Певный А.Б. Полиномиальные сплайны. Л.: 1986. 120 с.

  3. Бурова И.Г., Демьянович Ю.К. Теория минимальных сплайнов. СПб.: Изд-во С.-Петерб. ун-та, 2000. 317 с.

  4. Демьянович Ю.К. Теория сплайн-всплесков. СПб.: Изд-во С.-Петерб. ун-та, 2013. 526 с.

  5. Демьянович Ю.К. Минимальные сплайны лагранжева типа // Сб. Проблемы математического анализа Вып. 50. 2010. С. 21–64.

  6. Демьянович Ю.К., Ле Т.Н.Б. Об аппроксимации сплайнами эрмитова типа // Пробл. матем. анализа. Вып. 73. 2013. С. 89–94.

Дополнительные материалы отсутствуют.

Инструменты

Журнал вычислительной математики и математической физики