Тема-01-03



Тема 1.3. Интерполяция функций

Перейти к Теме 1.2 Теме 1.4 Огл.

1.3.1. Постановка задачи

1.3.2. Интерполяционная формула Лагранжа

1.3.3. Интерполяционные формулы Ньютона

1.3.3.1. Конечные разности

1.3.3.2. Первая интерполяционная формула Ньютона

1.3.3.3. Вторая интерполяционная формула Ньютона

1.3.4. Сплайн – интерполяция

1.3.5. Сравнение интерполяционных многочленов по применению

1.3.6. Тестовые задания по теме «Интерполяция функций»

1.3.1. Постановка задачи

Вычисление значений функции y = f(x) – одна из тех задач, с которой приходится постоянно сталкиваться в инженерной практике. Однако сделать это не всегда возможно. Примером тому следующие типичные ситуации:

функция задана таблицей значений (нет аналитического выражения) ,(i = 0, 1, 2,…, n),необходимо вычислить значения функции в точках, не совпадающих с табличными;

аналитическое выражение f(x) есть, но получение ее значений затруднено громоздкими и сложными вычислениями;

значения функции в требуемых точках могут быть получены только экспериментально.

В этих и ряде других случаев возникает необходимость приближенного вычисления функции y = f(x).

Задача аппроксимациисостоит в следующем. Функцию f(x), заданную таблично, требуется приближенно заменить (аппроксимировать) некоторой функцией (х) так, чтобы отклонение (х) от f(x) в некоторой области удовлетворяло заданному условию. Функция (х) называется аппроксимирующей функцией.

В качестве аппроксимирующей функции часто используют алгебраический многочлен вида:

m(x) = a0 + a 1x + a 2x2 + … + amxm.(1.3.1-1)

В этом случае говорят о параболической аппроксимации.

Частным случаем задачи аппроксимации таблично заданной функции является интерполирование. Интерполирование состоит в следующем. Для функции y = f(x), заданной в (n + 1) точке , найти функцию (х), принимающую в этих точках заданные значения, то есть

,i = 0, 1, 2, … n.(1.3.1-2)

Будем называть (1.3.1-2) условием интерполяции, точки – узлами интерполяции, а функцию (х) – интерполирующей функцией.

При интерполяции критерием приближения аппроксимирующей функции к заданной является совпадение их значений в узлах интерполяции.

Геометрической интерпретацией задачи интерполяции является нахождение функции, график которой проходит через заданную систему точек , i = 0, 1, …, n (рис. 1.3.1-1). Если в качестве интерполирующей функции используется алгебраический многочлен (1.3.1-1) степени не выше n, то задача имеет единственное решение.

___ интерполируемая функция

—— интерполирующая функция

Рис.1.3.1-1

Применяя интерполирующую функцию (1.3.1-1), запишем условие (1.3.1-2) для каждого из (n + 1) узлов. В результате получим следующую систему (n + 1) линейных уравнений:

Эта система однозначно разрешима, так как ее определитель (определитель Вандермонда) отличен от нуля, если узлы интерполяции различны. Решение полученной системы n+1 линейных уравнений относительно неизвестных а0, а1, …, аn позволяет найти коэффициенты интерполирующего многочлена (1.3.1-1).

Пример 1.3.1-1.Пусть функция y = f(x) задана таблично:

xi

1

1.2

1.4

1.6

1.8

yi

0

-0.16

-0.24

-0.24

-0.16

Требуется построить интерполяционный многочлен, позволяющий вычислить значение f(x) в точке x = 1.43.

Полагая x0 = 1.2 , x1 = 1.4 , x2 = 1.6,

y0 =-0.16, y1 = -0.24, y2 = -0.24,получим систему уравнений

Решая систему уравнений, получим следующие значенияа0 = 2, а1 = -3, а2 = 1.Тогда интерполяционный многочлен имеет следующий вид: P2(x)=2 – 3x + x2,а значение многочлена в точке 1.43 равно P2(1.43)= -0.2451.

1.3.2. Интерполяционная формула Лагранжа

Пусть функция f(x) задана в (n + 1)узлах, произвольно расположенных на отрезке [a;b]:y0 = f(x0), y1 = f(x1), … yn = f(xn).

Требуется найти интерполирующий алгебраический многочленLn(x), степени не выше n, удовлетворяющий условию (1.3.1-2), такой, что:

L0 = y0, L1 = y1, …, Ln = yn. (1.3.2-1)

Будем искать Ln(x) вида:

Ln = Q0(x)y0 + Q1(x)y1 + … + Qn(x) yn, (1.3.2-2)

где Qi(x) – коэффициенты, зависящие только от узлов , i=0,1,…,nи текущего значения х.

Для того чтобы выполнялись условия интерполяции (1.3.2-1), требуется, чтобы коэффициенты Qi(x)удовлетворяли условию:

Действительно, чтобы L(х0)=y0, необходимо, чтобы в (1.3.2-2)

