Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция №6. Интерполирование.doc
Скачиваний:
62
Добавлен:
14.03.2016
Размер:
137.73 Кб
Скачать

Интерполирование, интерполяционные многочлены Лагранжа и Ньютона.

  1. Общая постановка задачи об интерполировании. Параболическое интерполирование.

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

Существуют разные способы получения таких функций. Один из них – интерполирование.

В общем виде задача интерполирования формулируется так:

Пусть n+1 в точках

х0, х1, х2, …, хn

заданы значения функции

y = f(х): f0) = y0, f1) = y1, ..., fn) = yn.

Требуется подобрать достаточно простую функцию φ(х), удовлетворяющую следующим условиям:

а) в точках х0, х1, х2, …, хn значения функции должны совпадать со значениями данной функции f(х):

φ(хk) = f(xk) = yk (k = 0, 1,2,…,n); (1)

б) при остальных значениях х из области определения должно выполняться приближенное равенство

f(x) φ(х) (2)

Функция φ(х) называется интерполирующей,

процесс ее построения – интерполированием,

а точки х0, х1, х2, …, хn, в которых значения интерполирующей функции должны совпадать с заданными значениями данной функции, - узлами интерполирования.

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

Если x[x0; xn], то процесс нахождения называется интерполяцией, иначе – экстраполяцией.

Параболическое интерполирование. Интерполирующая функция обычно подбирается из определенного класса функций. Часто в качестве такой функции берется многочлен Fn(x), который называется интерполяционным многочленом.

Интерполирование при помощи многочлена называется параболическим интерполированием, геометрический смысл которого состоит в том, что график данной функции f(x) заменяется параболой-графиком многочлена Fn(x); при этом графики имеют n+1 общую точку.

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

Пусть значения функции f(х) заданы в п + 1 узле интерполирования

х0, х1, х2, …, хn, причем

f0) = y0, f1) = y1, ..., fn) = yn.

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

Fп(х) = с0 xn+ с1хn-1 + ... + сn-1х +cn (3)

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

Fnk)= yk (k=0, 1,2, …, n). (4)

Для вычисления неизвестных коэффициентов многочлена на основании условия (4) составим систему уравнений:

Система (5) состоит из n + 1 уравнения; переменными считаются числа c0, c1, …,cn.

Составим определитель системы (5):

Этот определитель известен из курса высшей алгебры как определитель Вандермонда.

Поскольку узлы интерполирования х0, х1, х2, …, хn различны, то   0, следовательно, линейная система (5) имеет единственное решение, что означает существование и единственность интерполяционного многочлена Fn(х).

Следует заметить, что при решении различных задач используются различные записи интерполяционного многочлена.

Интерполяционный полином Лагранжа

Согласно условий (1), (2), предъявляемых к функции φ(х), запишем многочлен n-ой степени.

n

φ(х)≡Fn(x) = ∑ f(xi) pi(x) (6)

i=0

В узле xi многочлен (6) на основании (1) должен принимать значение fi. Значит, сомножитель pi(x) в точке xi должен быть равен 1,т.е.

pi (xi) = 1.

В то же время другие слагаемые многочлена (6) должны быть равны нулю, т.е.

pk (xi) = 0, ik, i, k = 0, 1, …,n.

Таким образом, мы сформулировали требования к сомножителю pi(x) , а именно:

pi (xi) = 1 , i = 0, 1, …,n (7)

pk (xi) = 0, i ≠ k; i, k = 0, 1, …,n. (8)

Сомножитель pi(x) называют вспомогательным многочленом степени n.

Учитывая свойство (8) и требование, чтобы многочлен pi(x) имел степень n, запишем:

pi(x) = ci (x-x0) (x-x1)… (x-xi-1) (x-xi+1) (x-xi+2)… (x-xn) (9)

где ci некоторый коэффициент.

При x = x0, x1,… xi-1, xi+1, … xn

pi(x) = 0.

Для определения ci обратимся к требованию (7). Из него следует:

pi(xi) = ci (xi-x0) (xi-x1)… (xi-xi-1) (xi-xi+1) (xi-xi+2)… (xi-xn) = 1

Тогда

ci = (10)

Сделав подстановку (10) в (9), получим окончательное выражение для pi(x):

pi(x) = (11)

Построенный многочлен (11), например, в точке x0 принимает значение p0(x0) = 1, а в остальных узлах – значения, равные нулю.

