Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

num-meth

.pdf
Скачиваний:
32
Добавлен:
05.06.2015
Размер:
737.92 Кб
Скачать

2.5. Интерполяция на сетке с неравноотстоящими узлами

61

Теорема 2.5.5 (Чебышева). Многочлен Qfn(x) является многочленом наилучшего равномерного приближения для функции f(x) C[a, b] тогда и только тогда, когда на [a, b] существует не менее n+2 таких точек xi, что в них поочередно принимаются наибольшие положительные и отрицательные отклонения, т.е. поочередно разность f(xi) − Qfn(xi) равна E или −E, где

E = f(x) − Qfn(x) C[a,b] = max |f(x) − Qfn(x)|.

x [a,b]

Точки xi, в которых реализуется максимальное отклонение многочлена Qfn(x) от f(x)

на [a, b], называются точками чебышевского альтеранса.

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

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

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

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

Пользуясь ранее полученными выражениями для нескольких первых многочленов Чебышева, выразим через них степени x:

1 = T0;

x = T1;

x2 = 12 (T0 + T2); x3 = 14 (3T1 + T3);

x4 = 18 (3T0 + 4T2 + T4); x5 = 161 (10T1 + 5T3 + T5)

и т.д. (Аргумент x в этих выражениях для краткости опущен.)

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

f(x) = a0 + a1x + a2x2 + · · · + akxk + . . . ,

то, подставляя сюда вместо степеней x их выражения через многочлены Чебышева и приводя подобные члены, можно, в принципе, получить разложение f(x) вида

f(x) = b0 + b1T1 + b2T2 + · · · + bnTn + . . . .

62

Глава 2. Полиномиальная интерполяция функций

Имея в виду рассмотренные выше свойства многочленов Чебышева Tn(x), можно рассчитывать, что многочлены, получаемые усечением таких разложений, будут близки к многочленам наилучших равномерных приближений.

2.6Эрмитовы интерполяционные многочлены

2.7Интерполяция сплайнами

В тех случаях, когда промежуток [a,b] на котором нужно подменить функцию f(x) функцией ϕ(x), велик, и отсутствуют основания считать данную функцию f(x) достаточно гладкой при x [a, b], нет смысла пытатся повышать качество ее полиноминальной аппроксимации за счет использования в роли ϕ(x) многочленов высоких степеней. Более перспективным в этих условиях является применение кусочно-полиномиальной аппроксимации f(x), предполагающей, что аппроксимирующая функция ϕ(x) составляется из отдельных многочленов, как правило, одинаково большой степени, определенных каждый на своей части отрезка [a,b].

кусочно-линейной функцией ϕ(x), исходя из условий интерполяции

ϕ(xi) = yi, (i = 0, 1, . . . , n)

то, беря функцию ϕ(x) в виде

a x + b , x [x , x ]

1 1 0 1

a2x + b2, x [x1, x2]

ϕ(x) =

. . .

anx + bn, x [xn−1, xn]

для нахождения n пар ее коэффициентов ak, bk(k = 1, 2, . . . , n) имеем систему из 2n линейных уравнений

 

 

 

a1x0 + b1

= y0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= y1

 

 

 

 

 

 

