Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
выч мат А5.doc
Скачиваний:
33
Добавлен:
12.09.2019
Размер:
11.39 Mб
Скачать

Т5. Интерполирование функций. §1. Постановка задачи.

Пусть на отрезке [a,b] заданы точки х0, х1, …, хn которые называются узлами интерполяции, и значения некоторой функции y = f(x) в этих точках

y0=f(x0), y1=f(x1) …, yn=f(xn) (1)

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

F(x0)=y0, F(x1)=y1, …, F(xn)=yn (2)

Геометрически это означает, что нужно найти кривую y=F(x) некоторого определенного типа, проходящую через заданную систему точек Mi (xi , yi)

В такой общей постановке задача может иметь бесконечное множество решений или совсем не иметь решений. Эта задача становиться однозадачной, если вместо произвольной функции y=F(x) искать полином Pn(x) степени не выше n, удовлетворяющей условиям (2).

Pn(x0)=y0, Pn(x1)=y1, …, Pn(xn)=yn (3)

F(x)=Pn(x)=a0xn + a1xn+1 + … + an-1x + an

Этот многочлен имеет n+1 коэффициент.

Требуя для Pn(x) выполнения условий (3) получаем систему (n+1) уравнений с (n+1) неизвестными ai

(4)

Решая эту систему относительно неизвестных a0, a1, a2, …, an получим аналитическое выражение полинома Pn(x). Система (4) всегда имеет единственное решение, т.к. её определитель:

называемый определителем Вандермонда, ≠ 0.

Т.О. интерполяционный многочлен Pn(x) для функции y=f(x), заданной таблично существует и единственен.

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

Одной из целей задачи интерполяции является вычисление значения функции в произвольной точке xk.

При этом различаются интерполирование, когда xk [x0, xn] и экстраполирование, когда xk [x0, xn].

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

Пусть функция y=f(x) задана таблицей

xi

x0

x1

xn

f(xi)

y0

y1

yn

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

Ln(xi)=y­I, (3 )

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

Ln(x)=l0(x) + l1(x) + … + ln(x) (5)

где: li(x) – многочлен степени n, причем

li(xk) = (6)

Очевидно, что требование (6) с учетом (5) вполне обеспечивает выполнение условий (3 ).

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

li(x)=ci­(x-x0)( x-x1) … (x-xi-1)(x-xi+1) … (x-xn) (7)

где: ci – постоянный коэффициент и его значение найдем из того, что

li (xk)=yi, если i=k, т.е.

Подставив ci­ в (7) найдем li(x), а затем L(n) с учетом (5), т.е.

(8)

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

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

x – x0

x0 – x1

x0 – x2

x0 – xn

0

0

x1 – x0

x – x1

x1 – x2

x1 – xn

1

f1

x2 – x0

x2 – x1

x – x2

x2 – xn

2

f2

xn – x0

xn – x1

xn – x2

x – xn

n

fn

Пn+1(x)=(x – x0)(x – x1) … (x - xn)

i

fi

Здесь ∆i – произведение элементов i-ой строки,

Пn+1(х) – произведение элементов главной диагонали,

yi=f(xi)=fi, .

Тогда многочлен Лагранжа может быть записан в форме:

(9)

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

I

0

1

2

3

xi

2

3

4

5

fi

7

5

8

7

Вычислить значение функции в точке х=2,5.

Решение:

Составим таблицу:

x – 2

2 – 3

2 – 4

2 – 5

-6(x – 2)

7

3 – 2

x – 3

3 – 4

3 – 5

2(x – 3)

5

4 – 2

4 – 3

x – 4

4 – 5

-2(x – 4)

8

5 – 2

5 – 3

5 – 4

x – 5

6(x – 5)

7

П4(x)=(x – 2)(x – 3)(x – 4)(x – 5)

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

,

L3(2.5)=4.8125

Если в примере нужно просто найти значение функции в точке x=2,5, то сразу вместо x подставляем 2,5, т.е. составляем следующую таблицу:

x=2,5

x0

x1

x2

x3

i

fi

fi/∆i

x0

0.5

-1

-2

-3

-3

7

-2.333

x1

1

-0.5

-1

-2

-1

5

-5

x2

2

1

-1.5

-1

3

8

2.667

x3

3

2

1

-2.5

-15

7

-0.467

∑=-5.893

Ln(2.5)=0.5*(-0.5)*(-1.5)*(-2.5)*(-5.893)=4.8122