ISSN 2079-3316 ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ т. 9, №4(39), с. 69-92 УДК 519.652.3
С. В. Знаменский
Численная оценка точности интерполяции несложных элементарных функций
Аннотация. Сравнение точности восстановления элементарных функций по значениям в узлах проведено для алгоритмов интерполяции низкой степени. Результаты тестирования представлены в графическом виде, наглядно демонстрирующем преимущества и недостатки широко используемых кубических интерполяционных сплайнов.
Сравнение выявило, что вопреки распространённому мнению гладкость интерполянт не связана непосредственно с точностью аппроксимации. На рассмотренных 20 разнородных примерах кусочно-квадратичная интерполяция редко и ненамного уступает в точности используемым классическим кубическим сплайнам, зачастую на порядки превосходя в точности многие из них.
В нескольких примерах высокая погрешность интерполяции несложных элементарных функций по фиксированной сетке оказалась практически независимой от степени алгоритма и гладкости интерполянты, в одном из них точнее всех неожиданно оказалась кусочно-линейная интерполяция.
Поставлена задача поиска локального алгоритма интерполяции, точно восстанавливающего рациональные функции второго порядка.
Ключевые слова и фразы: локальная интерполяция, рациональная интерполяция, интерполяция сплайнами, точность восстановления.
Введение
Задача восстановления кусочно-аналитической на отрезке [а, Ь] вещественной функции /(х) по вектору у = (уо, ...,Уп) её п + 1 значений у^ = /(х^) в точках хо < ••• < Хп,...,п вещественной прямой имеет многотысячелетнюю историю [1] и разнообразные обобщения и применения. В ходе разноплановых исследований выросло необозримое в короткой статье множество убедительно стройных теорий интерполяции (см., например, [2—6]), ориентированных на оптимальные алгоритмы для многочисленных приложений.
© С. В. Знаменский, 2018
© Институт программных систем имени А. К. Айламазяна РАН, 2018
© Программные системы: теория и приложения (дизайн), 2018
N0 К^Жв
Сосредоточимся на доступных с исходным кодом алгоритмах интерполяции, позволяющих восстанавливать простую зависимости по немногим заданным значениям. Такой контекст естественно возникает при анализе труднодоступных экспериментальных данных. Кроме того, выявление слабых мест алгоритмов с этой теряющей популярность точки зрения может привести к появлению новых задач, решение которых могло бы повысить качество интерполяции в других приложениях.
Дальнейшее изложение ориентируется на два практически значимых критерия качества интерполяции:
(1) Локальность — зависимость интерполянты только от значений в ближайших I узлах справа и I узлах слева, I—радиус локальности.
(2) Точность восстановления наиболее простых и употребительных функций.
Локальность позволяет избежать граничных эффектов связанных с неудачно выбранными граничными условиями, обеспечивает линейную оценку вычислительной сложности и простоту распараллеливания длинной сетки узлов. При обработке изображений локальность обеспечивает чёткость масштабирования фотографий, при поточной обработке сигнала радиус локальности определяет время задержки, а при восстановлении по значениям на сетке кусочно-аналитических функций одной переменной или функций с особыми точками вблизи отрезка интерполяции локализует потери точности восстановления вблизи особых точек.
Точность восстановления наиболее простых функций это объективный и проверяемый признак качества интерполяции. Однако и этот признак таит подводный камень. Колмогоровская сложность очевидно зависит от языка программирования, и нет убедительно однозначного ответа на вопросы, что сложнее:
— Многочлен либо дробно-линейная функция?
— Косинус либо плотность нормального распределения вероятности?
Наложив один график на другой и выделив точки пересечения графиков, нетрудно получить исходные данные для задачи интерполяции, которая имеет два резко различающихся безупречно точных решения.
Мы видим, что, требуя от интерполирующего алгоритма качественного восстановления простой в интуитивном понимании функции, необходимо учитывать подобные двусмысленные постановки задачи интерполяции.
Для выявления влияния и гладкости интерполянты рассмотрим простую формулу локального квадратичного непрерывного (не обязательно
гладкого) интерполирующего сплайна и оценим точность интерполяции на примерах простых элементарных функций, анализируя конкретные ситуации, возникающие при сравнении.
1. Формула кусочно-квадратичной интерполяции
Формулы кусочно-квадратичной интерполяции между узлами с заданными значениями различаются способом получения коэффициента при старшей степени к» в интерполяционной формуле Ньютона Рг(х) = у» + (х - х»)(ш» + к» (х - Х+)), где Ш» =
- первая
разделённая разность. Этот коэффициент обычно принимается равным второй разделённой разности А» = , но более точно может
быть получен из значения интерполянты утг = уг + 1г(шг + кг1г) в середине отрезка [хг,хг + 1], где I» = Хг+2 Х — половина длины отрезка. Используя для нахождения этого значения интерполяционную формулу Лагранжа по четырём ближайшим узлам, получаем простую кусочно-квадратичную формулу интерполяции:
(1) / (х) = у г + (х - х») (Шг + кг(х - хт)),
где
Ао + (А! - Ао),
хз - хо
к» = <
А» +
4+2
(А - А»-1),
г = 0,
0 < г < п - 1,
х»+2 - х»-1
Ап-2 + П-1 _——(Ап-з - Ап-2) г = п - 1.
хп хп—3
Хотя точных ссылок найти не удалось, за тысячелетнюю истории квадратичной интерполяции эти простые формулы несомненно уже в каком-нибудь виде использовались.
2. Сохранение формы при квадратичной интерполяции
Квадратичность интерполянты обеспечивает легко проверяемые точные условия сохранения формы.
Замечание 1. Метод не всегда сохраняет выпуклость, но сохранение выпуклости легко обеспечить, положив к» = 0 для тех 0 < г < п - 1, для которых АгАг+1 > 0, но вычисленное к» имеет знак, противоположный знаку А» + А»+1.
Замечание 2. Несохранение монотонности или знака выявляется
точным условием
. Сохранение знака и монотонности
ж»+1 -
при необходимости может быть легко гарантировано заменой там, где это условие оказывается нарушено, вычисленного значения А0 на взятое с тем же знаком значение „, —г.
—ж^)
Замечание 3. Сохранение верхзней и нижней границ внутри сегмента образа [а, Ь] контролируется точным условием
( /Ь - Уг + /Ь - Уг+Л < 2А0 < ( а + /уг+1 - а
\ хг+1 хг ] \ хг+1 хг
и обеспечивается заменой (там, где это условие оказывается нарушено) вычисленного значения А0 на значение ближайшего ограничения.
Хотя эти простые ограничения сохранения формы являются точными, а соответствующие им дополнения кода несложными, они не включены в испытания этой работы. В рассмотренной постановке задачи они редко что-то меняют, а меняя обычно снижают точность восстановления.
3. Численная оценка качества интерполяции
Численного сравнения результатов интерполяции элементарных функций проводилось по максимальной, средней и средне-квадратичной погрешности.
Интегралы в стандартных формулах для среднего и среднего квадратичного вычислялись по формуле трапеций с 12 равноотстоящими промежуточными узлами на каждом сегменте интерполяции и по этим же значениям строились графики.
Каждый рисунок состоит из двух. На верхнем графики функции и её интерполянт, на нижнем — графики ошибок интерполяции в масштабе, позволяющем их увидеть и сопоставить. Программа, рассчитывающая отклонения и рисующая графики в LTEX2£ TikZ/PGF, реализована на
Perl и приложена к статье.
Для сравнения с описанным квадратичным сплайном были использованы все наиболее доступные реализации кубических сплайнов. В сравнение включены практически используемые алгоритмы, реализованные в активно развивающихся библиотеках: открытой GSL (GNU Scientific Library) и многоязычной отечественной AlgLib, на которых
базируется разнообразное современное программное обеспечение. Из них лишь сплайн Стеффена [9] (далее Б) и негладкий кубический сплайн, см., например, [10] (далее С) имеет тот же радиус локальности I = 2, что и тестируемый квадратичный 0, и только кусочно линейная интерполяция L имеет меньший радиус локальности.
Для сравнения с результатами для нелокального дважды гладкого кубического сплайна (использовались два типа граничных значений для непериодических задач интерполяции — параболический Р, точно восстанавливающий квадратичные полиномы, и естественный N1, с нулевыми значениями производной на концах).
Реализованный в ОЯЬ алгоритм Х.Акимы (А) [8] также включён в сравнение. Другие локальные сплайны, использующие данные из более чем двух соседних узлов с каждой стороны как например [7,11—13], не рассматриваются, поскольку ослабление локальности до I = 3 по итогам тестирования в [14] ожидаемо допускает гораздо более высокую точность интерполяции аналитических функций.
3.1. Эксперименты на равномерной сетке
Целью экспериментов на равномерной сетке интерполяционных узлов было сравнение поведения различных сплайнов радиуса локальности I = 2 на функциях различного поведения, от простого, без локальных экстремумов и перегибов, и кончая более сложным, с чередованием участков убывания-возрастания, а затем и с чередованием направлений выпуклости
3.1.1. Функции без точек перегиба
Погрешности интерполяции экспоненты видны на рис. 1, логарифма на рис. 2, простейшей рациональной функции у = Ух на рис. 3. По трём примерам видно, что при отсутствии точек локальных экстремумов и точек перегиба погрешность Р и 0 почти совпадают и заметно ниже, чем у остальных сплайнов. В точности та же картина повторяется и с функцией, имеющей график полуокружности на рис. 4, кроме крайних участков где все интерполяционные формулы срабатывают грубо из-за бесконечных производных приближаемой функции в крайних узлах.
Здесь важно отметить, что дважды гладкий кубический сплайн вероятно смог бы продемонстрировать лучшие результаты при удачном выборе краевых условий. Вряд ли возможно это сделать, не зная самой функции. В текущей версии ОЯЬ вторая производная на концах задана нулём (И), но гораздо лучший результат Р (например, в А^ЫЬ)
-3 -2 -10 1 2 3
Рис. 1. Интерполяция ex на [—3, 3]
1 2 3 4 5 6
Рис. 2. Интерполяция ln(x — 0.1) на [1, б]
Рис. 3. Интерполяция 1/х на [1, 6]
-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
Рис. 4. Интерполяция V25 — х2 на [-5, 5]
получается при параболическом задании /''(хо) = До и f ''(хп) = Дп-2 по трём крайним точкам. Заметим, что Р на краях определяется по четырём точкам и имеет видимое преимущество.
3.1.2. Интерполяция плотности нормального распределения
Классическим пробным камнем для алгоритмов интерполяции является функция плотности вероятности нормального распределения. Общая картина представлена графиками рис. 5—9 и существенно зависит от сетки интерполяционных узлов.
Когда точка максимума не попадает в узел интерполяции (Б на рис. 5), то методы, ориентированные на сохранение монотонности, резко теряют в точности, давая повышенную ошибку не только не экстремальном промежутке, но и как минимум на соседних с ним (Б на рис. 9). Ряд из них (как например Б на рис. 6) пытаются округлить заострённый график возле максимума в узле (Б на рис. 5).
Даже при попадании максимума в узел бросается в глаза сложная зависимость результата сравнения от шага (рис. 6 против рис. 7). При уменьшении шага сегменты интерполяции становятся более похожими, рис. 9.
1 0.8 0.6 0.4 0.2 0
2 1 0 -1 -2 -3 4
•10-
—^Е-^ А.....с С ь-Ь
-.-N М-р р —в в - -8 Б
-9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8
-0. 1х2
Рис.6. Интерполяция функции е . Х на [-8, 7]
1 0.8 0.6 0.4 0.2 0
0.5 0
-0.5 -1
—^Е-^-А.....с
---»— М-Р Р -г 8
ь
ь
А
ь
ь
ь
ь ,
-9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
Рис. 7. Интерполяция функции е-а05х на [-8, 5]
-2
10
ь
ь
1 0.8 0.6 0.4 0.2
2 0 -2 4
10-
-^Е-^ А.....с С ь-Ь
-.-» М-р р —в в - -в Б
ь
ь
ь ь ь
-9 -8 -7 -6 -5 -4 -3 -2 -10 1 2 3 4
-0.01(ж-0.5)2
Рис. 8. Интерполяция функции е
на [-8, 3]
1
0.9 0.8 0.7 0.6 0.5 0.4 0.3
—в— е - -а- - А.....С С ь-Ь
-■-N М-р Р—в в--в Б
2 1 0 1 2
3
4
5
-9 -8 -7 -6 -5 -4 -3 -2 -10 1 2 3 4
-0.01ж2
Рис. 9. Интерполяция функции е
на [-8, 3]
3
ь
ь
3
10
5 4 3 2 1 0
—^Е-^ А С !
—N N — р- р в
0.1 0.05 0
-0.05 -0.1
Рис. 10. Интерполяция функции у/0.02 + (х — 0.05)2 на [-4, 5]
В рассмотренных примерах Р и Р также явно лидируют среди локальных, а естественный кубический сплайн на рис. 5, 6, 8 и 9 также испорчен нулевыми граничными условиями.
3.1.3. Другие функции с точками перегиба
На многих рассмотренных примерах естественный кубический сплайн при правильном выборе граничных условий оказывается намного точнее локальных. Однако точность может теряться при крутых изгибах. В примере рис. 10 локальные Р и 0 заметно точнее.
К сожалению, такой выигрыш интерполяции радиуса локальности I = 2 неустойчив к сетке. Существенные различия в соотношении ошибок при разных конфигурациях узлов хорошо видны на рис. 11. Если особые точки не приближены к узлам, то положительный эффект негладкой стыковки в узлах компенсируется невозможностью представления негладкостей вне узлов и преимущество негладкого над естественным теряется на рис. 11.
Тем не менее преимущество негладких сплайнов над гладкими локальными остаётся явным. Оно сохраняется и для синуса, см. рис. 12.
Функции tg х (рис. 13), ак^ х (рис. 14) и 3х (рис. 15), показывают ситуацию большой общей ошибки алгоритмов, иллюстрирующей
1
0.8 0.6 0.4 0.2 0
0. 1 0.05 0
-0.05
5 10 15 20 25
Рис. 11. Интерполяция функции | еов(0.31ж)| на [2, 28]
1
0.5 0
-0.5 -1
•10-
—^Е-^-Л.....с С ь Ь
---» N -Р р —в в - -8 8
3 2 1 0 -1 -2 3
ь
ь
ь
■у---' р''--
/
-4 -3 -2 -10 1 2 3 4 Рис. 12. Интерполяция функции б1п(х/2) на [-4,4]
ь
ь
ь
ь
8 6 4 2 0 -2 -4 -6 -8
1.5 1
0.5 0
-0.5 -1 -1.5
-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
Рис. 13. Интерполяция функции tg(x/6.5) на [-5, 5]
1.5 1
0.5 0
-0.5 -1 -1.5
— А -С С Ь
10-2 —н— N — р- р 8
8 6 4 2 0 -2 -4 -6
-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
-^Е-^. А.....с С ь Ь
—» N р —» д - -8 8
,-ь---. Ь'5
'-ь' "■■ь-"
. • ь • -•. Ь". ь"-.
¥ ь ь
Рис. 14. Интерполяция функции аг<^(ж + 0.7) на [-5, 5]
1.5 1
0.5 0
-0.5 -1 1.5
0.4 0.2 0
-0.2 0. 4
—^Е-^- А.....с С Ь
—» N -р р д - -г 8
Ад ^
1/
-4 -3 -2 -10 1 2 3 4 Рис. 15. Интерполяция функции 3® на [-4,4]
•10-
.....с С-<--Ь
---»— N -р— р —^ ^ -8 8
Э С'Э С№
; Ь. ;
3 С Э ^ Э
Л
/ У/'^
С ¡зДъ-ГО
-3 -2 -10 1 2 3
Рис. 16. Интерполяция функции х2 по сетке СО 7600
2
1;
Ь
С
Ь'
1/
к-
и
ь.
ь.
Рис. 17. Интерполяция функции x4 по сетке CD 7600
ситуацию попытки приближения функции с бесконечной производной.
3.1.4. Интерполяция по неравномерной сетке
Естественно возник вопрос о специфичности сетки с равномерными отсчётами и ином подборе тестовых функций. Поиск в опубликованных статьях ранее использовавшего набора тестов на точность интерполяции элементарных функций выявил лишь тест в [11] «Control Data 7600», включающий неравномерную сетку с узлами -2.95, -2.6, -2.1, -1.8, -1.4, -1.0, -0.75, -0.3, -0.05, 0.2, 0.55, 0.9, 1.25, 1.6, 1.7, 2.1, 2.4, 3.0 и 5 тестируемых функций.
Результаты проведения этого теста, представленные на рис. 16-20, чётко подтвердили лидерство P и Q среди сплайнов радиуса локальности I < 3. На этом наборе примеров они успешно конкурируют даже с естественными сплайнами, неоднократно уверенно превосходя их в точности.
3.2. Сводные таблицы итогов тестирования
Численные оценки достигнутой в рассмотренных примерах точности аппроксимации представлены в трёх таблицах. Относительные
Рис. 1S. Интерполяция функции exp(x2/2) по сетке CD 76GG
Рис. 19. Интерполяция функции th(x) по сетке CD 76GG
Рис. 20. Интерполяция функции вш(ж) по сетке СБ 7600
максимальные погрешности приведены в таблице 1, относительные средние в таблице 2, а относительные среднеквадратичные — в таблице 3. Цветом выделены значения, более чем вдвое превосходящие лучшее из (других) сплайнов рассматриваемой локальности: менее чем вдвое; хуже в 2-5 раз; хуже в 5-10 раз; хуже в 10 и более раз.
3.2.1. Предварительные итоги
Таблицы, особенно последняя, показывают, что ни в одной испыты-вавшейся ситуации (сетка узлов, функция) точность квадратичного сплайна не уступила ни одному из других локальных сплайнов хотя бы в два раза, более чем в 20% случаев превзойдя в точности нелокальный естественный сплайн. В большинстве тестов видно не менее чем двукратное превосходство двух крайних справа над остальными сплайнами радиуса локальности I = 2.
Внимательное рассмотрение графиков показывает, что когда узлов немного (или функция часто изменяется) точность кусочно-квадратичных интерполянт слабо отличается от точности дважды гладких кубических сплайнов.
При этом ярко выделяются участки, на которых простые функции интерполируются крайне грубо. В рассмотренных примерах это
окрестности особых точек функции и места, где односторонняя или вторая производная многократно превышает средние значения или бесконечна (излом или вертикальная касательная на графике). Это дружные всплески погрешности на крайних участках в примерах рис. 4, 13 и внутри в примерах рис. 13-17.
Заметим, что в проведённом исследовании рассмотрены только линейные алгоритмы интерполяции на полиномиальной основе. Возникла гипотеза, что на этих участках интерполяция подобными алгоритмами затруднена. Для её проверки рассмотрим две ещё более выразительные функции рис. 21, 22.
Хорошо видно, что почти совпадающие ошибки всех алгоритмов достигли и превысили 50%. Хуже того, на последнем рисунке наименьшую погрешность (как максимальную так и среднеквадратичную) показала кусочно-линейная интерполяция. Это показывает, что рассмотренную постановку задачи интерполяции линейные алгоритмы на полиномиальной основе не решат.
Требуется алгоритм интерполяции, точно восстанавливающий все (точнее почти все) рациональные функции второй степени. Он не может быть линейным, поскольку линейная оболочка множества рациональных функций второй (и даже первой степени) бесконечномерна. В публикациях по теории интерполяции идей такого алгоритма не просматривается. Он мог бы повлиять на эффективность различных приложений методов теории аппроксимации, включая нелинейную регрессию и экстраполяцию.
Косвенно подтверждает эту мысль известная возможность существенно более точного, чем полиномами, приближения алгебраических и трансцендентных функций рациональными функциями. Такая возможность эффектно проиллюстрированная например в [15].
Выводы
1. Точность восстановления на участках с большими производными крайне низка и не зависит от сложности рассмотренных алгоритмов. Поиск алгоритма, безупречно восстанавливающего рациональные функции второй степени, является новой интересной задачей.
2. Гладкость интерполянты и сохранение монотонности (выпуклости, знака) не гарантируют повышенной точности интерполяции. Задачи интерполяции, в которых эти качества не требуются, могут быть решены более простыми и экономными способами.
Таблица 1. Максимальная относительная погрешность интерполяции (в процентах)
ШвБЬ £огти1а Р N А Б 1_ С 0
-3..3 ех 2.38 4.87 2.41 6.37 8.56 1.41 1.58
1..6 1п(х - 0.1) 1.38 2.41 1.42 3.03 3.92 1.01 1.09
1..6 1/х 3.91 5.79 3.95 7.03 8.57 3.09 3.26
-5..5 ^16 - х2 12.14 14.04 12.38 15.36 16.12 11.28 11.53
-8..7 е-0.1(х+0.Б)2 0.20 0.20 2.13 4.88 4.88 0.96 0.96
-8..7 е-о.1х2 0.15 0.15 0.66 0.83 4.19 0.74 0.80
-8..5 е-0.05х2 0.07 0.22 0.25 0.33 1.20 0.07 0.07
-8..3 е-0.01(х-0.5)2 0.03 0.13 0.05 0.50 0.50 0.02 0.02
-8..3 е-0.01х2 0.04 0.11 0.06 0.17 0.49 0.01 0.02
-4..5 ^0.02 + (х - 0.05)2 2.17 2.17 1.85 1.92 2.18 1.57 1.60
2..28 | ОС8(0.4х)| 7.97 7.96 6.37 10.23 12.41 9.07 9.22
-4..4 вт(х/2) 0.07 1.15 0.79 2.08 3.06 0.25 0.23
-5.. 5 tan(x/3.3) 10.78 13.89 10.77 15.24 17.96 9.30 9.62
-5.. 5 arctan(x + 0.7) 1.42 1.42 2.06 2.27 5.13 2.21 2.18
-4.. 4 \[х 21.91 21.90 24.24 23.27 24.24 22.75 22.38
ОБ х2 0 0.37 0.21 0.61 1.03 0 0
ОБ 4 х4 0.59 2.26 1.45 3.38 5.21 0.08 0.20
ОБ exp(x2/2) 0.23 0.11 0.33 0.32 1.58 0.08 0.13
ОБ tanh(x) 0.07 0.07 0.23 0.18 1.84 0.17 0.18
ОБ Бт(х) 0.62 0.26 0.55 1.70 2.21 0.17 0.27
-5.. 5 х 1+5х2 47.85 47.85 59.03 50.71 59.03 52.31 51.83
-15..15 3 СОБ х 75.06 71.73 75.91 70.88 63.22 75.72 76.07
О
л
о
ь
Я)
л к
е
у
I
я л к
Таблица 2. Средняя относительная погрешность интерполяции (в процентах)
ШвБЬ £огти1а р N А Б 1_ С 0
-3..3 ех 1.96 3.95 1.66 4.35 8.53 1.46 1.46
1..6 1П(Х - 0.1) 0.37 0.67 0.31 0.70 1.36 0.29 0.29
1..6 1/х 1.71 2.63 1.28 2.73 4.04 1.41 1.41
-5..5 ^16 - х2 2.00 2.51 1.67 2.54 3.23 1.79 1.79
-8..7 е-0.1(х+0.Б)2 0.10 0.10 1.54 1.78 3.23 0.61 0.64
-8..7 е-о.1х2 0.11 0.11 0.56 0.61 3.03 0.63 0.65
-8..5 е-0.05х2 0.01 0.04 0.12 0.09 0.66 0.04 0.05
-8..3 е-0.01(х-0.5)2 0.00 0.02 0.02 0.11 0.25 0.01 0.01
-8..3 е-0.01х2 0.01 0.02 0.03 0.03 0.25 0.01 0.01
-4..5 ^0.02 + (х - 0.05)2 0.72 0.71 0.35 0.36 0.46 0.39 0.42
2..28 | ОС8(0.4х)| 1.23 1.22 0.71 1.31 1.66 1.09 1.10
-4..4 Б1П(Х/2) 0.03 0.34 0.34 0.61 2.07 0.12 0.13
-5.. 5 tan(x/3.3) 8.27 11.03 6.02 9.25 13.52 7.05 7.05
-5.. 5 arctan(x + 0.7) 0.32 0.31 0.41 0.48 1.42 0.48 0.49
-4.. 4 \[х 4.90 4.83 6.25 4.51 5.34 4.89 4.89
ОБ х2 0 0.10 0.15 0.14 0.88 0 0
ОБ 4 х4 0.24 0.97 0.81 1.26 3.77 0.06 0.11
ОБ exp(x2/2) 0.05 0.03 0.25 0.15 1.07 0.05 0.07
ОБ tanh(x) 0.01 0.01 0.08 0.04 0.49 0.04 0.04
ОБ б1П(х) 0.08 0.04 0.23 0.31 1.27 0.04 0.05
-5.. 5 х 1+5х2 15.15 15.05 18.95 13.39 15.92 15.15 15.15
-15..15 3 cos х 15.41 15.03 14.27 12.13 16.62 15.50 15.70
ТАБЛИЦА 3. Среднеквадратичная относительная погрешность интерполяции (в процентах)
mesh formula P N A S L C Q
-3..3 ex 0.23 0.48 0.21 0.60 0.91 0.15 0.16
1..6 ln(x - 0.1) 0.06 0.11 0.06 0.14 0.20 0.05 0.05
1..6 1/x 0.29 0.44 0.27 0.52 0.68 0.24 0.24
-5..5 V16 - x2 0.43 0.52 0.42 0.57 0.65 0.40 0.40
-8..7 e-0.1(x+0.6)2 0.01 0.01 0.16 0.25 0.31 0.06 0.06
-8..7 e-o.ix2 0.01 0.01 0.06 0.07 0.31 0.06 0.06
-8..5 e-0.05x2 0.00 0.01 0.01 0.01 0.07 0.00 0.00
-8..3 e-0.01(x-0.5)2 0.00 0.00 0.00 0.02 0.03 0.00 0.00
-8..3 e-0.01x2 0.00 0.00 0.00 0.01 0.03 0.00 0.00
-4..5 ^0.02 + (x - 0.05)2 0.11 0.11 0.08 0.08 0.10 0.08 0.08
2..28 | cos(0.4x)| 0.22 0.22 0.17 0.27 0.31 0.23 0.23
-4..4 sin(x/2) 0.00 0.05 0.04 0.10 0.23 0.01 0.01
-5.. 5 tan(x/3.3) 1.17 1.54 1.08 1.58 2.07 1.01 1.03
-5.. 5 arctan(x + 0.7) 0.05 0.05 0.08 0.09 0.21 0.08 0.09
-4.. 4 0.93 0.93 1.13 0.97 1.10 0.99 0.98
CD x2 0 0.02 0.02 0.03 0.08 0 0
CD 4 x4 0.04 0.15 0.10 0.22 0.42 0.01 0.01
CD exp(x2/2) 0.01 0.01 0.02 0.02 0.11 0.01 0.01
CD tanh(x) 0.00 0.00 0.01 0.01 0.07 0.01 0.01
CD sin(x) 0.02 0.01 0.03 0.06 0.15 0.01 0.01
-5.. 5 x 1+5x2 2.68 2.68 3.45 2.76 3.30 2.93 2.92
-15..15 3 cos x 2.60 2.53 2.63 2.38 2.58 2.64 2.64
О
л
о
ь
Я)
л
К
е
у
I
я л
К
0.3 0.2 0.1 0
-0.1 -0.2 0. 3
0. 2 0.15 0. 1 0.05 0
0.05 - 0. 1 0.15 - 0. 2
—в— E - -a- - A.....с C-l L
N P —Q- -s S
A
A
A^--^ CiVQS-AOLvQ:
-5 -4 -3 -2 -1 0 1 2 3 4 5 6
Рис.21. Интерполяция функции
1+5x2
3. При высоких требованиях к локальности сплайна (когда радиус локальности меньше 3) рассмотренный простой квадратичный сплайн сравним по точности с кубическими.
Список литературы
[1] E. Meijering. "A chronology of interpolation: from ancient astronomy to modern signal and image processing", Proceedings of the IEEE, 90:3 (2002), pp. 319-342. url 169
[2] P. Thevenaz, T. Blu, M. Unser. "Interpolation revisited", IEEE Transactions on Medical Imaging, 19:7 (2000), pp. 739-758. © d t69
[3] Б. И. Квасов. «Монотонная и выпуклая интерполяция весовыми кубическими сплайнами», Ж. вычисл. матем. и матем. физ., 53:10 (2013), с. 1610-1621. 69
[4] К. Ю. Осипенко. «Об оптимальных методах восстановления в пространствах Харди-С'оболева», Матам, сб., 192:2 (2001), с. 67-86.
^69
[5] M. Fuentes. "A high frequency kriging approach for non-stationary environmental processes", Environmetri.es, 12:5 (2001), pp. 469-483. 69
[6] N. C. Gabrielides, N. S. Sapidis. "C1 sign, monotonicity and convexity
6
x
0.5 0
-0.5 -1
0.8 0.6 0.4 0.2 0 0. 2 0. 4 0. 6 0. 8
—e— E - - A.....с C---L---L
N N -P P —в Q - -S S
15
10
10
15
Рис. 22. Интерполяция функции 3cos(x)
preserving Hermite polynomial splines of variable degree", Journal of Computational and Applied Mathematics, 343 (2018), pp. 662-707. d tea
[7] H. Akima. "A method of univariate interpolation that has the accuracy of a third-degree polynomial", ACM Transactions on Mathematical Software, 17:3 (1991), pp. .341-366. i 73
[8] H. Akima. A method of smooth curve fitting, ESSA Tech. Rep. ERL 101-ITS 73, U.S. Government Printing Office, Washington, D.C., 1969. t73
[9] M. Steffen. "A simple method for monotonic interpolation in one dimension", Astron. Astrophys., 239 (1990), pp. 443-450. t73
[10] O. Niemitalo. Polynomial interpolators for high-quality resampling of oversampled audio, 2001. url: 73
[11] T. R. Ellis, D. H. McLain. "Algorithm 514: A new method of cubic curve fitting using local data [E2]", ACM Transactions on Mathematical Software, 3:2 (1977), pp. 175-179.
[12] A. D. Maude. "Interpolation—mainly for graph plotters", The Computer J., 16:1 (1973), pp. 64-65. I 173
[13] J. M. Hyman. "Accurate monotonicity preserving cubic interpolation", SIAM J. Sci. and Stat. Comput., 4:4 (1983), pp. 645-654. tr3
[14] H. T. Huynh. "Accurate monotone cubic interpolation", SIAM J. Numer Anal., 30:1 (1993), pp. 57-100. i ' 73
5
0
5
[15] R. Schaback. "Adaptive rational splines", Constr. Approx6:2 (1990), pp. 167-179. d >t8e
Поступила в редакцию 05.10.2018 Переработана 24.10.2018
Опубликована 14.11.2018
Рекомендовал к публикации д.т.н. А. М. Цирлин
Пример ссылки на эту публикацию:
С. В. Знаменский. «Численная оценка точности интерполяции несложных элементарных функций». Программные системы: теория и приложения, 2018, 9:4(39), с. 69-92. d 10.25209/2079-3316-2018-9-4-69-92 @ http://psta.psiras.ru/read/psta2018_4_69-92.pdf
Об авторе:
Сергей Витальевич Знаменский
Научные интересы мигрировали от функционального анализа и комплексных аналогов выпуклости к основаниям разработки коллаборативного ПО, метрикам сходства и теории интерполяции
МИ 0000-0001-8845-7627 e-mail: [email protected]
Sample citation of this publication:
Sergej Znamenskij. "Numerical evaluation of the interpolation accuracy of simple elementary functions". Program Systems: Theory and Applications, 2018, 9:4(39), pp. 69-92. (In Russian).
10.25209/2079-3316-2018-9-4-69-92 @ http://psta.psiras.ru/read/psta2018_4_69-92.pdf
The same article in English: 10.25209/2079-3316-2018-9-4-93-116