{a1x1 + b1

 

 

 

 

 

 

{

2

2

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a2x1 + b2

= y1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a x

 

+ b

= y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

anxn 1 + bn = yn 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

anxn + bn = yn

 

 

 

 

кусочно-квадратичной

функции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1x2 + b1x + c1, x [x0, x2]

 

 

 

a2x2 + b2x + c2, x

[x2, x4]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ϕ(x) =

 

 

 

 

 

 

 

 

 

 

 

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

amx2 + bmx + cm, x [x2m−2, x2m]

 

 

 

akx22k 2 + bkx2k−2 + ck = y2k−2

ϕ(x) = akx22k1 + bkx2k

1

+ ck = y2k

1

 

 

 

 

2

 

 

 

 

 

 

 

 

 

2k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

akx + bkx2k + ck = y2k

 

2.7. Интерполяция сплайнами

63

x x0 x1 . . . xn

f(x) f0 f1 . . . fn

Если при кусочно-линейной интерполяции линейная функция на элементарном отрезке [xi−1, xi] однозначно определяется по двум точкам из условия совпадения ее значений в них со значениями fi−1 и fi данной функции f(x), то здесь на каждом из отрезков [xi−1, xi+1] длиной 2h функция f(x) будет поменяться наилучшим линейным среднеквадратическим приближением ϕi(x), построенным по трем значениям fi−1, fi, fi+1 и отфильтрованным значением в точке xi будет считатся значение ϕi(xi)

где xi = x0 + ih, i = 0, 1, . . . , n найти такую функцию ϕ(x), составленную из линейных функций

ϕi(x) := ai + bi(x − xi)

(с перекрытием), чтобы

f(x) ≈ ϕi(x), x [xi−1, xi+1]

в смысле

i+1

 

 

 

 

 

(fk − ϕi(xk))2 → min

 

 

 

 

 

 

k=i−1

 

 

 

 

 

 

 

 

 

 

(fi−1 − ai + bih)2 + (fi − ai)2 + (fi+1

− ai − bih)2 → min

(fi−1 − ai + bih) + (fi − ai) + (fi+1 − ai − bih) = 0,

{(fi−1 − ai + bih)h − (fi+1 − ai − bih)h = 0

 

 

 

Отсюда получаем ai = 31 (fi−1 + fi + fi+1), bi

=

1

(fi+1

− fi−1)

 

 

 

2h

 

 

 

ϕ

(x) =

1

(f

 

+ f

+ f

 

) +

fi+1 − fi−1

(x

x

)

3

i−1

 

 

i

 

 

i

 

i+1

 

 

 

2h

i

 

Варьированием i от 1 до n-1 для функции 2.7 таких линейных функций ϕi(x) будет построено n-1; на каждый элементарный промежуток [xi, xi+1] (кроме первого и последнего) их приходится по две.

Второй этап состоимт в пересчете данной таблицы 2.7 заменой значений fi на значения

1

ϕi(xi) = 3(fi−1 + fi + fi+1)

при каждом i = 0, 1, 2, . . . , n − 1. Доопределив новую табличную функцию, например, значениями ϕ0(x0) := f0 и ϕn(xn) := fn, получаем вместо 2.7 табличную зависимость

x

x0

x1

. . .

xn−1

xn

ϕ(x)

ϕ0(x0)

ϕ1(x1)

. . .

ϕn−1(xn−1)

ϕn(xn)

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

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

64

Глава 2. Полиномиальная интерполяция функций

2.7.1Кусочно-полиномиальная интерполяция. Линейные фильтры

2.7.2Сплайны. Интерполяционный кубический сплайн дефекта 1

Пусть на отрезке [a,b] задана упорядоченная система несовпадающих точек xk, (k = 0, 1, . . . , n) Сплайном Sm(x) называется определенная на [a,b] функция, принадлежащая классу

C1[a, b] l раз непрерывно дифференцируемая функция, такая, что на каждом промежутке [xk−1, xk], (k = 1, 2, . . . , n) это многочлен m-й степени. Разность d:=m-l между степенями сплайна m и показателем его гладкости l называется дефектом сплайна.

Если сплайн Sm(x) строится по некоторой функции f(x) так, чтобы выполнялись условия Sm(xi) = f(xi), то такой сплайн называется интерполяционным сплайном для функции f(x); при этом узлы сплайна xk, вообще говоря, могут не совпадать с узлами интерполяции xi.

Совпадение дефекта сплайна с его степенью обеспечивают просто непрерывность сплайна. Интерес представляет построение сплайнов с большой гладкостью, т.е. с малым дефек-

том. Такие сплайны являют собой дальнейшее совершенствование идеи кусочно-полниноминальной аппроксимации.

Будем исходить из предположения, что узлы сплайна

a = x0, x1, x2, . . . , xn−1, xn = b

(4.7)

одновременно служат узлами интерполяции, т.е. в них известны значения функции fk := f(xk), k = 0, 1, . . . , n

Кубическим сплайном дефекта 1, естественным или чертежным сплайном

интерполирующим на отрезке [a,b] данную функцию f(x), называется функция

g(x) = {gk(x) := ak + bk(x − xk) + ck(x − xk)2 + + dk(x − xk)3, x [xk−1, xk]}nk=1 (2.16)

удовлетворяющая совокупности условий:

а) g(xk) = fk (условие интерполяции в узлах сплайна)

б) g(x) C2[a, b] (двойная непрерывная дифференцируемость) в) g′′(a) = g′′(b) = 0 (краевые условия)

