Журнал вычислительной математики и математической физики, 2019, T. 59, № 5, стр. 731-738
О реализации неполиномиальной сплайновой аппроксимации
О. В. Белякова *
Балтийский федеральный ун-т
236041 Калининград, ул. А. Невского, 14, Россия
* E-mail: obelyakova@yandex.ru
Поступила в редакцию 02.10.2018
После доработки 22.12.2018
Принята к публикации 23.12.2018
Аннотация
В данной работе исследованы варианты обработки числовых потоков с использованием неполиномиальных сплайнов лагранжева и эрмитова типов. Рассматриваемые сплайны строятся из аппроксимационных соотношений, включающих генерирующую вектор-функцию с компонентами различного характера, в том числе неполиномиального. Здесь рассмотрены аппроксимации сплайнами лагранжева типа первого порядка и эрмитова типа третьего порядка. На ряде модельных примеров продемонстрирована эффективность построенных аппроксимаций для потоков из значений функции и потоков из значений функции и ее производной. Преимуществами рассматриваемых сплайнов являются простота их построения, максимальная гладкость, интерполяционные и аппроксимационные свойства, а также точность на априори заданных функциях (на компонентах генерирующей вектор-функции). Библ. 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)$ ищется в виде
где числовые коэффициенты ${{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},$(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.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}})}}.$Для $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.8)
$\tilde {u}(t) = {{c}_{{j - 1}}} \cdot {{\omega }_{{j - 1}}}(t) + {{c}_{j}} \cdot {{\omega }_{j}}(t).$(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.11)
$\tilde {u}(t) = u({{x}_{j}}) \cdot {{\omega }_{{j - 1}}}(t) + u({{x}_{{j + 1}}}) \cdot {{\omega }_{j}}(t),$В данной работе в численных экспериментах ограничимся промежутком $(\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}_{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.
№ | ${{\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),$(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} $(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.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} $(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.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),$(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.10)
$\left| {u(t) - \tilde {u}(t)} \right| \leqslant C{{h}^{4}}\quad\quad \forall t \in \left( {\alpha ,\beta } \right),$В табл. 3 представлены результаты реализации аппроксимирующей функции $\tilde {u}(t)$ по формулам (2.8), (2.7) с различными по величине сеточными параметрами $h$ и генерирующей функцией $\phi (t) = {{(1,t,{{t}^{2}},{{t}^{3}})}^{{\text{т }}}}$.
Таблица 3.
№ | $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}_{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.
№ | $\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.
№ | $\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)$ | $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], позволил разработать экономичную реализацию неполиномиальных сплайн-всплесковых аппроксимаций лагранжева и эрмитова типов высокой точности. Преимуществом рассматриваемых аппроксимаций является их точность на компонентах генерирующей функции.
Список литературы
Завьялов Ю.С., Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. М.: Наука, 1980. 352 с.
Малоземов В.Н., Певный А.Б. Полиномиальные сплайны. Л.: 1986. 120 с.
Бурова И.Г., Демьянович Ю.К. Теория минимальных сплайнов. СПб.: Изд-во С.-Петерб. ун-та, 2000. 317 с.
Демьянович Ю.К. Теория сплайн-всплесков. СПб.: Изд-во С.-Петерб. ун-та, 2013. 526 с.
Демьянович Ю.К. Минимальные сплайны лагранжева типа // Сб. Проблемы математического анализа Вып. 50. 2010. С. 21–64.
Демьянович Ю.К., Ле Т.Н.Б. Об аппроксимации сплайнами эрмитова типа // Пробл. матем. анализа. Вып. 73. 2013. С. 89–94.
Дополнительные материалы отсутствуют.
Инструменты
Журнал вычислительной математики и математической физики