- •4.Приближение функций
- •4.1.Интерполяция
- •4.1.1.Интерполяционные формулы Ньютона
- •4.1.2.Интерполяционная формула Лагранжа
- •4.1.3.Остаточный член интерполяционной формулы Лагранжа
- •4.1.4.Равномерное приближение функции. Многочлены Чебышева
- •4.1.5.Интерполяция сплайнами
- •4.2.Аппроксимация. Метод наименьших квадратов
- •4.3.Задачи для самостоятельного решения
4.1.Интерполяция
Под задачей интерполирования или интерполяции принято понимать следующую задачу:
Пусть известны значения yi функции f(x) в точках xi, i = 0, 1, …n, называемых узлами интерполяции. Требуется найти такую функцию F(x) (интерполирующая функция), значения которой в узлах интерполяции совпадают со значениями f(x):
F(xi) = yi, i = 0, 1, …n. (4.1)
Предполагается, что интерполирующая функция F(x) зависит от конечного числа параметров, которые находят из условий (4.1). Если зависимость интерполирующей функции F(x) от параметров линейна, то говорят о линейной интерполяции, в противном случае — о нелинейной интерполяции. В последнем случае нахождение параметров из системы (4.1) может быть трудной задачей.
Формула y = F(x) называется интерполяционной и используется для вычисления значения функции f(x) в точке x, не совпадающей с узлами интерполяции. Эта операция называется интерполированием (интерполяцией) функции. При этом, если точка x не принадлежит отрезку [a, b], a = min(x0, x1, …, xn), b = max(x0, x1, …, xn), то говорят об экстраполировании функции.
Часто в качестве интерполирующей функции используется многочлен n-го порядка Pn(x) (интерполяционный многочлен), удовлетворяющий условию
yi = Pn(xi) , i = 0, 1, …n. (4.2)
Так как многочлен n-го порядка определяется своими коэффициентами,
то число параметров равно n + 1 и условия (4.2) представляют систему линейных уравнений:
(4.3)
Определителем системы (4.3) является определитель Вандермонда
(4.4)
который отличен от нуля, если среди узлов интерполяции нет совпадающих. Отсюда следует, что задача построения интерполяционного многочлена разрешима, и существует единственный интерполяционный многочлен, удовлетворяющий условиям (4.2). Как увидим ниже, формы записи интерполяционного многочлена могут быть разными.
Отметим, что задача отыскания произвольного многочлена, удовлетворяющего условиям (4.2) некорректна. Если степень многочлена меньше n, то такого многочлена не существует, но если степень многочлена больше n, то таких многочленов бесконечно много.
4.1.1.Интерполяционные формулы Ньютона
Пусть узлы интерполяции распределены на отрезке равномерно xi = a + ih, i = 0, 1, … n. Обозначим шаг изменения переменной x через Δx = h.
Введем сначала понятия конечной разности и обобщенной степени. Эти понятия используются для записи интерполяционной формулы Ньютона.
Первой конечной разностью функции y = f(x) называется выражение
Δy = f(x + Δx) – f(x). (4.5)
Конечная разность второго порядка определяется формулой
Δ2y = Δ(Δy) = Δ[f(x + Δx) – f(x)] = f(x + 2Δx) – 2 f(x + Δx) + f(x). (4.6)
Используя формулу бинома Ньютона, можно вывести формулу конечной разности n-го порядка
(4.7)
где
.
Пример 4.1. Найти конечные разности функции x2 с шагом Δx = h = 1.
Решение. Δx2 = (x + h)2 – x2 = 2xh + h2 = 2x + 1,
Δ2x2 = Δ(2xh + h2) = 2(x + h)h + h2 – (2xh + h2) = 2h2 = 2,
Δ3x2 = Δ(2h2) = 0.
Как видим, конечная разность третьего порядка функции x2 равна нулю. Справедливо более общее утверждение:
Конечная разность (n + 1)-го порядка многочлена n-го порядка равна нулю.
Пусть функция f(x) задана своими значениями yi = f(xi) в равноотстоящих точках xi = x0 + ih, i = 0, 1, …n.
Таблица конечных разностей функции f(x) записывается в одной из двух форм: горизонтальной или диагональной таблицы разностей. Так как конечная разность использует два значения, столбец Δyi содержит n значений, столбец Δ2yi — на одно значение меньше, и так далее. Если задано n + 1 значений функции, то таблица конечных разностей содержит n столбцов, причем последний столбец содержит только одно значение. Общий вид горизонтальной таблицы конечных разностей приведен в табл. 4.1.
Таблица 4.1
xi |
yi |
Δyi |
Δ2yi |
Δ3yi |
… |
Δn-1yi |
Δnyi |
x0 |
y0 |
Δy0 |
Δ2y0 |
Δ3y0 |
… |
Δn-1y0 |
Δny0 |
x1 |
y1 |
Δy1 |
Δ2y1 |
Δ3y1 |
… |
Δn-1y1 |
|
… |
… |
… |
… |
… |
… |
|
|
xn – 2 |
yn – 2 |
Δyn – 2 |
Δ2yn – 2 |
|
|
|
|
xn – 1 |
yn – 1 |
Δyn – 1 |
|
|
|
|
|
xn |
yn |
|
|
|
|
|
|
Рассмотрим горизонтальную таблицу конечных разностей на примере.
Пример 4.2. Построить таблицу конечных разностей многочлена 5x4 + 4x2, используя его значения в точках xi = –1 + i∙0,5, i = 0, 1, …10.
Решение в программе Excel. Запишем в столбце A1:A12 номера i точек, в столбце B1:B12 — значения xi, в столбце C1:C12 — значения yi, и в следующих столбцах — конечные разности Δyi, Δ2yi и т.д. (Табл.4.2). Как заполняются столбцы A1:A12 и B1:B12 видно из табл. 4.2, поясним заполнение остальной части таблицы.
Выделим диапазон B2:B12 и выполним команду меню «Вставка — Имя — Присвоить — x»;
Запишем в ячейку C2 формулу =5*x^4 + 4*x^2 и протянем маркером заполнения ячейку C2 до ячейки C12;
В ячейку D2 запишем формулу =C3–C2, выделим D2 и протянем до D11. Затем снова выделим D2 и маркером заполнения скопируем в ячейки E2: H2. Далее выделим и протянем вниз поочередно ячейки: E2 — до E10; F2 — до F9; G2 — до G8; H2 — до H7. Мы увидим, что Δ4yi принимает постоянные значения, а Δ5yi = 0. Если продолжить таблицу, т.е. вычислить конечные разности старших порядков, в следующих столбцах получим нулевые значения.
Табл. 4.2
|
A |
B |
C |
D |
E |
F |
G |
H |
1 |
i |
x |
yi |
Δyi |
Δ2yi |
Δ3yi |
Δ4yi |
Δ5yi |
2 |
0 |
-1,000 |
9,000 |
-4,392 |
1,872 |
-0,672 |
0,192 |
0,000 |
3 |
1 |
-0,800 |
4,608 |
-2,520 |
1,200 |
-0,480 |
0,192 |
0,000 |
4 |
2 |
-0,600 |
2,088 |
-1,320 |
0,720 |
-0,288 |
0,192 |
0,000 |
5 |
3 |
-0,400 |
0,768 |
-0,600 |
0,432 |
-0,096 |
0,192 |
0,000 |
6 |
4 |
-0,200 |
0,168 |
-0,168 |
0,336 |
0,096 |
0,192 |
0,000 |
7 |
5 |
0,000 |
0,000 |
0,168 |
0,432 |
0,288 |
0,192 |
0,000 |
8 |
6 |
0,200 |
0,168 |
0,600 |
0,720 |
0,480 |
0,192 |
|
9 |
7 |
0,400 |
0,768 |
1,320 |
1,200 |
0,672 |
|
|
10 |
8 |
0,600 |
2,088 |
2,520 |
1,872 |
|
|
|
11 |
9 |
0,800 |
4,608 |
4,392 |
|
|
|
|
12 |
10 |
1,000 |
9,000 |
|
|
|
|
|
Обобщенной степенью n-го порядка числа x называется произведение
x[n] = x(x – h)(x – 2h)… [x – (n – 1)h], (4.8)
где h = const, а для n = 0 полагают x[0] = 1.
Найдем конечные разности для обобщенной степени.
Δx[n] = (x + h)[n] – x[n] =
= (x + h)x(x – h)(x – 2h)… [x – (n – 2)h] – x(x – h)(x – 2h)… [x – (n – 1)h] =
= x(x – h)(x – 2h)… [x – (n – 2)h]{ (x + h) – [x – (n – 1)h]} = nh x[n – 1].
Мы получили следующую важную формулу
Δx[n] = nh x[n – 1]. (4.9)
Пользуясь методом математической индукции можно вывести и общую формулу
Δkx[n] = n(n – 1)…[n – (k – 1)]hkx[n – k]. (4.10)
Выведем первую интерполяционную формулу Ньютона. Найдем многочлен Pn(x), удовлетворяющий условиям Pn(xi) = yi для i = 0, 1, …, n. Будем искать многочлен Pn(x) в следующем виде
Pn(x) = a0 + a1(x – x0) + a2(x – x0)(x – x1) + … an(x – x0)(x – x1)…(x – xn) =
= a0 + a1(x – x0)[1] + a2(x – x0)[2] + … an(x – x0)[n].
Из условия Pn(x0) = y0 следует a0 = y0.
Найдем первую конечную разность многочлена Pn(x):
ΔPn(x) = a1h + 2ha2(x – x0)[1] + … nan(x – x0)[n – 1].
Отсюда при x = x0 получим ΔPn(x0) = a1h = Δy0, т.е. a1 = Δy0/h. Аналогично можно получить общую формулу коэффициентов многочлена Ньютона
.
(4.11)
И теперь можно записать первую интерполяционную формулу Ньютона:
.
(4.12)
С помощью замены переменной q = (x – x0)/h первую интерполяционную формулу Ньютона можно представить в виде:
.
(4.13)
Аналогичными рассуждениями выводится вторая интерполяционная формула Ньютона:
,
(4.14)
которая с помощью замены q = (x – xn)/h приводится к виду
.
(4.15)
Первая интерполяционная формула Ньютона применяется для интерполирования вблизи начала таблицы (около x0), а вторая — для интерполирования вблизи конца таблицы (около xn).
Пример 4.3. Задана таблица значений функции yi = f(xi):
i |
0 |
1 |
2 |
3 |
4 |
xi |
2,0 |
2,5 |
3,0 |
3,5 |
4,0 |
yi |
4 |
5 |
5,5 |
5,7 |
5,8 |
Вычислить значение функции в точке x = 2,3.
Решение в программе Excel. Очевидно, что шаг интерполяции h = 0,5.
Вычислим сначала таблицу разностей, а затем — значение первой интерполяционной формулы Ньютона.
Запишем исходные данные в ячейки A1:A3 и B1:B2, как показано в табл. 4.3. Присвоим ячейкам B1, B2, B3 имена h, x, q с помощью команды «Вставка — имя — Присвоить».
В ячейку B3 запишем формулу =(x – $B$6)/h.
Ячейки A5:G5, A6:A13, B6:B10 и С6:С10 заполним как в таблице 4.3. В ячейку D6 запишем формулу =C7–C6. Затем выделим ячейку D6 и маркером заполнения протянем вниз до ячейки D9.
Снова выделим D6 и протянем вправо до G6.
Аналогично протянем ячейку E6 до E8 и ячейку F6 до F7. В табл. 4.4 показаны формулы, которые нужно ввести в ячейки диапазона B12:G13.
В ячейке G13 получим результат f(2,3) = 4,6712.
Табл. 4.3
|
A |
B |
C |
D |
E |
F |
G |
1 |
h= |
0,5 |
|
|
|
|
|
2 |
x= |
2,3 |
|
|
|
|
|
3 |
q= |
0,6 |
|
|
|
|
|
4 |
|
|
|
|
|
|
|
5 |
i |
xi |
y |
Δy |
Δ2y |
Δ3y |
Δ4y |
6 |
0 |
2 |
4 |
1,000 |
-0,500 |
0,200 |
0,000 |
7 |
1 |
2,5 |
5 |
0,500 |
-0,300 |
0,200 |
|
8 |
2 |
3 |
5,5 |
0,200 |
-0,100 |
|
|
9 |
3 |
3,5 |
5,7 |
0,100 |
|
|
|
10 |
4 |
4 |
5,8 |
|
|
|
|
11 |
|
|
|
|
|
|
|
12 |
Коэффициенты |
1 |
0,6 |
-0,12 |
0,056 |
-0,0336 |
f(x) |
13 |
Слагаемые |
4 |
0,6 |
0,06 |
0,0112 |
2,98E-17 |
4,6712 |
Табл. 4.4
|
B |
C |
D |
E |
F |
G |
12 |
1 |
=q |
=C12*(q-1)/2 |
=D12*(q-2)/3 |
=E12*(q-3)/4 |
f(x) |
13 |
=B12*C6 |
=C12*D6 |
=D12*E6 |
=E12*F6 |
=F12*G6 |
=СУММ(B13:F13) |
Составим программу на языке C++ для вычисления значения таблично заданной функции с помощью первой интерполяционной формулы Ньютона в форме (4.13):