Для построения по данной функции f(x) интерполирующего её сплайна 2.16 нужно найти 4n его коэффициентов ak, bk, ck, dk, (k = 1, 2, . . . , n).

Имеем:

из условий интерполяции а):

g1(x0) = f0, gk(xk) = fk, k = 1, 2, . . . , n;

из условий гладкой стыковки звеньев сплайна б):

gk−1(xk−1) = gk(xk−1),

gk1(xk−1) = gk(xk−1), , k = 2, 3, . . . , n;

gk′′1(xk−1) = gk′′(xk−1),

из краевых условий в):

g1′′(x0) = 0, gn′′ = 0

Подставляя сюда выражения функций

gk(x) := ak + bk(x − xk) + ck(x − xk)2 + dk(x − xk)3

и их производных

gk(x) = bk + 2ck(x − xk) + 3dk(x − xk)2

2.7. Интерполяция сплайнами

65

gk′′(x) = 2ck + 6dk(x − xk)

через коэффициенты ak, bk, ck, dk при указанных значениях k и полагая для краткости

hk := xk − xk−1,

получаем детализированную систему связей

 

a1

− b1h1 + c1h12 − d1h13

2

 

 

3

 

 

 

 

 

= f0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= fk, k = 1, 2, . . . , n,

 

2

 

 

 

 

 

 

ak

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bkhk + ckhk

 

 

dkhk

,

 

 

ak 1 = ak

 

k

 

 

 

(2.17)

 

 

k 1

= b

k

 

k k

 

k

,

 

 

, k = 2, 3, . . . , n;

b

 

 

 

2c h

+ 3d h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ck−1 = ck 3dkhk,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3d1h1 = 0,

 

 

 

 

 

 

 

 

c1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 0

 

 

 

 

 

 

 

 

 

 

 

 

cn

 

 

 

 

 

 

 

 

 

 

 

 

Будем исключать из системы неизвестные ak, dk, bk и сводить все к решению системы относительно неизвестных ck.

f(xk−1; xk) :=

fk − fk−1

hk

c0 = 0

Согласно 2.17, коэффициенты ak известны и равны fk при любом k {1, 2, . . . , n}. Приходим к равенству

bkhk − ckh2k + dkh3k + dkh3k = fk − fk−1, k = 1, 2, . . . , n

откуда

bk = f(xk−1; xk) + ckhk − dkh2k, k = 1, 2, . . . , n

Из 2.17 можно однозначно выразить dk через ck :

dk

=

ck − ck−1

, (k = 1, 2, . . . , n)

 

 

3hk

 

 

 

 

2

 

 

1

 

 

bk = f(xk−1; xk) +

 

hkck +

 

hkck−1

, k = 1, 2, . . . , n

3

3

Связью 2.17, подставляя туда bk−1, bk из 2.19 и dk из 2.18

После упрощения отсюда получаем относительно неизвестных ck ностное уравнение второго порядка

hk−1ck−2 + 2(hk−1 + hk)ck−1 + hkck = = 3f(xk−1; xk) 3f(xk−2; xk−1), k = 2, 3, . . . , n c0 = 0, cn = 0

(2.18)

(2.19)

трехточечное раз-

(2.20)

