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

book1989

.pdf
Скачиваний:
18
Добавлен:
10.04.2019
Размер:
19.14 Mб
Скачать

1. Построение кубического сплайна. Пусть на [а, Ь] задана не­ прерывная функция f(x). Введем сетку

a=x„<xl< . . .<xN-i< xN — b

и обозначим fi=f(Xi), i = 0, 1, ..., N.

функции fix) и данным

Сплайном,

соответствующим данной

узлам {jC;}iLo,

называется функция s(x),

удовлетворяющая следую­

щим условиям:

 

N, функция s(x)

а) на каждом сегменте [х*_ь х{], i = l , 2,

является многочленом третьей степени;

 

 

б) функция s(x), а также ее первая и вторая производные не­ прерывны на [а, Ь];

в) s{xt) = f{ x t), i = 0, 1, .... N.

Последнее условие называется условием интерполирования, а сплайн, определяемый условиями а)—в), называется также ин­ терполяционным кубическим сплайном.

Докажем существование и единственность сплайна, определяе­

мого перечисленными условиями. Приведенное ниже

доказатель­

ство содержит также способ построения сплайна.

будем

искать

На каждом из отрезков [Xj_(, х,], t=

l, 2 , ..., N,

функцию s(x)=Si(x) в виде многочлена третьей степени

 

Si (х) = at + bi (х Xi) + Ц- (х Xi)2 + ~ ( Х — Xi)3,

(1)

2

6

 

 

Xi-^xs^Xi, i = l , 2 , . . . , N ,

где at, bit cit d{— коэффициенты, подлежащие определению. Пояс­ ним смысл введенных коэффициентов. Имеем

Si (X) = bt -f Ci (X — Xi) + - у (х — xt)2,

si (х) = d + di (х — Xi), si (x) = di,

поэтому

ai = Si(xi), bi — si (x;), a — Si(Xi), di = s"(Xi).

Из условий интерполирования s(x{) = /(x ,), i = 1, 2, ..., N, полу­ чаем, что

ai=f(Xi), i = l , 2, ..., N.

Доопределим, кроме того, a„ = f(x0).

Далее, требование непрерывности функции s(x) приводит к условиям

Si{Xi)=si+l(Xi), i= 1, 2, .... N— \.

Отсюда, учитывая выражения для функций s,(x), получаем при г=0, 1,. . . , N—1 уравнения

di = 0Ul + bi+l (Xi — Х;+1) +

(X; — X;+1)2 + —— (Xi — XI+1)3.

2

6

HI

Обозначая hi=xt—xf-i, перепишем эти уравнения в виде

h]

+

А?

 

‘ = 1, 2,

... , N.

 

hibi-----f

=

 

(2)

2

 

6

 

 

 

 

Условия непрерывности первой производной

 

 

Si (хс) =

Si+i (Xi),

i =■ 1» 2,

... , N

1,

 

приводят к уравнениям

 

 

 

 

 

dhi -

-J- hi = bt -

Д_х, 1 =

2,3,

 

(3)

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

нения

i= 2,3,...,N .

(4)

dih^Ci—Ci-i,

Объединяя (2) — (4), получим

систему 3N—2 уравнений

относи­

тельно 3N неизвестных bu си dt, 1= 1 , 2 , ... , N.

Два недостающих уравнения получают, задавая те или иные граничные условия для s(x). Предположим, например, что функ­

ция f(x)

удовлетворяет условиям f"(a)=f"(b)= 0. Тогда естест­

венно

требовать,

чтобы

s"(a)—s"(b) = 0.

Отсюда получаем

si(* o ) =

0 ,

S N ( X N ) =

0 ,

т . е. c

t — d,AJ= 0,

с ы = 0.

с уравнением (4)

Заметим, что

условие

с,—d,/i,=0

совпадает

при t=l, если положить с0=0. Таким образом, приходим к замкну­ той системе уравнений для определения коэффициентов кубиче­ ского сплайна:

М ; = с,—Cj-i, i= 1, 2, ...,

N,

C0= CJV= 0,

(5)

 

ft;?

b;-i, i = 2,

3, . .. , Al,

(6)

kfii---- —di = b:

h*

2 ft®

Л - i ,

i = l , 2 , . . . , N .

(7)

hcbi------с;

4-----di = f,

l

6

 

 

 

 

Убедимся в том, что эта система имеет единственное решение. Исключим из (5) —(7) переменные bu dit i =l , 2, ..., N1 , и по­ лучим систему, содержащую только с,, 7=1,2,.. . ,Л7—1. Для этого рассмотрим два соседних уравнения (7):

,

<4

А? , ,

h - f t-г

,

bi =

— Ci----

-- di н------

ft------£

 

2

6

 

<

hi-1

^г'-t

^ | /i-l 7j-2

bi-1 = ——■Ci_!-----— di-.1 ч-------

ft,--------,

 

2

6

 

и вычтем второе уравнение изпервого. Тогда получим

bi — bi-t -

 

 

= 1 {hid - hi—iCi—i) -

- (tidi - hUdi-i) +

-

*

6

k;

142

 

 

Подставляя найденное

выражение

для

bi—b{- 1

в правую

часть

уравнения (6), получим

 

 

 

 

 

 

 

hid “I- hi—iC—i

h12 - 1

di—i

 

 

 

Г/1- / 1-1

fi-r-fi-

(8)

 

3

 

 

 

 

 

hi

 

 

Далее, из уравнения (5) получаем

 

 

 

 

 

h id - c =

h i ( C i

C i _ ^ ) ,

/ 1i—i d . i —i

 

h i —i ( C i—i

£7 2)

 

и, подставляя эти выражения в (8),

 

приходим к уравнению

 

/ i i _ iC , - 2 + 2

+

/li) C i- 1 +

hid =

6

f

Ai

Ai-i

 

 

 

 

 

 

 

V

 

Окончательно для определения коэффициентов ct получаем си­ стему уравнений

hiCi-1 + 2 (he -(- hi+1) Ci -(- hi +icI +1 =

6 ^ ^ ---- ----------——- j , (9)

i= l , 2 ........

Л/—1 ,

с0=ся= 0.

В силу диагонального преобладания система (9) имеет единст­ венное решение. Так как матрица системы трехдиагональная, ре­ шение легко найти методом прогонки, которая в данном случае устойчива (см. п. 7 § 4 ч. I). По найденным коэффициентам с,- ко­ эффициенты Ь{ и di определяются с помощью явных формул

k;

h;

di

~ di +

f t - f t

(10)

hi

 

Таким образом, доказано, что существует единственный куби­ ческий сплайн, определяемый условиями а) —в) и граничными ус­ ловиями s"(a)=s"(b)=0. Заметим, что можно рассматривать и другие граничные условия.

2. Сходимость процесса интерполирования кубическими сплай­ нами*). Покажем, что интерполирование кубическими сплайнами является сходящимся процессом, т. е. при неограниченном увели­ чении числа узлов N соответствующая последовательность сплайнфункций сходится к интерполируемой функции f(x). Оценки по­ грешности интерполяции r(x)=f(x)—s(x) зависят от выбора сеток

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

(Hh={Xi=a+ ih, i= 0, l ........

TV}

*) Изучение этого раздела не обязательно для понимания дальнейшего ма­ териала. Более подробное изложение см. в [201.

143

сшагом h= (b—a)/N. В этом случае основная система уравнений

(9)принимает вид

С;-1 + 4Ci 4- Cin = 6f-xi,

i = 1>2, . . . , N

1,

(11)

 

Со— Ск= 0,

 

 

где обозначено f-xj

= (/i-i-2/;+ /i+1)/ft2.

 

 

От функции f(x)

будем требовать существования

непрерывной

на [а, Ь] четвертой

производной,

f (х) e C (i|[a, 6].

Кроме

того,

предположим, что выполнены

граничные

условия f"(a)=f"(b)= О

и такие же условия для сплайнов. Обозначим

1ё W |\c[a,b] =

Iв

(X) I. М 4 =

1/(4) WIС[а.ЬУ

Пусть sh(x) — кубический сплайн, построенный для функции f(x) на сетке со*. В следующей теореме приведены оценки погрешно­

сти интерполяции для функции f(x)

и ее производных f'{x),

}"{х).

Т е о р е м а

1. Для

 

Ь]

справедливы оценки

 

 

 

 

||/ ( * ) - 5;!(х)||С[а1Й]< Л У 1\

 

 

(12)

 

 

IIГ (х) — s'n (X) ||qa,b] SS M4h \

 

 

(13)

 

 

\\r(x)-s':t(x)\\C[aib]^ M

4h\

 

 

(14)

Из этих оценок следует, что при h-*-0 (т. е. при N-+-оо)

после­

довательности

stfix), i=0, 1, 2, сходятся

соответственно

к

функ­

циям f(i>(х), i= 0, 1, 2.

теоремы

1

потребуется

следующая лем­

Для доказательства

ма 1, в которой даны

оценки погрешности f"{x^ — s!l(xi)

в узлах

сетки. Будем обозначать

 

 

 

 

 

 

 

 

 

 

11<р(-*)1-(Ш/1, =

max

1ч>(**)1-

 

 

 

 

 

 

 

 

xi

 

 

 

 

 

 

Л е м м а

1.

Для Д х )е С (1)[а, Ь]

справедливы оценки

 

 

 

 

i r w - s . : w n Cftefc)< - ^ - A a.

 

 

ns)

Д о к а з а т е л ь с т в о .

Поскольку

s^{xt)=си где с,- —решение

системы ( 1 1 ),

достаточно

получить

оценку для

погрешности zt=

=Ci—f"(Xi),

t'= 1,2, . . . , N 1. Подставляя

Ci=zt+

fi в (1 1 ),

полу­

чаем для Zjуравнения

 

 

 

 

 

 

 

 

 

zi- 1+ 4zi+ z i+1 = i|ii,

i =l ,

2, ..., N—1, 20= zw= 0,

 

(16)

где

 

 

 

 

 

 

 

 

 

 

 

 

 

^■ =

6/ ^ - ( / / и

+

4/: + /м).

 

 

(17)

Оценим решение системы уравнений (16) через правые части Для этого перепишем уравнение (16) в виде

4z(= —Zi-i—zi+i+t|}i

144

и воспользуемся неравенствами

4 | г; | =s= I z;-i 1+ I Zi+i | + | г|); | < 2 1 г ||C(<%) + II 'I’ |c^ k)

