Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ 8-чис.мет.doc
Скачиваний:
6
Добавлен:
11.08.2019
Размер:
201.73 Кб
Скачать

ЛЕКЦИЯ 8

Итерполирование функций

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

Таблица 1

Х

х 0

Х1

...

х n

f ( x )

Y 0

Y1

...

yn

Требуется получить значение функции f для такого х Î[ х 0 , х n ], который не совпадает ни с одним из значений х i ( i = 0,1, .... , n ).

Очевидное решение этой задачи - вычислить значение функции в точке х, т.е. f (x). Но для этого необходимо знать аналитическое выражение функции f. Но очень часто аналитическое выражение функции бывает неизвестно. Тогда по исходной информации, содержащейся в таблице 1, строят некоторую приближающую функцию F, которую с определенной степенью точности можно использовать для вычислений, считая, что f( x ) » F ( x ).

При этом необходимо, чтобы в точках х i , ( i = 0,1,...,n) значения f( xi) строго совпадали со значениями F ( x i ), т.е. необходимо выполнение следующих равенств:

F ( x 0 ) = f ( x 0 ), F ( x 1 ) = f ( x 1 ), ..... , F ( x 0 ) = f ( x 0 ), (2)

Тогда процесс нахождения приближающей функции F называется интерполяцией ( или интерполированием ) , а точки х0 , х 1, .... , х n называются узлами интерполяции.

Приближающую функцию будем искать в виде многочлена, который называют интерполяционным многочленом. Обозначим его Ln (x). Степень этого многочлена не выше n и необходимо выполнение условий (2). Запишем общий вид многочлена

L n ( x ).

L n ( x ).= l0 ( x ) + l 1 ( x ) + .... + l n ( x ) , (3)

г де l i ( x ) - многочлен степени n, причем

y i , если i = k

l i ( x k ) = ( 4)

0, Если I ¹ k

Требование (4) с учетом (3) обеспечивает выполнение условий (2).

Многочлены l i ( x ) составим следующим образом:

li (x) = ci (x - x0 ) ( x - x1 ) ….. ( x - xi-1 ) ( x - xi+1 ) ( x-xn ) (5),

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

ci = yi / ( xi – x0) …… ( xi – x i-1) ( xi – x i+1) ….. ( xi – xn) .

Обратим внимание на то, что ни один из множителей, стоящих в знаменателе, не равен 0. Подставим ci в формулу (5) и далее с учетом (3) получим:

L n ( x ) = yi (6)

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

Для удобства ручного счета формулу (6) преобразовали следующим образом:

L n ( x ) = ( yi / Di ) (6 ‘ ) , где

= (x - x0 ) ( x - x1 ) ….. ( x - xi-1 ) ( x - xi+1 ) ( x-xn ) ,

D I = ( xi – x0) ( xi – x1) …… ( xi – x i-1) ( x – xi) ( xi – x i+1) ….. ( xi – xn) .

Рассмотрим конкретный пример.

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

X

1

3

4

f(x)

12

4

6

Из таблицы следует, что количество узлов интерполяции составляет n = 2.

Степень искомого многочлена будет не выше 2. Значения узлов интерполяции таковы:

x0=1, x1=3, x2=4. Для дальнейших расчетов используем формулу (6 ‘ ) . Получим следующие результаты.

П3 = (x – x0 ) (x – x1 ) (x – x2 ) = (x – 1) ( x – 3 ) ( x – 4 ).

Далее подробно распишем значения Di.

При i=0 D0 = (x-x0) (x0 – x1) (x0-x2) = ( x-1) (1-3) (1-4) = 6(x-1)

При i=1 D1 = (x1-x0) (xx1) (x1-x2) = ( 3-1) (x-3) (3-4) = -2(x-3)

При i=2 D2 = (x2-x0) (x2 – x1) (x-x2) = ( 4-1) (4-3) (x-4) = 3(x-4)

Подставляем полученные значения D0 , D1 , D2 в формулу (6 ‘ ) , получим

L 2 ( x ) = (x – 1) (x – 3) (x-4) y0/ D0 + y1/ D1 + y2/ D2 = (x – 1) (x – 3) (x-4)

12/ 6 / (x-1) + 4/ (-2) / (x-3)+ 6/ 3 / (x-4)

В результате сокращения дробей, раскрытия скобок и приведения побоюных членов окончательно получим

L 2 ( x ) = 2 x 2 – 12 x + 22. Это и есть искомый полином Лагранжа. Чтобы найти его значение в некоторой заданной точке достаточно координаты этой точки подставить в правую часть интерполяционного полинома Лагранжа.

Для составления алгоритма построения интерполяционного полинома Лагранжа воспользуемся формулой (6). Основной алгоритм целесообразно организовать в виде двойного цикла: во внутреннем цикле должны вычисляться n+1 значение многочленов – слагаемых вида ( i = 0,1,2,… n)

l i(x) = yi ,

( в числителе и в знаменателе содержится n скобок) , а во внешнем цикле должна накапливаться сумма L n ( x ) = l i (x).

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

Таблица исходных данных, содержащая значения узлов интерполяции и значения функции в них, должна вводится как 2 одномерных массива Х 0 : n и Y 0 : n , где n – количество узлов интерполяции. Затем вводится значение а, для которого надо найти f (a).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]