Так как [2hk−1 + 2hk] заведомо больше, чем |hk−1| + |hk|, то для разностного уравнения 2.20 (по другой терминологии, ленточной системы линейных алгебраических уравнений с трехдиагональной матрицей коэффициентов) выполняется достаточное условие однозначной разрешимости, т.е. существует единственный набор коэффициентов c1, c2, . . . , cn, удовлетворяющий 2.20.

66

Глава 2. Полиномиальная интерполяция функций

Теорема. При заданных в точках a и b краевых условиях (g′′(a) = g′′(b) = 0) по заданным в узлах

a = x0, x1, x2, . . . , xn−1, xn = b

значениями fk (k = 0, 1, . . . , n) функции f(x) можно построить единственную интерполирующий ее кубический сплайн g(x)дефекта 1.

δ =

h2

, λ

 

= 2f(x1; x2) 3f(x0; x1)

1

2h1 + 2h2

 

1

 

2h1 + 2h2

 

 

 

δk−1 =

 

 

 

 

hk

 

 

 

,

 

 

2hk−1 + 2hk + hk−1δk−2

λk−1 =

3f(xk−1; xk) 3f(xk−2; xk−1) − hk−1λk−2

 

 

 

2hk−1 + 2hk + hk−1δk−2

при k = 3, 4, . . . , n, а затем к получению искомых значений ck обратной прогонкой по формуле

ck−1 = δk−1ck + λk−1,

полагая в ней k = n, n − 1, . . . , 2 и учитывая, что cn = 0. Все вычислительные затраты на построение n-звенного естественного сплайна составят, очевидно, O(n) арифметических операций.

Теорема. Пусть g(x) - кубический сплайн дефекта 1, интерполирующий на системе узлов (4.7) отрезка [a,b] четырежды непрерывно дифференцируемую на нем функцию f(x). Тогда при любом фиксированном n найдется такая постоянная С > 0, что для любого x [a, b] справедливо неравенство:

|f(x) − g(x)| ≤ C4,

где ∆ := max (xk − xk−1)

1≤k≤n

2.7.3Квадратичный сплайн дефекта 1

Пусть аппроксимируемая функция f(x) на системе n + 1 точек

a= x0 < x1 < x2 < . . . < xn = b

-узлов интерполяции - принимает значения f(xk) = fk (k = 0, 1, . . . , n), и пусть все внутренние узлы x˜k квадратичного сплайна p(x) берутся точно посередине между соседними узлами интерпляции, т.е.

1

x˜k = 2(xk−1 + xk),

а крайними узлами сплайна служат концы отрезка [a, b] :

x˜0 := a(= x0), x˜n+1 := b(= xn).

Таким образом, на каждом из n + 1 отрезков [˜xk−1, x˜k], где k = 1, 2 . . . , n + 1, сплайн p(x) определяется своим звеном pk(x), которое будем задавать квадратичной функцией вида

pk(x) := ak + bk(x − x˜k) + ck(x − x˜k)2.

(4.29)

Чтобы квадратичный сплайн

p(x) := {pk(x), x xk−1, x˜k]}nk=1+1

2.7. Интерполяция сплайнами

67

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

pk+1(xk) = fk при k = 1, 2, . . . , n,

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

pk+1xk) = pk

xk)

 

 

 

 

 

 

при k = 1, 2, . . . , n.

pk

+1xk) = pk

 

 

xk)

 

 

 

 

 

(4.30)

(4.31)

В совокупности выписанные условия дают 3n + 1 уравнений относительно 3n + 3 неизвестных коэффициентов ak, bk, ck. Оставшиеся свободными две связи можно реализовать по-разному; остановимся на задании краевых условий на вторую производную сплайна 2:

p′′1(a) = A, p′′n+1(b) = B. (4.32)

Продифференцировав дважды функцию (4.29), на основе условий (4.30) (4.32) полу-

чаем следующую систему уравнений:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ak+1 + bk+1(xk

 

 

x˜k+1) + ck+1(xk

 

 

x˜k+1)2 = fk

 

(k = 0, 1, . . . , n),

 

 