Так как это неравенство справедливо при всех i, оно выполня­ ется и в топ точке х{=хк, в которой достигается максимум [z;|, т. е. в точке, где

Поэтому выполняется неравенство

 

4 121с(юА) ^ 2 12 llc(o);,) + I 'Р Ис(аА)'

 

т. е.

 

II f " ( x ) - s h(x) |C(<Bh)^ - ||'H c (ffl/l) •

(18)

Для того чтобы получить отсюда неравенство (15), осталось оценить ||'Р||С(мя). где ч|з( определено согласно (17). Перепишем гр*

в виде

^ = 6 (/b i i - / '; ) - / ^ ( n b ,

(19)

и воспользуемся разложениями (см. п. 1 § 4 ч. I)

fxx.i =

/ 'V (b)i

Ь S ( X i - U X i + l ) ,

(D-xxi = r & ) ,

b e

(xc. u xUl),

справедливыми для /( r ) e C (4)[a,f)]. Тогда из (19) получим

^ ■ = ^ / ,v ( b ) - /t 2/lv(b),

т. е. при любом i = l , 2 , . . . , N—1 справедлива оценка

| | s? - 7 h2 max

| / IV (х) |,

2

х<=[а,Ь]

 

И ЛИ

 

 

|| ^ ||с(сол) ^

1,51г2м4,

где М4= max | / IV(x)|. Отсюда

и из

(18) получаем требуемое не-

* е [а ,й ]

 

 

равенство (15). Лемма 1 доказана.

ку

Перейдем к доказательству теоремы 1. Получим сначала оцен­

(14)

погрешности f"(x) s' (х),

 

возникающей при интерполи

ровании

f(x) кубическим

сплайном

sh(x).

Рассмотрим

отрезок

[xi-ly х{], где i — любое из

чисел

1, 2, ...,

N. На этом

отрезке

s"

(х) =Ci-\-d,(x—x,) и согласно (4)

имеем

 

 

 

 

s’h (х) =

ci +

^

1~х (х — Xi)

 

 

 

 

 

 

 

 

145

или

 

 

 

s"h(.*) =

ad +

(1 — ос) С/—!,

 

где

 

 

 

а =

 

1— а =

(20)

h

 

h

 

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

У(а) =

a v i +

(1 — ос) V i - U

 

так что

S" (*) = cf.

 

 

 

Воспользовавшись тождеством

Г(х) = ( Г Г + ( Г ( х ) - Г Г ,

■представим погрешность f" (х) s" (х) в виде

 

 

г м

-

si (х) = if; -

а г

+

(/" w

-

/о(а)-

 

Отсюда получаем неравенство

 

 

 

 

 

 

 

 

 

I Г

(х) Sh (X) I ss

I (/;• -

Cl)(a) I +

I ( f

(*) -

П Г I,

(21)

справедливое

для

любого

х ^ [ х {-^, х{].

Оценим

отдельно

каждое

из двух слагаемых в правой части неравенства

(21). Для

первого

слагаемого, учитывая лемму 1, имеем

 

 

 

 

 

 

 

(/г —Сс)(а) | = | ос а) + (1

— ос) (/;_! — си ) | <

 

 

 

 

^ ОСI/" ( X )

Sh (х) ||C(a,ft) +

(1 —

ОС) II /" ( X )

S h (х) Цс,^) ^

j M J l 2,

т. е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 (/;- с ,- Г | 5 £ - М 4/г2.

 

 

 

(22)

 

 

 

 

 

 

 

4

 

 

 

 

 

 

Далее, рассмотрим выражение

 

 

 

 

 

 

 

 

(/" (*) -

Г Г = «(/" (*) -/")+(1 -

«) (/" (*) - Г-П-

 

По формуле Тейлора имеем

 

 

 

 

 

 

 

 

 

 

г

(х) -

Г =ф -

х ц г

(х) -

Г

г

Г

г

(у ,

 

 

/" (X) - Г

= ( х -

х Г

Г (х) -

{Х~ ХГ

. Г

(У,

 

где

^е(А\_,, Xi). Отсюда и из (20)

получим

 

 

 

(х) -

Г Г = [ а ( х - Х1) + ( \ - а ) ( х - хи )]Г Г ) ~

 

 

 

- 1

[«(х -

х,у f'v (I) +

(1 -

сс) (* -

ХпО2Г

(?«)] =

 

 

 

=

-

 

 

г

-х) Г

(Ь)+ (х-

/'v(COJ.

146

 

 

 

 

 

 

 

 

 

 

 

 

 

так что

 

< — max [(х — X i - i ) ( X i —x)] {.Vf4(xt x) +

4(x — x,^)} =

2Л

 

Итак, второе слагаемое в правой части неравенства (21) оце­

нивается следующим образом:

 

1 (Г (* )-/0 <а’ К ^ о 2- .

(23)

Подставляя оценки (22) и (23) в неравенство

(21), получим

| r ( x ) - s ' h( x ) \ ^ ™ f -

(24)

для любого А е [Xi-UXi]. Поскольку неравенство (24) справедливо

для любого i=l, 2,. . . , N, из него следует оценка (14).

Докажем теперь оценку (13). Рассмотрим на отрезке [х(_,, х;] функцию r(x)=f(x)—sh(x). По определению сплайна имеем r(x{-i)=r(xi)=0, следовательно, найдется точка |е ( х ;-,,Х;), в ко­ торой г'(£)=0. Поэтому

 

I г'(х) | = | г' (х) - г ' (|) | = | г" а ) (х- D к | г"

| к

где

(*(_,, х;) . Таким образом,

 

 

l/'( * ) - < ( x ) i< ir ( D - s ;( S ) |f t,

 

и, учитывая (14), получим неравенство

 

 

I /' (X) — sfti(x) I eg М4А»,

 

из которого следует оценка (13).

точка из ин­

 

Осталось получить оценку (12). Пусть х —любая

тервала (х;_!, х(). Введем функцию

 

 

£ (0 = /(0 - М 0 - * (* - * < - .)

(25)

где £e[Xi-,,Xi] и /( —постоянная, выбираемая из условия g(.v)=0, т. е.

у- . f(x)-Sh (*)

(х — х ^ ) (х — xt)

Имеем £(Xi_,)=g(Xi)=g(x)=0. Поэтому найдется хотя бы одна точка |e(Xi_,,Xi), в которой g "(|)= 0 . Поскольку

g"(t)= f"(t)~ sh(t) -2K ,

получим

т. е.

ч

И ю - * ; ( а ,

/ (х) — S h (X) =

------ ------ (X — АМ) (X —

X i ) .

147

Отсюда и из (14) получаем неравенство

I / (х) — яЛ(х) к Z иг

М —s; (х) |C(W/1) 44- sT 6 ,

которое и приводит к оценке

(12). Теорема 1 доказана.

§5. Другие постановки задач интерполирования

иприближения функций

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

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

Пр и мер 1. Тригонометрическая интерполяция. Если f(x)

периодическая функция с периодом /, то естественно строить при­ ближения с помощью функций

ф* (*) = Щ cos — 1- bk sin —j—, к = 0, 1

Таким образом, тригонометрическая интерполяция состоит в за­ мене f(x) тригонометрическим многочленом

тп(х) = 2

ФА(х) =

а0-f

^

(«йCOS

+ bksin

,

/ г = о

 

k =i

4

 

 

коэффициенты которого отыскиваются из системы уравнений

 

Tn(xj)=f(xj),

/=1, 2........2/1+ 1,

 

где x0< x t<. . .< -^2n+lJ -^2п+1

*0

 

 

 

 

П р и м е р 2.

Приближение рациональными функциями. Пусть

значения функции }(х) заданы в точках x0<Xi< - . ,<хп. Требуется построить функцию

akxk +

ak_vxk 1 +

.. . +

а0

(1)

Фа; М

 

 

 

х1+ b[_yx l 1 + .. . + Ь0

 

(k, l заданы), для которой

 

 

 

 

фu(xj)=f(Xj),

/ = 0,

1, ...,

п.

(2)

Уравнения (2) представляют собой систему из п+ 1 уравнения от­ носительно k + l+ 1 неизвестного а0, аи ..., ak, Ьа, Ьи ..., Бу­ дем требовать, чтобы число уравнений равнялось числу неизвест­ ных, т. е. «=& + /. Тогда придем к системе линейных уравнений2

2

ft 2 biX' = fjX1., j — 0, 1, . . .,

(3)

1=0

1=0

 

148

в которой

неизвестными являются

величины

аи i= 0,

и bu i= 0, 1, . . . , 1.

 

 

 

П р и м е р

3. Дробно-линейная интерполяция. Пусть значения

функции f(x)

заданы в трех узлах, а именно в точках xt- u xit xi+u

причем xi- l<xi<xi+1. Построим функцию

 

 

ср (х) =

aix +

а0

(4)

 

 

х+ Ь0

 

для которой

ср(х.,)=Дх^, j=i—1, i, г+1. Данная

задача является

частным случаем задачи, сформулированной в предыдущем при­ мере, когда k=l= 1. Поэтому для определения коэффициентов

а0, аи Ьа можно воспользоваться системой уравнений

(3), которая

в данном случае примет вид

 

 

 

 

ф| +

b j ;_ i =

Х{- i f l - i ,

 

 

а0+

ayxi — b0fi = Xifi,

(5)

UQ “ Ь

b g f i + l = X t + l f l + 1-

 

Найдем в явном виде решение этой системы. Обозначим

Ы = хсxi-u

;+1 =

xi+l xi,

Tic=

0,5 (/ii+1 +

K),

fx,i = (/‘

fc-i)/hl, fx,i =

{fi+i

fi)lhi+1,

 

 

fxS.i=(fx.i-fx.i)hi.

 

 

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

a0+ a 1xi — b0fi = Xifi,

 

 

ai

~

boh.i=--(xf h i ’

(6)

 

— bofxi.i = (xf)^j

 

Если f-£i =т^О, то из (6) последовательно найдем

b. — - W)-

, a i = f r

2h U

f-~ . ’

* "

f-~ .

X X

,1

 

' X X

,1

^ X X , i

При проведении вычислений по этим формулам может оказаться полезным тождество

(*/)«./=

+

h+1 - U-

ь.,

 

 

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

149

мепатель. В последнем случае дробно-линейная функция (4) вы­ рождается в константу.

В качестве примера рассмотрим функцию f(x)=kx2, k¥=0. Для

нее f-~

и система (6) имеет единственное решение

 

Ь0 — — (*;-1 + Xi + JCi+i),

 

7 7к {Xi~\Xi -f- Xi—iXi+ XiX[.)),

 

a0= kxi-iXcXi

причем

aib0—a0=k(xi+1 + xi- l) [х{( х ^ + х{-\-х1+1) + xi+iXi-i].

Следовательно, приближение f(x) с помощью функции (4) не­ возможно вблизи точки х= —b„=xi- l-\-xi+ xi+i. Кроме того, условие а^о—йоФО приводит к следующим ограничениям на расположениеузлов интерполирования:

Xi+i + X i - ^ O , X iiX i- ^ - X i + X n .,) + x i+lX i - ^ 0 .

П р и м е р 4. Двумерная интерполяция. На плоскости хОу за­ даны три точки А{(х{,у {), i= 1,2,3, не лежащие на одной прямой. Требуется, используя значения и{=и{х{, г/,-) функции и(х,у) в этих точках, построить аппроксимацию производных ди/дх, ди/ду. Для решения этой задачи воспользуемся линейной интерполяцией, т. е. будем считать, что

u (x,y)= a(x -xl) + b ( y - y l)+c.

(7)

Тогда получим, что ди/дх=а, ди/ду=Ь, т. е. при интерполяции: функции и (х, у) с помощью линейной функции производные заме­ няются константами. Явные выражения для коэффициентов а, Ь, с нетрудно найти из условий интерполирования u(xi,yl)= u i. Дейст­ вительно, из условия и(хи у,)=и1 получаем, что с=ц,. Далее, ре­ шая систему

а(х2 — Xj) + b (у2 — уд =--; u2 — ult

а(х3A'J) + b (у3 — yj) = и3 — ии

получим

“ 2 « 1

«з — “ 1

где

Уз — У\ ,

Хч — JCi

и, — их

( 8>

ь = - ^

Ui

Уз — У1

д *1

 

Уз — Уг Уз~У\

Выражения (8) и задают искомые приближения к производным

ди/дх, ди/ду.

Определитель Д данной системы не равен нулю, так как по ус­ ловию точки Аи А2, А3 не лежат на одной прямой.

Заметим, что соотношения (7),

(8) можно записать в виде

U — Щ X — JCj

у — уу

ц2 — щ х2хг У ч у, = 0,

и 3 — «1 Х 3 X ,

У з у !

>50

Соседние файлы в предмете Численные методы