Интерполяция кубическими сплайнами

Автор работы: Пользователь скрыл имя, 21 Января 2012 в 10:03, контрольная работа

Описание

Рассматривается как происходит интерполяция сплайнами. Формальная постановка, метод прямой и обратной прогонки

Содержание

•1 Введение
◦1.1 Постановка математической задачи
•2 Изложение метода
◦2.1 Метод прогонки
◦2.2 Пример: интерполирование неизвестной функции
•3 Ошибка интерполяции
◦3.1 Пример: интерполяция синуса
•4 Список литературы
•5 См. также

Работа состоит из  1 файл

Интерполяция кубическими сплайнами.docx

— 142.57 Кб (Скачать документ)

Интерполяция кубическими  сплайнами

Содержание  

[убрать]

  • 1 Введение
    • 1.1 Постановка математической задачи
  • 2 Изложение метода
    • 2.1 Метод прогонки
    • 2.2 Пример: интерполирование неизвестной функции
  • 3 Ошибка интерполяции
    • 3.1 Пример: интерполяция синуса
  • 4 Список литературы
  • 5 См. также

Введение

Постановка  математической задачи

Одной из основных задач  численного анализа является задача об интерполяции функций. Пусть на отрезке   задана сетка   и в её узлах заданы значения функции  , равные  . Требуется построить интерполянту — функцию  , совпадающую с функцией   в узлах сетки:

( 1 )

Основная цель интерполяции — получить быстрый (экономичный) алгоритм вычисления значений   для значений  , не содержащихся в таблице данных.

Интерполируюшие функции  , как правило строятся в виде линейных комбинаций некоторых элементарных функций:

где   — фиксированный линейно независимые функции,   — не определенные пока коэффициенты.

Из условия (1) получаем систему из   уравнений относительно коэффициентов  :

Предположим, что система  функций   такова, что при любом выборе узлов   отличен от нуля определитель системы:

.

Тогда по заданным   однозначно определяются коэффициенты  .

Изложение метода

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

Кроме того, на границе  при   и   ставятся условия

( 2 )

Будем искать кубический полином в виде

( 3 )

Из условия   имеем

( 4 )

Вычислим производные:

и потребуем их непрерывности  при  :

( 5 )

Общее число неизвестных  коэффициентов, очевидно, равно  , число уравнений (4) и (5) равно  . Недостающие два уравнения получаем из условия (2) при   и  :

Выражение из (5)  , подставляя это выражение в (4) и исключая  , получим

Подставив теперь выражения  для   и   в первую формулу (5), после несложных преобразований получаем для определения   разностное уравнение второго порядка

( 6 )

С краевыми условиями

( 7 )

Условие   эквивалентно условию   и уравнению  . Разностное уравнение (6) с условиями (7) можно решить методом прогонки, представив в виде системы линейных алгебраических уравнений вида  , где вектор   соответствует вектору  , вектор   поэлементно равен правой части уравнения (6), а матрица   имеет следующий вид:

 

где   и  .

Метод прогонки

Метод прогонки, основан на предположении, что искомые неизвестные связаны рекуррентным соотношением:

( 8 )

Используя это соотношение, выразим   и   через   и подставим в i-e уравнение:

,

где   - правая часть i-го уравнения. Это соотношение будет выполняться независимо от решения, если потребовать

Отсюда следует:

Из первого уравнения  получим:

После нахождения прогоночных коэффициентов   и  , используя уравнение (1), получим решение системы. При этом,

Пример: интерполирование неизвестной  функции

Построим интерполянту для для функции  , заданной следующим образом:

Вводные значения для  задачи интерполяции

1 1.0002
2 1.0341
3 0.6
4 0.40105
5 0.1
6 0.23975

В результате интерполяции были рассчитаны следующие коэффициенты интерполянты:

Результат интерполяции

Интервал
1,0002 -0,140113846 0,440979231 -0,266965385
1,0341 -0,291901538 -0,359916923 0,217718462
0,6 -0,22553 0,293238462 -0,266658462
0,40105 -0,100328462 -0,506736923 0,306015385
0,1 -0,134456154 0,411309231 -0,137103077

Ошибка интерполяции

Нас будет интересовать поведение максимального уклонения  сплайна от интерполируемой функции  в зависимости от максимального  расстояния между соседними узлами интерполирования, т.е. зависимость  величины

от шага h, где  .

Известно, что если функция   имеет четыре непрерывные производные, то для ошибки интерполяции определенным выше кубическим сплайном   верна следующая оценка

причем константа   в этом неравенстве является наилучшей из возможных

Пример: интерполяция синуса

Постром интерполянту функции   на отрезке  , взяв равномерно отстоящие узлы с шагом 0.5 и шагом 0.25, и сравним полученные результаты.

  Ошибка  интерполяции Оценка  ошибки Иллюстрация
0.429685 3.(3)

Результат интерполяции sin(4x) с шагом 0.5

0.005167 0.208(3)

Результат интерполяции sin(4x) с шагом 0.25

Как видно из полученных иллюстрации, уже при шаге 0.25 интерполянта визуально ничем не отличается от исходной функции.

Код программы на языке С++ с помощью которой были произведены все расчеты, можно скачать тут.

Информация о работе Интерполяция кубическими сплайнами