ak+1 + bk+1(xk

 

 

x˜k+1) + ck+1(xk

 

 

x˜k+1)2 = ak

(k = 1, 2, . . . , n)

(4.33)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x˜k+1) = bk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

bk+1 + 2ck+1(xk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2c1 = A, 2cn+1 = B.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для более удобного манипулирования с этой системой введем шаг интерполяции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hk := xk − xk−1

 

 

 

 

 

 

 

 

 

(4.34)

С обозначениями (4.34) система (4.33) приобретает вид

 

 

 

 

 

 

 

ak+1 12 hk+1bk+1 + 41 hk2+1ck+1 = fk

 

(k = 0, 1, . . . , n − 1),

 

 

 

 

 

an+1 = fn,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 (hk + hk+1)bk+1 + 4 (hk + hk+1) ck+1 = ak

(k = 1, 2, . . . , n 1),

 

ak+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

h b

 

 

 

 

+

1

 

 

2

c

 

 

= a

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(4.35)

a

 

 

2

n+1

4

h

n+1

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n+1

 

 

 

n

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bk+1

 

(hk + hk+1)ck+1

= bk

(k = 1, 2, . . . , n

 

1),

 

 

 

 

 

 

 

bn+1

hncn+1 = bn,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2c1 = A, 2cn+1 = B.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итогом

является следующая ленточная система (где f(xk

1; xk; xk+1) - разделенные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

разности второго порядка, построенные по значениям fk−1, fk, fk+1):

 

 

 

 

 

 

 

 

2c1 = A,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3c2 +

 

h2

 

 

c3

= 4f(x0; x1; x2)

 

 

Ah1

 

 

,

 

 

 

 

 

 

 

 

 

 

h

+h

 

 

2h

+2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

1

 

 

 

2

 

 

 

 

 

 

h3

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c

2

+ 3c

3

+

h2

 

c

4

= 4f(x

; x

; x

 

),

 

 

 

 

 

 

 

 

 

 

h2+h3

 

 

 

 

 

 

+h3

 

 

 

 

 

 

 

 

1

 

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(4.52)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

· · ·h·n· ·2· · · · · · · · · · · · · · · · · · · · ·h·n· ·1 · · · · · ·

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cn

 

2

+ 3cn

1

 

+

hn 2

 

 

 

 

cn = 4f(xn

3; xn 2

; xn

1),

 

 

 

 

 

 

 

hn 2+hn 1

 

 

 

 

 

 

 

 

 

 

 

+hn 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hn 1

 

 

 

 

 

 

 

 

 

 

 

 

= 4f(xn

 

2; xn

1; xn)

 

Bhn

,

 

 

 

 

 

 

 

hn

 

1+hn cn 1 + 3cn

 

2hn 1+2hn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2cn+1 = B.

2задание обеих дополнительных связей на одном конце промежутка [a; b] приводит к численно неустойчивому процессу сплайн-интерполяции.

68

 

 

 

 

 

 

Глава 2.

Полиномиальная интерполяция функций

 

 

 

 

 

bk =

1

hk(ck

− ck+1) + f(xk−1; xk),

(4.53)

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

bn+1

= bn +

1

Bhn,

(4.54)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1

 

 

1

 

 

 

 

 

 

ak =

 

hk

(bk

 

hkck) + fk−1, где

 

k = 1, 2, . . . , n и an+1 = fn

(4.55)

2

2

 

ТеоремаПусть функция f(x) дважды непрерывно дифференцируема на отрезке [a, b] и пусть p(x)-квадратичный сплайн, определяемый условиями (4.30) (4.32). Тогда при каждом фиксированном n найдутся такие положительные постоянные c0, c1, c2, что

при любом x [a, b]

справедливы неравенства:

 

 

 

 

 

 

|f(x) − p(x)| ≤ c0 2,

где := k 1,...,n

 

 

k

 

|f(i)(x) − p(i)(x)| ≤ ci 2−i (i = 1, 2),

(

x

x

k−1)

.

max

}

 

 