Многочлен p1(x) в точке x1 будет равен 1, а в остальных узлах обращается в 0, и т.д.

Таким образом, вспомогательный многочлен pi(x) полностью удовлетворяет требованиям (7), (8), а многочлен n-ой степени

n

Fn(x) = ∑ f(xi) pi(x)

i=0

является интерполяционным многочленом Лагранжа.

Замечание: многочлен Лагранжа целесообразнее использовать в задачах восстановления функции f(x) , когда точка интерполяции x расположена ближе к центру сетки.

Тестирование алгоритма

Рассмотрим функцию f(x), заданную таблицей:

xi

1

2

4

5

fi

2

1

2

3

Построим многочлен Лагранжа для этой функции.

F3(x) = 2 + 1 + 2 +3

Если вместо x подставить 1, то Fn(1)= f1 = 2,

при x = 4 Fn(4)= f3 = 2 и т.д.

Следовательно, построенный многочлен удовлетворяет главному условию (1).

Таким образом, тестирование алгоритма будет состоять в следующем:

  1. задать поочередно в качестве точек интерполяции табличные значения xi и получить соответствующие значения функции fi (при правильно работающей программе должно выполняться условие (1)).

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

Оценка погрешности интерполяционной формулы Лагранжа

Пусть:

f(x) – Fn(x) = Rn(x),

тогда

f(x) = Fn(x) + Rn(x), (12)

Разность Rn(x) называется остаточным членом формулы Лагранжа. Значение Rn(x) равно погрешности, которая получается при замене значения функции f(x) значением интерполяционного многочлена Fn(x).

Если предположить, что функция f(x) имеет на отрезке [a, b]

(a = min {xk}; b = max {xk}) производные до порядка n+1,

k k

то для остаточного члена можно получить формулу

Rn(x) = f(n+1)(ξ) (13)

где точка ξ [a, b] и зависит от точки х.

Формулу (13) можно записать иначе:

Rn(x) =n+1 (x). (14)

Если

max |f(n+1) (x)| Mn+1

x [a; b]

то получим оценку остаточного члена:

|Rn(x)| |n+1 (x)|. (15)

Пример. Для функции у= 2х построим интерполяционный многочлен Лагранжа, выбрав узлами интерполирования точки

x0 = - 1, x1 = 0, x2 = 1, x3 = 2.

Вычислим соответствующие значения функции:

у0= ½ , у1=1, у2=2, у3=4;

по формуле Лагранжа найдем:

F3(x) =x3 + x2 +x+1.

Оценим погрешность, которая получается при замене функции у= 2х многочленом F3(x). Производная четвертого порядка

F(4)(x) = 2x(ln 2)4.

На отрезке [-1; 2] функция 2x возрастает, поэтому 0< 2x <= 4.

M4 = 4 (ln 2)4, ln 2 = 0,693…<, поэтому M4 < 4 = 1.

4 (х) = x (x + 1)(x - 1)(x –2).

По формуле (15) получим:

Многочлен Ньютона

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

Если же точка интерполяции х расположена ближе к краям сетки, целесообразнее использовать многочлен Ньютона. Здесь возможны два случая:

  1. точка интерполяции х находится вблизи первого узла сетки х0 (полином Ньютона I);

  2. точка интерполяции х находится вблизи последнего узла сетки хn (полином Ньютона II).

Замечание. Построение многочлена Лагранжа основывается на вспомогательном многочлене pi(x).

В основе же построения многочлена Ньютона находится понятие конечной разности.

Определим понятие конечной разности.

Пусть функция задана таблицей с постоянным шагом h:

хi

х0

х1

хi

хn

уi

у0

у1

уi

уn

где хi = х0 + ih (i = 0, 1, …,n).

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

у0 =у1у0 = f(x1)f0);

у1 =у2у1 = f(x2)f1);

… … …

уn-1 =уnуn-1 = f(xn)fn-1).

Приращения разностей первого порядка называются разностями второго порядка:

2у0 =у1 – у0 ,

2у1 =у2 – у1.

Вообще разности любого порядка k определяются равенствами

kуm =k - 1уm +1 – k - 1уm.

Будем считать, что 0уm = уm.

Последовательно получаемые разности удобно записывать в форме таблицы:

хi

уi

уi

2уi

3уi

х0

у0

у0

х1

у1

2 у0

у1

3 у0

х2

у2