Q0(x0) = 1,Q1(x0) = 0, …, Qn(x0)=0.

В то же время в других узлах интерполяции первое слагаемое формулы 1.3.2-2, связанное с yi, должно быть равно нулю, то есть:Q0(xi) =0,i = 1, 2, … , n.

Этим требованиям отвечает коэффициент вида:

(1.3.2-3)

Поскольку в числителе Q0(x) записано произведение разностей со всеми узлами кроме х0, то Q0(x) обращается в ноль при х = хi ; i = 1, 2, … , n. В то же время при х = х0числитель и знаменатель дроби взаимно сокращаются и Q0(x0)=1.

Для того чтобы Ln(x1) = y1, коэффициенты в (1.3.2-2) должны принять значения:

Q1(x1) = 1; Q0(x1) = 0…Qn(x1) =0.

Чтобы в других узлах коэффициент Q1(x), связанный с yi, принял значение ноль,нужно, чтобы Q1(xi) = 0, i = 0, 2, 3, …, n. Тогда произведение разностей в числителе обращается в ноль во всех узлах, кроме х1, а при х = х1коэффициент равен 1.

Обобщая сказанное выше, получим выражение для Qi(x):

(1.3.2-4)

Для интерполяционного многочлена Лагранжа это выражение будет следующее:

. (1.3.2-5)

Несмотря на громоздкость (1.3.2-5), одним из преимуществ формулы Лагранжа является возможность ее записи непосредственно по заданной таблице значений функции. Для этого следует учесть следующее правило: формула содержит столько слагаемых, сколько узлов в таблице; каждое слагаемое – это произведение дробного коэффициента на соответствующее значение yi; числитель коэффициента при yi содержит произведение разностей х со всеми узлами кроме а знаменатель полностью повторяет числитель при х=.

Используя приведенные правила, получим формулы Лагранжа для двух узлов (n=1)линейная интерполяция:

для трех узлов (n=2)квадратичная интерполяция:

(1.3.2-6)

Оценку погрешности формулы Лагранжа определяют исходя из приближенного равенства

где m– число узлов, используемое в формуле.

Для того, чтобы уменьшить погрешность интерполяции, используется прием перенумерации узлов исходной таблицы, последовательно выбирая в качестве х0, , х2 и т.д. узлы, наиболее близко расположенные к искомой точке х, по возможности симметрично относительно точки х0. Такой прием позволяет уменьшить степень интерполяционного полинома для достижения требуемой точности (не использовать все заданные узлы).

Схемы алгоритма интерполяции с помощью формул Лагранжа приведены на рис. 1.3.2-1 и1.3.2-2.

Рис. 1.3.2-1. Схема алгоритма интерполяции по формуле Лагранжа

Рис. 1.3.2-2. Схема алгоритма процедуры-функции LX() вычисления многочлена

Лагранжа к-ой степени в точке xl

Пример 1.3.2-1.Пусть функцияy = f(x) задана таблично:

xi

1

1.2

1.4

1.6

1.8

y i

0

-0.16

-0.24

-0.24

-0.16

Требуется с использованием формулы Лагранжа вычислить значение f(x) в точке x = 1.45.

Перенумеруем узлы:

x0 = 1.4 y0 =-0.24

x1 = 1.6 y1 = -0.24

x2 = 1.2 y2 = -0.16

х3 = 1.8 y3 = -0.16

x4 = 1.0 y4 = 0.0 .

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

При n + 1 = 2 используем узлы x0 и x1

.

При n +1 = 3используем узлы x0 , x1 иx2

Для оценки погрешности используем соотношение

Если полученная величина соответствует заданной погрешности (например,=0.1), то вычисления прекращают. Если n, то количество узлов увеличивают.Вычисления повторяют до тех пор, пока не выполнится условие Rn≤.

Если, в соответствии с условиями поставленной задачи, требуется найти значения функции не в одной, а в нескольких точках, то рекомендуется провести преобразования формулы и получить многочлен в явном виде (Пример 1.3.1-1).

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

1.3.3. Интерполяционные формулы Ньютона

Рассмотрим случаи, когда интерполируемая функция y=f(x) задается в равноотстоящих узлах так, что = x0 +ih, где h – шаг интерполяции, а i = 0, 1, …, n.В этом случае для нахождения интерполяционного многочлена могут применяться формулы Ньютона, которые используют конечные разности.

1.3.3.1. Конечные разности

Конечной разностью первого порядка называется разность yi=yi+1-yi,где yi+1= f(xi+h) и yi = f(xi). Для функции, заданной таблично в (n+1) узлах,i = 0, 1, 2, …, n, конечные разности первого порядка могут быть вычислены в точках 0, 1, 2,…, n-1:

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

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

(1.3.3-1)

Для конечной разности kго порядка в узле с номером iсправедлива формула,позволяющая вычислять конечные разности с помощью таблицы конечных разностей:

.