{

 

 

 

 

 

2.7.4Базисные сплайны

2.7.5Эрмитовы (локальные) сплайны

Глава 3

Численное интегрирование и дифференцирование

3.1Задача численного интегрирования

3.1.1Квадратурные формулы прямоугольников

b

Пусть требуется найти значение I интеграла Римана f(x)dx для некоторой заданной

a

на отрезке [a, b] функции f(x). Для функций, допускающих на промежутке [a, b] конечно число точек разрыва первого рода, такое значение существует, единственно и может быть формально получено по определению:

 

i

 

 

n

 

I = nlim

f(ξi)(xi − xi−1),

(3.1)

→∞

=1

 

где {xi}ni=0 — произвольная упорядоченная по возрастанию система точек отрезка [a, b] такая, что

max{x0 − a, xi − xi−1, b − xn} → 0 при n → ∞,

а ξi — произвольная точка элементарного промежутка [xi−1, xi].

Аналитический способ нахождения I с помощью формулы Ньютона-Лейбница

I = F (b) − F (a),

(3.2)

где F (x) — некоторая первообразная для функции f(x). Применение этого подхода к вычислению I наталкивается на несколько серьезных препятствий. Самое главное из них

— это несуществование первообразной среди элементарных функций для большинства элементарных функций f(x). Вычисление двух ее значений F (a) и F (b) может оказаться более трудоемким, чем вычисление существенно большего количества значений f(x).

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

Простые квадратурные формулы можно вывести непосредственно из определения интеграла, т.е. из представления (3.1). Зафиксировав там некоторое n ≥ 1, будем иметь

i

 

n

 

I ≈ f(ξi)(xi − xi−1).

(3.3)

=1

 

69

70 Глава 3. Численное интегрирование и дифференцирование

Это приближенное равенство назовем общей формулой прямоугольников.

Чтобы из общей формулы (3.3) получить конструктивное правило приближенного вычисления интеграла, воспользуемся свободой расположения точек xi, разбивающих промежуток интегрирования [a, b] на элементарные отрезки [xi−1, xi], и свободой выбора точек ξi на этих отрезках.

Воспользуемся равномерным разбиение отрезка [a, b] на n частей точками xi с шагом

h =

b − a

, полагая

 

 

n

 

 

 

 

x0 = a, xi = xi−1 + h (i = 1, 2, ..., n − 1), xn = b.

(3.4)

При таком разбиении формула (3.3) приобретает вид

 

 

 

i

 

 

 

 

n

 

 

 

 

I ≈ h f(ξi),

ξi [xi−1, xi].

(3.5)

=1

 

 

Рассмотрим три случая.

 

 

1) Положим ξi = xi−1. Тогда из (3.5) получаем

 

 

 

i

 

 

 

I ≈ IΠ= h

n

 

 

 

f(xi−1).

(3.6)

 

 

 

=1

 

2) Пусть в (3.5) ξi = xi. В таком случае имеем

 

 

 

 

i

 

 

 

I ≈ IΠ+ = h

n

 

 

 

f(xi).

(3.7)

 

 

 

=1

 

Формулы (3.6) и (3.7) называются квадратурными формулами левых и правых прямоугольников соответственно.

3) Фиксируем ξi = 12(xi−1 +xi) (= xi−1 + h2 = xi h2 ). В результате имеем квадратурную формулу средних прямоугольников или, иначе, формулу средней точки

 

 

 

 

 

n

h

n

h

 

I ≈ IΠ = h i=1 f (xi−1 +

2

)

= h i=1 f (xi

2

) .

(3.8)

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

Каким должен быть шаг h разбиения (3.4) отрезка интегрирования [a, b], чтобы гарантированно найти значение I интеграла с наперед заданной точностью ε?

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

 

h/2

 

 

I0 =

f(x)dx

(3.9)

−h/2

при некотором достаточно малом h > 0. По формуле Тейлора можно записать

f(x) = f(0) + f(0)x + 12f′′(0)x2,

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