2 у1

у2

х3

у3

Пример. Построим таблицу конечных разностей для функции

y = cosx на отрезке [0; 0,7] с шагом h = 0,1.

Таблица будет иметь вид:

хi

уi 105

уi 105

2уi105

3уi105

4уi105

5уi105

0,0

1,00000

-500

( у0)

0,1

0,99500

-993

(2 у0)

-1493 (у1)

+13

(3 у0)

0,2

0,98007

-980

(2 у1)

+12

-2473 (у2)

25

(3 у1)

-2

0,3

0,95534

-950

(2 у2)

+10

-3428 (у3)

35

(3 у2)

-1

0,4

0,92106

-920

(2 у3)

+9

-4348 (у4)

44

(3 у3)

-3

0,5

0,87758

-876

(2 у4)

+6

-5224 (у5)

50

(3 у4)

0,6

0,82534

-826

(2 у5)

-6050 (у6)

0,7

0,76484

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

Пусть функция у = f(x) задана значениями в n+1 равноотстоящем узле. Будем искать выражение интерполяционного многочлена в виде:

Pn (х) = а0 + а1 (х – х0 ) + …+ аn (х – х0 )(х – х1 )… (х – хn-1) (1)

при этом потребуем, чтобы выполнялись условия:

Pn i) = fi) (i = 0,1, …,n), (2)

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

Для определения коэффициентов многочлена (1) используем условия (2).

При х = х0 Pn 0 ) = а0 = у0 а0 = у0

При х = х1 Pn 1 ) = а0 + а11 – х0 ) = у1

у1 = а0 + а1 h а1 =

а1=

При х = х2

Pn 2 ) = а0 + а12 – х0 )+ а22 – х0 )(х2 – х1) = у2

у2 = а0 + а12 –х0) + а22 – х0 )(х2 – х1) =

= у0 + (х0 +2h – х0) + а20 +2h – х0) h = у0 +2у0 + 2 h2 а2

С другой стороны

у2 = у1 + у1 = у0 + у0 + у1 = у0 + у0 + у1 - у0 + у0 = у0 + 2у0+ 2у0.

Тогда

у0 +2у0 + 2 h2 а2 = у0 + 2у0+ 2у0

а2 =

Аналогично, при х = х3 получим а3 =

и вообще

аk = (k = 0, 1, …, n)

Подставив найденные значения коэффициентов в (1), получим

Pn (х) = у0 + (х – х0 ) + (х – х0 )(х – х1 )+ …

+ (х – х0 )(х – х1 )… (х – хn-1)

Этот многочлен и называется первым интерполяционным многочленом Ньютона.

В силу единственности интерполяционного многочлена для всех х 0 ; хn] Pn(x) Fn(x), и поэтому остаточный член формулы Ньютона можно записать в виде:

Rn(x) =n+1 (x),

где n+1 (x)= (х – х0 )(х – х1 )… (х – хn)

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

Положим t = = t – 1; = t – 2;…; = tn +1

Pn (х) = Pn 0 + ht) = у0 +tу0 + 2 у0 + …+ n у0

Остаточный член в этом случае находится по формуле:

Rn(x) = f(n+1)(ξ) hn+1,

и абсолютную погрешность формулы можно оценить с помощью неравенства

/Rn(x)/ /t(t - 1)(t - 2)…(t - n)/ Mn+1

Замечание. Очевидно t = представляет собой число шагов, необходимых для достижения точки х, исходя из точки х0.

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

Первую интерполяционную формулу Ньютона обычно называют формулой "интерполирования вперед".

Если требуется найти значение функции f(x) при х = х*, то в качестве х0 выбирается ближайшее, меньшее х* значение аргумента.

Пример. Найти cos 0,05 по данным, приведенным в таблице конечных разностей и оценить погрешность.

Запишем многочлен Ньютона третьего порядка.

P3 (х) = у0 +tу0 + 2 у0 + 3 у0 ,

Возьмем х0 = 0,0  t == = 0,5.

Подставляя значения t и разностей в выражение P3 (х) получим:

P3 (0,05) = 1,0 +0,5 (-0,005) + (-0,00993) + 0,00013 0,99875;

Производная f 4(x) = cosx и M4 = cos0 = 1. Абсолютная погрешность оценивается так:

/Rn(0,05)/ |0,5(- 0,5)(- 1,5)(-2,5) | < 4*10-6

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