Следует отметить, что по величине конечных разностей можно сделать вывод о степени интерполяционного полинома, описывающего таблично заданную функцию. Если для таблицы с равноотстоящими узлами конечные разностиk-го порядка постоянны или соизмеримы с заданной погрешностью, то функцию можно представить многочленом k-й степени.

Рассмотрим, например, таблицу конечных разностей для многочлена y=x2-3x+2.

Таблица 1.3.3-1

x

y

y

2y

3y

1.0

0

-0.16

0.08

0

1.2

-0.16

-0.08

0.08

0

1.4

-0.24

0

0.08

1.6

-0.24

0.08

1.8

-0.16

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

Введя понятие конечных разностей, рассмотрим еще две формы записей интерполяционных полиномов.

1.3.3.2. Первая интерполяционная формула Ньютона

Пусть функция y = f(x) задана в n+1 равноотстоящих узлах , i = 0, 1, 2, …, n, с шагомh. Требуется найти интерполяционный многочлен Pn(x)степени не выше n, удовлетворяющий условию:

Pn(xi) = yi, i =0, 1, 2, …, n .(1.3.3-2)

Будем искать интерполяционный многочлен вида:

Pn(x) =a0+a1(x-x0)+a2(x-x0)(x-x1)+ …+an(x-x0)(x-x1)…(x-xn-1),(1.3.3-3)

где аi, i =0,1,2,…,n–неизвестные коэффициенты, не зависящие от узлов интерполяции.

Для нахождения коэффициентов формулы Ньютона аiбудем подставлять в (1.3.3-3) значения х, совпадающие с узлами интерполяции, требуя выполнения условия (1.3.3-2).

Пусть х = x0, тогда, согласно (1.3.3-2), Pn(x0) =y0 = a0. Следовательно, a0=y0.

Пустьх = x1, тогда

Pn(x1) = y1 = a0+a1(x1-x0) = y0 +a1(x1-x0).(1.3.3-4)

Из равенства (1.3.3-4) следует, что

Теперь пусть х = х2 , тогда:

Выражая неизвестный коэффициент, получим:

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

Подставив найденные значения коэффициентов в (1.3.3-4), получим первую интерполяционную формулу Ньютона:

(1.3.3-5)

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

(1.3.3-6)

Тогда для вычисления значения функции, заданной табл. 1.3.3-1, при х = 1.45:

Отметим, что при использовании первой интерполяционной формулы Ньютона целесообразно выбирать х0близко к точке интерполяции (интерполяция вперед). Это обеспечивает более высокую точность при фиксированном числе узлов. Запись интерполяционного многочлена в виде первой формулы Ньютона позволяет учитывать дополнительные узлы в правой части таблицы, уточняя ранее полученный результат, без пересчета остальных слагаемых.

Введя обозначение: и проведя несложные преобразования вида:приведем (1.3.3-5) к виду:

(1.3.3-7)

Это второй вид записи формулы Ньютона для интерполирования вперед. Она применяется для интерполяции f(x) в окрестностях начального значения х0, где q – достаточно мало по абсолютной величине.

Если n=1, то из (1.3.3-6) получаем формулу линейной интерполяции

Если n=2, то получаем формулу квадратичной (или параболической) интерполяции

Схема алгоритма интерполяции по первой формуле Ньютона приведена на рис. 1.3.3-1.

Рис. 1.3.3-1. Схема алгоритма интерполяции по первой формуле Ньютона

1.3.3.3. Вторая интерполяционная формула Ньютона

Вторая формула Ньютона обладает аналогичными свойствами относительно левой части таблицы. Для ее построения используют многочлен вида:

Pn(x)=a0+a1(x-xn)+a2(x-xn)(x-xn-1)+ …+an(x-xn)(x-xn-1)…(x-x1),(1.3.3-8)

где аi, i =0, 1, 2, …, n – коэффициенты, не зависящие от узлов интерполяции.

Для определения коэффициентов аi будем в (1.3.3-8) поочередно подставлять узлы интерполяции. При х = xnPn(xn)=yn, следовательно, a0 = yn.

При х = xn-1имеем Pn(xn-1) = yn-1 =a0+a1(xn-1-xn)=yn+a1(xn-1-xn), откуда

Продолжая подстановку, получим выражение для всех коэффициентов многочлена (1.3.3-8) и запишем вторую интерполяционную формулу Ньютона:

(1.3.3-9)

Введя обозначение:

и, подставив х в (1.3.3-8), получаем формулу Ньютона для интерполяции назад:

(1.3.3-10)

Воспользуемся этой формулой для вычисления значения функции, заданной таблицей1.3.3-1, в точке х = 1.7.

Точка х=1.7 расположена в конце таблицы. В качестве узлов интерполяции выберем: х3=1.8, х2=1.6 и х1=1.4:

Погрешности интерполяционных формул Ньютона определяются соотношением:



Страницы: Первая | 1 | 2 | 3 | Вперед → | Последняя | Весь текст




map