Plaskota L Trzynaście wykładów z matematyki obliczeniowej

background image

Trzynaście Wykładów

z Matematyki Obliczeniowej

Leszek Plaskota

Instytut Matematyki Stosowanej i Mechaniki

Uniwersytet Warszawski

background image

Spis treści

1 Specyfika obliczeń numerycznych

1

1.1 Zadania numeryczne, przykłady . . . . . . . . . . . . . .

1

1.2 Model obliczeniowy . . . . . . . . . . . . . . . . . . . . .

3

1.3 Arytmetyka

ν

. . . . . . . . . . . . . . . . . . . . . . .

5

2 Algorytmy i ich własności

11

2.1 Rozkład algorytmu względem informacji . . . . . . . . . 11
2.2 Problem wyboru algorytmu . . . . . . . . . . . . . . . . 12
2.3 Numeryczna poprawność algorytmu . . . . . . . . . . . . 13
2.4 Rola uwarunkowania zadania . . . . . . . . . . . . . . . . 15
2.5 Przykłady . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5.1 Iloczyn skalarny . . . . . . . . . . . . . . . . . . . 17
2.5.2 Całkowanie . . . . . . . . . . . . . . . . . . . . . 18

3 Układy równań liniowych

25

3.1 Układy z macierzą trójkątną . . . . . . . . . . . . . . . . 25
3.2 Eliminacja Gaussa . . . . . . . . . . . . . . . . . . . . . 26
3.3 Rozkład trójkątny macierzy . . . . . . . . . . . . . . . . 28

4 Analiza błędów w eliminacji Gaussa

39

4.1 Układy z macierzą trójkątną . . . . . . . . . . . . . . . . 39
4.2 Poprawność rozkładu trójkątnego . . . . . . . . . . . . . 40
4.3 Poprawność rozwiązywania układu . . . . . . . . . . . . 44
4.4 Uwarunkowanie macierzy, a błąd w

ν

. . . . . . . . . .

46

5 Zadanie wygładzania liniowego

51

5.1 Układ normalny . . . . . . . . . . . . . . . . . . . . . . . 51

i

background image

ii

SPIS TREŚCI

5.2 Odbicia Hauseholdera . . . . . . . . . . . . . . . . . . . . 54
5.3 Algorytm dla zadania wygładzania . . . . . . . . . . . . 56

6 Interpolacja wielomianowa

65

6.1 Sformułowanie zadania interpolacji . . . . . . . . . . . . 65
6.2 Wybór bazy wielomianowej . . . . . . . . . . . . . . . . 67
6.3 Algorytm różnic dzielonych . . . . . . . . . . . . . . . . 69
6.4 Przypadek węzłów wielokrotnych . . . . . . . . . . . . . 71

7 Interpolacja a aproksymacja funkcji

77

7.1 Błąd interpolacji wielomianowej . . . . . . . . . . . . . . 77
7.2 Wielomiany Czebyszewa . . . . . . . . . . . . . . . . . . 80
7.3 Interpolacja kawałkami wielomianowa . . . . . . . . . . . 83

8 Interpolacja funkcjami sklejanymi

89

8.1 Co to są funkcje sklejane? . . . . . . . . . . . . . . . . . 89
8.2 Interpolacja i gładkość . . . . . . . . . . . . . . . . . . . 90
8.3 Kubiczne funkcje sklejane . . . . . . . . . . . . . . . . . 94

9 Całkowanie numeryczne

103

9.1 Co to są kwadratury? . . . . . . . . . . . . . . . . . . . . 103
9.2 Błąd kwadratur interpolacyjnych . . . . . . . . . . . . . 105
9.3 Kwadratury złożone . . . . . . . . . . . . . . . . . . . . 108
9.4 Przyspieszanie zbieżności kwadratur . . . . . . . . . . . . 110

10 Całkowanie a aproksymacja

117

10.1 Rząd kwadratury . . . . . . . . . . . . . . . . . . . . . . 117
10.2 Ciągi wielomianów ortogonalnych . . . . . . . . . . . . . 119
10.3 Kwadratury Gaussa . . . . . . . . . . . . . . . . . . . . . 123

11 Iteracje dla równań liniowych

131

11.1 Kiedy stosujemy iteracje? . . . . . . . . . . . . . . . . . 132
11.2 Metoda Czebyszewa . . . . . . . . . . . . . . . . . . . . . 134
11.3 Metoda najszybszego spadku . . . . . . . . . . . . . . . . 139

12 Iteracje dla równań nieliniowych

145

12.1 Bisekcja . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
12.2 Iteracje proste . . . . . . . . . . . . . . . . . . . . . . . . 147

background image

SPIS TREŚCI

iii

12.3 Metody interpolacyjne . . . . . . . . . . . . . . . . . . . 149
12.4 Obliczanie zer wielomianów . . . . . . . . . . . . . . . . 153

background image

iv

SPIS TREŚCI

background image

Rozdział 1

Specyfika obliczeń
numerycznych

Matematyka obliczeniowa jest dziedziną wiedzy zajmującą się proble-
mami obliczeniowymi i konstrukcją algorytmów rozwiązywania zadań
matematycznych.

Aby w ogóle mówić w problemie obliczeniowym, musimy najpierw

określić dane początkowe i cel obliczeń, czyli dokładnie sformuło-

wać zadanie,

określić środki obliczeniowe dzięki którym chcemy osiągnąć cel,

czyli zdefiniować model obliczeniowy.

1.1 Zadania numeryczne, przykłady

Sformułowanie zadania polega na sprecyzowaniu tego, co mamy i co
chcemy uzyskać. Formalnie polega to na zdefiniowaniu przestrzeni da-
nych F , przestrzeni wyników G i wskazaniu zależności f 7→ g, gdzie
f

∈ F i g ∈ G, między danymi a wynikami. Zależność tę repezentuje

operator rozwiązania

S

: F −→ G.

Będziemy zainteresowani przede wszystkim zadaniami numerycz-

nymi. Są to zadania, dla których wynikiem g jest zawsze skończony

1

background image

2

ROZDZIAŁ 1. SPECYFIKA OBLICZEŃ NUMERYCZNYCH

ciąg liczb rzeczywistych, czyli

G

⊂ ∪

n=0

R

n

(przyjmujemy przy tym, że R

0

= pusty). Zbiór danych może być w

zasadzie dowolny, ale my będziemy dla uproszczenia rozpatrywać tylko
zadania dla których F ⊂ R

m

, albo ogólniej, dla których F jest pewną

klasą funkcji zdefiniowanych na ustalonym zbiorze D ⊂ R

d

.

Przykład 1.1 (Równanie kwadratowe.) Załóżmy, że chcemy obliczyć
wszystkie rzeczywiste pierwiastki równania

x

2

2p + q = 0,

dla danych liczb rzeczywistych p i q. Wtedy F = R

2

, G = R

0

R

1

R

2

,

oraz

S

(p, q) =


pusty

< 0,

p

∆ = 0,

(p +

, p −

∆)

> 0,

(1.1)

gdzie ∆ = p

2

− q.

Przykład 1.2 (Układ równań liniowych.) Rozpatrzmy zadanie roz-
wiązywania układu równań liniowych

A~x

= ~b,

dla nieosobliwej macierzy A = (a

i,j

)

n

i,j=1

i wektora ~b = (b

j

)

n

j=1

. Wtedy

F

= { (A,~b) R

n

2

+n

: det A 6= 0 },

G

= R

n

, oraz

S

(A,~b) = A

1

~b.

Przykład 1.3 (Całkowanie.) Dla danej funkcji ciągłej f : [a, b]

R,

chcemy obliczyć całkę oznaczoną

I

(f) =

Z

b

a

f

(x) dx.

W tym przypadku G = R, ale dane stanowi pewna klasa funkcji cią-
głych określonych na odcinku [a, b], tzn. F ⊂ C([a, b]). Oczywiście S

jest operatorem całkowania, S = I.

background image

1.2. MODEL OBLICZENIOWY

3

1.2 Model obliczeniowy

Aby zdefiniować nasz model obliczeniowy, posłużymy się pojęciem pro-
gramu
. Zastosujemy przy tym notację podobną do tej z języka progra-
mowania Pascal.

Program składa się z deklaracji, czyli opisu obiektów, których bę-

dziemy używać, oraz z poleceń (instrukcji), czyli opisu akcji, które bę-
dziemy wykonywać.

Dostępnymi obiektami są stałe i zmienne typu całkowitego (inte-

ger), rzeczywistego (real), albo logicznego (Boolean). Zmienne mogą
być grupowane w wektory albo tablice.

Polecenia dzielimy na proste i złożone. Poleceniem prostym jest

Podstawienie

z

:= W;

gdzie z jest zmienną, a W jest wyrażeniem o wartościach tego samego

typu co z.

Wyrażeniem jest pojedyncza stała lub zmienna, albo złożenie skoń-

czonej liczby operacji elementarnych na wyrażeniach. Operacje elemen-
tarne to:

arytmetyczno–arytmetyczne: x

7→ −x, (x, y) 7→ x + y, (x, y) 7→

x

− y, (x, y) 7→ x ∗ y, (x, y) 7→ x/y, y 6= 0, gdzie x, y są stałymi

lub zmiennymi liczbowymi,

arytmetyczno–logiczne: (x, y)

7→ x < y, (x, y) 7→ x ≤ y, (x, y) 7→

x

= y, (x, y) 7→ x 6= y, gdzie x, y są stałymi lub zmiennymi

liczbowymi,

logiczno–logiczne: p

7→ not p, (p, q) 7→ p and q, (p, q) 7→ p or q, gdzie

p, q

są stałymi lub zmiennymi logicznymi.

Dla niektórych zadań wygodnie jest (a czasem koniecznie) uzu-

pełnić ten zbiór o dodatkowe operacje, takie jak obliczanie wartości
niektórych funkcji standardowych (√ , cos(), sin(), exp(), log(), itp.),

background image

4

ROZDZIAŁ 1. SPECYFIKA OBLICZEŃ NUMERYCZNYCH

czy nawet funkcji bardziej skomplikowanych. Na przykład, zastosowa-
nie “szkolnych” wzorów na obliczanie pierwiatków równania kwadrato-
wego z Przykładu 1.1 byłoby niemożliwe, gdyby pierwiastkowanie było
niemożliwe. Należy jednak przy tym pamiętać, że w praktyce funk-
cje standardowe (o ile są dopuszczalne) są obliczane używając czterech
podstawowych operacji arytmetycznych.

Mamy trzy podstawowe polecenia złożone.

Warunkowe

if

W then A

1

else

A

2

;

gdzie W jest wyrażeniem o wartościach logicznych, a A

1

i A

2

są pole-

ceniami, przy czym dopuszczamy polecenia puste.

Powtarzane

while

W do A;

gdzie W jest wyrażeniem o wartościach logicznych, a A jest poleceniem.

Kombinowane

begin

A

1

; A

2

; . . . ; A

n

end;

gdzie A

j

są poleceniami.

Na podstawie tych trzech poleceń można tworzyć inne, takie jak

pętle for i repeat, czy case, itd.

Mamy też dwa szczególne polecenia, które odpowiadają za ”wejście”

i ”wyjście”.

Wprowadzanie danych

IN (x, t);

gdzie x jest zmienną rzeczywistą, a t “adresem” pewnego funkcjonału
L

: F → R należącym to pewnego zbioru T . W wyniku wykonania tego

polecenia w zmiennej x zostaje umieszczona wartość L

t

(f).

Polecenie to pozwala zdobyć informację o danej f. Jeśli F = R

n

to

zwykle mamy T = {1, 2, . . . , n} i L

i

(f) = f

i

, co w praktyce odpowiada

background image

1.3. ARYTMETYKA FL

ν

5

wczytaniu i-tej współrzędnej wektora danych. W szczególności, ciąg po-
leceń IN (x[i], i), i = 1, 2, . . . , n, pozwala uzyskać pełną informację o
f

. Jeśli zaś F jest pewną klasą funkcji f : [a, b] R, to możemy mieć

np. T = [a, b] i L

t

(f) = f(t). W tym przypadku, wykonanie polecenia

IN (x, t) odpowiada w praktyce skorzystaniu ze specjalnej procedury

(albo urządzenia zewnętrznego) obliczającej (mierzącego) wartość funk-
cji f w punkcie t.

Wyprowadzanie wyników

OUT (W);

gdzie W jest wyrażeniem o wartościach rzeczywistych. Polecenie to po-

zwala “wskazać” kolejną współrzędną wyniku.

Zakładamy, że na początku procesu obliczeniowego wartości wszyst-

kich zmiennych są nieokreślone, oraz że dla dowolnych danych wykona-
nie programu wymaga wykonania skończonej liczby operacji elementar-
nych. Wynikiem obliczeń jest skońćzony ciąg liczb rzeczywistych (albo
puste

), którego kolejne współrzędne pokazywane są poleceniem OUT .

1.3 Arytmetyka

fl ν

Przedstawiony model obliczeniowy jest modelem idealistycznym, tzn.
zakłada on, że wszystkie operacje są wykonywane bezbłędnie. Dlatego
w tym przypadku będziemy mówić o arytmetyce idealnej. W praktyce
jednak, np. wykonując obliczenia na maszynie cyfrowej, operacje aryt-
metyczne na liczbach rzeczywistych wykonywane są z pewnym błędem.
Matematycznym modelem arytmetyki maszyny cyfrowej jest arytme-
tyka fl

ν

(albo arytmetyka zmiennoprzecinkowa), którą teraz przedsta-

wimy.

Dowolną liczbę rzeczywistą x 6= 0 można przedstawić w postaci

x

= s · 10

c

· m,

gdzie s ∈ {−1, 1} jest znakiem, c ∈ Z cechą, a m ∈ [0.1, 1.0) mantysą

liczby x. Zauważmy, że taki rozkład jest jednoznaczny i odpowiada prze-
suwaniu przecinka w rozwinięciu dziesiętnym liczby do pierwszej cyfry

background image

6

ROZDZIAŁ 1. SPECYFIKA OBLICZEŃ NUMERYCZNYCH

znaczącej, tj. różnej od zera. Mantysa ma w ogólności nieskończenie
wiele cyfr c

j

w swoim rozwinięciu dziesiętnym,

m

=

X

j=1

c

j

10

−j

,

gdzie c

j

∈ {0, 1, 2, . . . , 9} i c

1

6= 0. Jako taka nie może więc być zapa-

miętana dokładnie w pamięci maszyny cyfrowej. Zakładając, że pamię-
tamy tylko t cyfr znaczących i ostatnią cyfrę zaokrąglamy, zamiast m
pamiętamy

m

t

=

t

X

j=1

c

j

10

−j

+ d

t

10

−j

,

gdzie

d

t

=

(

0

gdy 0 ≤ c

t+1

4},

1

gdy 5 ≤ c

t+1

9}.

Stąd x będzie reprezentowana przez liczbę

rd (x) = s

· 10

c

· m

t

.

Między liczbą x (x 6= 0) a jej reprezentacją rd(x) zachodzi więc

nierówność

|x − rd(x)|

|x|

= |

m

− m

t

|

|m|

5 · 10

(t+1)

10

1

= 5 · 10

−t

,

charakteryzująca dokładność arytmetyki. Liczby rzeczywiste są więc w
arytmetyce

ν

reprezentowane z dokładnością względną ν = 5·10

−t

. (We

współczesnych maszynach cyfrowych w pojedynczej precyzji mamy co
najmniej t = 8.) Zauważmy, że t jest największą spośród liczb natural-
nych j spełniających bierówność rd(1 + 10

−j

) > 1.

Ostatnią nierówność wygodnie jest zapisać w równoważny sposób

jako

rd (x) = x(1 + ε),

gdzie |ε| ≤ ν.

W arytmetyce

ν

zakładamy ponadto, że działania arytmetyczne na

liczbach rzeczywistych (a raczej na ich reprezentacjach) są wykonywane
dokładnie i tylko wynik jest zaokrąglany. Mamy więc

ν

(x 2 y) = rd ( rd(x) 2 rd(y) ) ,

background image

1.3. ARYTMETYKA FL

ν

7

gdzie 2 ∈ {+, −, ∗, /}, Ogólniej, jeśli W

1

i W

2

są wyrażeniami o war-

tościach rzeczywistych, to dla dowolnych wartości zmiennych

ν

(W

1

2

W

2

) = rd (

ν

(W

1

) 2

ν

(W

2

)) .

Zwykle dla prostoty będziemy również zakładać podobną zależność dla
niektórych funkcji standardowych, o ile należą one do zbioru operacji
elementarnych (chociaż w rzeczywistości są one obliczane przez pro-
cedury używające czterech podstawowych operacji arytmetycznych). I
tak będziemy mieć np.

ν

W

=

q

ν

(W)

(1 + β

1

),

ν

(W) = (cos(

ν

(W))) (1 + β

2

),

gdzie

j

| ≤ ν, oraz β

j

≤ K

j

ν

i K

j

są “niewielkimi” stąłymi.

Podobnie, jeśli jest operatorem porównania, △ ∈ {<, ≤, =, 6=},

to wartością wyrażenia logicznego W

1

△W

2

w

ν

jest dokładna wartość

wyrażenia

ν

(W

1

)△fl

ν

(W

2

).

Uwagi i uzupełnienia

U. 1.1 W maszynie cyfrowej cecha c liczby rzeczywistej nie może oczywi-
ście mieć dowolnie dużej wartości bezwzględnej, |c| ≤ c

max

. Powoduje to

powstanie zjawiska nadmiaru gdy c > c

max

, oraz zjawiska niedomiaru gdy

c <

−c

max

. W pierwszym przypadku liczba jest tak duża (co do modułu),

że nie zawiera się w przedziale liczb reprezentowalnych, a w drugim jest tak
mała, że musi być reprentowana przez zero, przy czym błąd względny repre-
zentacji wynosi wtedy 1 a nie ν. W dalszych rozważaniach zjawiska nadmiaru
i niedomiaru będziemy dla uproszczenia zaniedbywać.

U. 1.2 W następnych rozdziałach często będziemy się posługiwać normami
wektorów ~x = (x

j

)

n

j=1

R

n

i macierzy A = (a

i,j

)

n

i,j=1

R

n×n

, a w szcze-

gólności błędami reprezentacji wektorów i macierzy w normie. Najczęściej
używanymi normami wektorowymi będą normy p-te,

k~xk = k~xk

p

=

n

X

j=1

|x

j

|

p

1/p

,

1 ≤ p < +∞,

background image

8

ROZDZIAŁ 1. SPECYFIKA OBLICZEŃ NUMERYCZNYCH

oraz

k~xk

= lim

p→+

k~xk

p

= max

1≤j≤n

|x

j

|.

Normą macierzową jest norma euklidesowa (albo Frobeniusa)

kAk

E

=

v

u

u

t

n

X

i,j=1

|a

i,j

|

2

,

a także normy indukowane przez normy wektorowe (np. przez normy p-te)

kAk = sup

x6=0

kA~xk

k~xk

= sup

kxk=1

kA~xk.

Jeśli norma macierzowa jest indukowana przez normę wektorową, to dla
dowolnego wektora mamy

kA~xk ≤ kAkk~xk.

U. 1.3 Przypomnijmy, że w przestrzeniach liniowych skończenie wymiaro-
wych (a więc także w R

n

i w przestrzeni macierzy wymiaru n × n) każde

dwie normy są równoważne. To znaczy, że jeśli mamy dwie normy k · k i k · k

w przestrzeni skończenie wymiarowej X, to istnieją stałe 0 < K

1

≤ K

2

<

takie, że

K

1

kxk ≤ kxk

≤ K

2

kxk,

∀x ∈ X.

W szczególności dla ~x ∈ R

n

mamy

k~xk

≤ k~xk

1

≤ n k~xk

,

(1.2)

k~xk

≤ k~xk

2

n

k~xk

,

(1.3)

1

n

k~xk

1

≤ k~xk

2

≤ k~xk

1

,

(1.4)

a dla A = (a

i,j

)

n

i,j=1

mamy

kAk

2

≤ k |A| k

2

≤ kAk

E

n

kAk

2

,

(1.5)

gdzie |A| = (|a

i,j

|)

n

i,j=1

.

background image

1.3. ARYTMETYKA FL

ν

9

Ćwiczenia

Ćw. 1.1 Podać przykłady liczb x i y, które są dokładnie reprezentowane w

ν

, ale

ν

(x2y) 6= x2y, gdzie 2 ∈ {+, −, ∗, /}.

Ćw. 1.2 Uzasadnić, że jeśli x ≤ y to rd(x) ≤ rd(y) oraz

ν

(x/y) 1.

Podać przykład wyrażenia W takiego, że dla pewnych wartości zmiennych
W < 0, ale

ν

(W) > 0.

Ćw. 1.3 Jak zabezpieczyć się przed powstaniem nadmiaru albo niedomiaru
przy obliczaniu wyrażenia

p

x

2

+ y

2

, gdy x i y leżą w przedziale liczb repre-

zentowalnych w

ν

, ale x

2

lub y

2

nie?

Ćw. 1.4 Uzasadnić nierówności (1.2)–(1.5).

Ćw. 1.5 Pokazać, że dla macierzy A = (a

i,j

)

n

i.j=1

R

n×n

mamy

kAk

= max

1≤i≤n

n

X

j=1

|a

i,j

|

oraz

kAk

1

= kA

T

k

= max

1≤j≤n

n

X

i=1

|a

i,j

|.

Ćw. 1.6 Dla wektora ~x = (x

j

)

n

j=1

R

n

, niech rd(~x) = (rd(x

j

))

n

j=1

. Poka-

zać, że

k~x − rd(~x)k

p

≤ ν k~xk

p

dla 1 ≤ p ≤ ∞.

Ćw. 1.7 Dla macierzy A = (a

i,j

)

n

i,j=1

, niech rd(A) = (rd(a

i,j

))

n

i,j=1

. Poka-

zać, że

kA − rd(A)k

p

≤ ν kAk

p

,

dla p = 1, ∞, oraz

kA − rd(A)k

2

≤ kA − rd(A)k

E

≤ ν kAk

E

n ν

kAk

2

.

æ

background image

10

ROZDZIAŁ 1. SPECYFIKA OBLICZEŃ NUMERYCZNYCH

background image

Rozdział 2

Algorytmy i ich własności

Algorytm to dokładnie określona i dozwolona w danym modelu oblicze-
niowym sekwencja akcji, pozwalająca na rozwiązanie danego zadania
(w sposób dokładny lub przybliżony).

2.1 Rozkład algorytmu względem infor-

macji

Z każdym algorytmem związany jest operator

Φ : F −→ G,

taki że Φ(f) jest wynikiem działania algorytmu w arytmetyce idealnej
dla danej f.

Zauważmy, że wynik Φ(f) działania algorytmu nie zależy bezpo-

średnio od f, ale raczej od informacji o f (uzyskanej dzięki poleceniu
IN ). Informacja ta może być pełna albo tylko częściowa. Informacja

jest pełna gdy, np. f = (f

1

, . . . , f

n

) R

n

i wczytamy wszystkie współ-

rzędne f

i

. Informacja może być częściowa, gdy f jest funkcją. Wtedy

wiele danych może posiadać tę samą informację, co łatwo zaobserwować
na przykładzie zadania całkowania.

Niech N : F → ∪

n=0

R

n

będzie operatorem informacji, tzn.

N

(f) = (y

1

, y

2

, . . . , y

n

)

11

background image

12

ROZDZIAŁ 2. ALGORYTMY I ICH WŁASNOŚCI

jest informacją o f zebraną przy idealnej realizacji algorytmu. Za-
uważmy, że nformacja jest pełna gdy N jest przekształceniem różnowar-
tościowym, tzn. jeśli f

1

6= f

2

implikuje N(f

1

) 6= N(f

2

). W przeciwnym

przypadku mamy do czynienia z informacją częściową.

Każdy algorytm Φ może być przedstawiony jako złożenie operatora

informacji i pewnego operatora ϕ : N(F ) → G zdefiniowanego równo-

ścią

ϕ

(N(f)) = Φ(f).

Zauważmy, że w przypadku informacji częściowej zwykle nie istnieje

algorytm dający dokładne rozwiązanie zadania dla każdej danej f ∈ F ,

ponieważ dla danych o tej samej informacji mogą istnieć różne rozwią-
zania.

2.2 Problem wyboru algorytmu

Wybór algorytmu jest najistotniejszą częścią całego procesu numerycz-
nego rozwiązywania zadania. Kierujemy się przy tym przede wszystkim
następującymi kryteriami:

dokładnością algorytmu,

złożonością algorytmu,

własnościami numerycznymi algorytmu.

Przez dokładność algorytmu rozumiemy różnicę między rozwiąza-

niem dokładnym S(f), a rozwiązaniem Φ(f) dawanym przez algorytm
w arytmetyce idealnej. Jeśli Φ(f) = S(f), ∀f ∈ F , to algorytm nazy-

wamy dokładnym.

Mówiąc o złożoności, mamy na myśli złożoność pamięciową (zwy-

kle jest to liczba stałych i zmiennych używanych przez algorytm), jak
również złożoność obliczeniową. Na złożoność obliczeniową algorytmu
dla danej f składa się koszt uzyskania infomacji y = N(f) (zwykle jest
on proporcjonalny do liczby wywołań polecenia IN ), oraz koszt kombi-
natoryczny
przetworzenia tej informacji, aż do uzyskania wyniku ϕ(y).
Koszt kombinatoryczny zwykle mierzymy liczbą operacji arytmetycz-
nych wykonywanych przez algorytm.

background image

2.3. NUMERYCZNA POPRAWNOŚĆ ALGORYTMU

13

Przez własności numeryczne algorytmu rozumiemy jego własności

przy realizacji w arytmetyce

ν

. Temu ważnemu tematowi poświęcimy

teraz osobny paragraf.

2.3 Numeryczna poprawność algorytmu

Pożądane jest, aby algorytm dawał “dobry” wynik zarówno w arytme-
tyce idealnej, jak i w arytmetyce

ν

. Niestety, jak zobaczymy, nie zawsze

jest to możliwe. Nawet jeśli algorytm jest dokładny to w wyniku jego
realizacji w

ν

możemy otrzymać wynik

ν

(Φ(f)) daleko odbiegający

od S(f). W szczególności, prawie zawsze mamy

S

(f) 6=

ν

(Φ(f)) .

Zauważmy również, że o ile z reguły znamy dokładne zachowanie się al-
gorytmu w arytmetyce idealnej dla danej informacji, to nie można tego
samego powiedzieć o jego zachowaniu się w arytmetyce

ν

. W związku

z tym powstaje pytanie, jak kontrolować błąd algorytmów wynikający z
błędów zaokrągleń i jakie algorytmy uznamy za te o najwyższej jakości
numerycznej.

Istnienie błędów reprezentacji liczb rzeczywistych powoduje, że in-

formacja y = N(f) o danej f nie jest w ogólności reprezentowana do-
kładnie. Znaczy to, że zamiast na informacji dokładnej, dowolny al-
gorytm będzie operować na informacji nieco zaburzonej y

ν

, tzn. zabu-

rzonej na poziomie błędu reprezentacji. Tak samo wynik dawany przez
algorytm będzie w ogólności zaburzony na poziomie błędu reprezenta-
cji. W najlepszym więc wypadku wynikiem działania algorytmu w

ν

będzie (ϕ(y

ν

))

ν

zamiast ϕ(y). Algorytmy dające tego rodzaju wyniki

uznamy za posiadające najlepsze własności numeryczne w arytmetyce

ν

i nazwiemy numerycznie poprawnymi.

Dokładniej, powiemy, że ciąg rzeczywisty a

ν

= (a

ν,1

, . . . , a

ν,n

) (a

właściwie rodzina ciągów {a

ν

}

ν

) jest nieco zaburzonym ciągiem a =

(a

1

, . . . , a

n

), jeśli istnieje stała K taka, że dla wszystkich dostatecznie

małych ν zachodzi

|a

ν,j

− a

j

| ≤ K ν |a

j

|,

1 ≤ j ≤ n,

(2.1)

background image

14

ROZDZIAŁ 2. ALGORYTMY I ICH WŁASNOŚCI

albo ogólniej

ka

ν

− ak ≤ K ν kak,

(2.2)

gdzie k · k jest pewną normą w R

n

. W pierwszym przypadku mówimy

o zaburzeniu “po współrzędnych”, a w drugim o zaburzeniu w normie
k · k.

Zauważmy, że niewielkie zaburzenia po współrzędnych pociągają za

sobą niewielkie zaburzenia w normie. Rzeczywiście, jeśli (2.1) to również

ka

ν

− ak

= max

1≤j≤n

|a

ν,j

− a

j

| ≤ K ν max

1≤j≤n

|a

j

| = K ν kak

,

i korzystając z faktu, że w przestrzeni skończenie wymiarowej wszystkie
normy są równoważne otrzymujemy dla pewnych stałych K

1

i K

2

ka

ν

− ak ≤ K

1

ka

ν

− ak

≤ K

1

K ν

kak

≤ K

2

K

1

K ν

kak,

czyli nierówność (2.2) ze stałą K

2

K

1

K

zamiast K.

Definicja 2.1 Algorytm Φ rozwiązywania zadania nazywamy nume-
rycznie poprawnym
w zbiorze danych F

0

⊂ F , jeśli dla każdej danej

f

∈ F

0

wynik

ν

(Φ(f)) działania algorytmu w arytmetyce

ν

można

zinterpretować jako nieco zaburzony wynik algorytmu w arytmetyce
idealnej dla nieco zaburzonej informacji y

ν

= (N(f))

ν

∈ N(F ) o f,

przy czym poziom zaburzeń nie zależy od f.

Formalnie znaczy to, że istnieją stałe K

1

, K

2

, oraz ν

0

>

0 takie, że

spełniony jest następujący warunek. Dla dowolnej ν ≤ ν

0

oraz informa-

cji y ∈ N(F

0

) można dobrać y

ν

∈ N(F ) oraz (ϕ(y

ν

))

ν

takie, że

ky

ν

− yk ≤ K

1

ν

kyk,

k (ϕ(y

ν

))

ν

− ϕ(y

ν

)k ≤ K

2

ν

(y

ν

)k,

oraz

ν

(Φ(f)) =

ν

(ϕ(N(f))) = (ϕ(y

ν

))

ν

.

2

Zauważmy,że jeśli f ∈ R

n

, N(f) = (f

1

, . . . , f

n

), oraz algorytm jest

dokładny, Φ ≡ ϕ ≡ S, to numeryczną poprawność algorytmu można

równoważnie zapisać jako

ν

(Φ(f)) = (S(f

ν

))

ν

.

background image

2.4. ROLA UWARUNKOWANIA ZADANIA

15

2.4 Rola uwarunkowania zadania

Niech Φ(·) = ϕ(N(·)) będzie algorytmem numerycznie poprawnym dla

danych F

0

⊂ F . Wtedy jego błąd w

ν

można oszacować następująco:

kS(f) − fl

ν

(Φ(f))k = kS(f) (ϕ(y

ν

))

ν

k

≤ kS(f) − ϕ(y)k + (y) − ϕ(y

ν

)k + (y

ν

) (ϕ(y

ν

))

ν

k

≤ kS(f) Φ(f)k + (y) − ϕ(y

ν

)k + K

2

ν

(y

ν

)k

≤ kS(f) Φ(f)k + (1 + K

2

ν

)(y) − ϕ(y

ν

)k + K

2

ν

(y)k,

przy czym ky

ν

− yk ≤ K

1

ν

kyk. Stąd w szczególności wynika, że jeśli

algorytm jest numerycznie poprawny i ciągły ze względu na informację
y

, to

lim

ν→0

kS(f) − fl

ν

(Φ(f))k = kS(f) Φ(f)k.

To znaczy, że dla dostatecznie silnej arytmetyki algorytm będzie się
zachowywał w

ν

prawie tak jak w arytmetyce idealnej.

Z powyższych wzorów wynika, że błąd w

ν

algorytmu numerycznie

poprawnego zależy w dużym stopniu od:

dokładności algorytmu w arytmetyce idealnej,

dokładności ν arytmetyki

ν

,

wrażliwości algorytmu na małe względne zaburzenia informacji y.
Ponieważ dwa pierwsze punkty są raczej oczywiste, poświęcimy tro-

chę więcej uwagi jedynie trzeciemu.

Jeśli ϕ spełnia warunek Lipschitza ze stałą L, a dokładniej

(y

ν

) − ϕ(y)k ≤ L ky

ν

− yk,

to

kS(f) − fl

ν

(Φ(f))k

≤ kS(f) Φ(f)k + (1 + K

2

ν

)Lky

ν

− yk + K

2

ν

(y)k

≤ kS(f) Φ(f)k + (1 + K

2

ν

)LK

1

ν

kyk + K

2

ν

(y)k.

W tym przypadku błędy zaokrągleń zwiększają błąd bezwzględny al-
gorytmu proporcjonalnie do ν.

background image

16

ROZDZIAŁ 2. ALGORYTMY I ICH WŁASNOŚCI

Bardziej jednak interesuje nas błąd względny. Wybierzmy “małe”

η

0 i przypuśćmy, że

(y

ν

) − ϕ(y)k ≤ M K

1

ν

max(η, kϕ(y)k),

dla pewnej M niezależnej od y, tzn. błąd względny informscji, ky

ν

y

k ≤ K

1

ν

kyk, przenosi się na błąd względny wyniku (w arytmetyce

idealnej) ze “współczynnikiem wzmocnienia” M, albo na błąd bez-
względny ze współczynnikiem . (Zauważmy, że gdybyśmy wzięli
η

= 0 to dla y takiej, że ϕ(y) = 0 musiałoby być ϕ(y

ν

) = 0, co zwykle,

choć nie zawsze, nie jest prawdą.) Wtedy

kS(f) − fl

ν

(Φ(f))k

≤ kS(f) Φ(f)k + (1 + K

2

ν

)MK

1

ν

max(η, kϕ(y)k) + K

2

ν

(y)k

= kS(f) Φ(f)k + ν

M K

1

(1 + K

2

ν

) + K

2

max(η, kϕ(y)k).

W szczególności, gdy algorytm jest dokładny i korzysta z pełnej infor-
macji o f, tzn. S ≡ Φ ≡ ϕ, to błąd

kS(f) − fl

ν

(Φ(f))k

max(η, kS(f)k)

M K

1

(1 + K

2

ν

) + K

2

ν

(M K

1

+ K

2

) ν.

Stąd wynika, że jeśli (MK

1

+ K

2

)ν ≪ 1 to błąd względny algorytmu w

ν

jest mały, o ile kS(f)k ≥ η. Błąd względny jest proporcjonalny do

dokładności ν, arytmetyki

ν

, współczynników proporcjonalności K

i

algorytmu numerycznie poprawnego, oraz do wrażliwości M zadania S
na małe względne zaburzenia danych.

Zwróćmy uwagę na istotny fakt, że interesują nas właściwie tylko

te zaburzenia danych (informacji), które powstają przy analizie algo-
rytmu numerycznie poprawnego. I tak, jeśli algorytm jest numerycznie
poprawny z pozornymi zaburzeniami danych w normie, to trzeba zba-
dać wrażliwość zadania ze względu na zaburzenia danych w normie.
Jeśli zaś mamy pozorne zaburzenia “po współrzędnych” (co oczywiście
implikuje pozorne zaburzenia w normie) to wystarczy zbadać uwarun-
kowanie zadania ze względu na zaburzenia “po współrzędnych”, itd.

Zadania, które nie są zbyt wrażliwe na “małe” względne zaburze-

nia danych, tzn. dla których M jest “niewielkie”, nazywamy ogólnie
zadaniami dobrze uwarunkowanymi.

background image

2.5. PRZYKŁADY

17

2.5 Przykłady

Podamy teraz proste przykłady zadań, które mogą być rozwiązane al-
gorytmami mumerycznie poprawnymi. Oszacujemy też błędy tych al-
gorytmów.

2.5.1 Iloczyn skalarny

Załóżmy. że dla danych ciągów rzeczywistych o ustalonej długości n,
a

j

, b

j

, 1 ≤ j ≤ n, chcemy obliczyć

S

(a, b) =

n

X

j=1

a

j

b

j

.

Rozpatrzymy algorytm dokładny zdefiniowany powyższym wzorem i
korzystający z pełnej informacji o kolejnych współrzednych.

Oznaczmy przez ˜a

j

i ˜b

j

reprezentacje liczb a

j

i b

j

w

ν

, ˜a

j

= a

j

(1 +

α

j

), ˜b

j

= b

j

(1 + β

j

), oraz przez γ

j

i δ

j

błędy względne powstałe przy

kolejnych mnożeniach i dodawaniach. Oczywiście

j

|, |β

j

|, |γ

j

|, |δ

j

| ≤ ν.

Otrzymujemy

ν

n

X

j=1

a

j

b

j

=

(

ν

(

n−1

X

j=1

a

j

b

j

) + ˜a

n

˜b

n

(1 + γ

n

)

(1 + δ

n

) = . . .

=

· · ·

˜a

1

˜b

1

(1 + γ

1

) + ˜a

2

˜b

2

(1 + γ

2

)

(1 + δ

2

)

+ · · · + ˜a

n

˜b

n

(1 + γ

n

)

(1 + δ

n

)

= ˜a

1

˜b

1

(1 + γ

1

)(1 + δ

2

) · · · (1 + δ

n

)

+ · · · + ˜a

j

˜b

j

(1 + γ

j

)(1 + δ

j

) · · · (1 + δ

n

)

=

n

X

j=1

a

j

b

j

(1 + e

j

),

gdzie w przybliżeniu (tzn. gdy ν → 0) mamy |e

1

| ˜

(n+2)ν i |e

j

| ˜

(n−

j

+4)ν, 2 ≤ j ≤ n. Algorytm naturalny jest więc numerycznie poprawny

w całym zbiorze danych, gdyż wynik otrzymany w

ν

można zinterpre-

tować jako dokładny wynik dla danych a

ν,j

= a

j

i b

ν,j

= b

j

(1 + e

j

), przy

czym kb

ν

− bk

p

˜

(n + 2)νkbk

p

.

background image

18

ROZDZIAŁ 2. ALGORYTMY I ICH WŁASNOŚCI

Zobaczmy teraz, jak błąd we współrzędnych b

j

wpływa na błąd

wyniku. Mamy

n

X

j=1

a

j

b

j

− fl

ν

n

X

j=1

a

j

b

j

=

n

X

j=1

a

j

b

j

n

X

j=1

a

j

b

j

(1 + e

j

)

=

n

X

j=1

e

j

a

j

b

j

n

X

j=1

|e

j

||a

j

b

j

|

˜

(n + 2)ν

n

X

j=1

|a

j

b

j

|.

Stąd dla η ≥ 0

|

P

n

j=1

a

j

b

j

− fl

ν

(

P

n

j=1

a

j

b

j

)|

max(η, |

P

n

j=1

a

j

b

j

|)

˜

≤ K

η

(n + 2) ν,

gdzie

K

η

= K

η

(a, b) =

P

n

j=1

|a

j

b

j

|

max(η, |

P

n

j=1

a

j

b

j

|)

.

Zauważmy, że jeśli iloczyny a

j

b

j

są wszystkie dodatnie albo wszyst-

kie ujemne, to K

η

= 1, tzn. zadanie jest dobrze uwarunkowane, a błąd

względny jest zawsze na poziomie co najwyżej . W tym przypadku
algorytm zachowuje się bardzo dobrze, o ile liczba n składników nie
jest horendalnie duża. W ogólności jednak K

η

może być liczbą dowol-

nie dużą i wtedy nie możemy być pewni uzyskania dobrego wyniku w

ν

.

2.5.2 Całkowanie

Zadanie całkowania z Przykładu 1.3 często rozwiązuje się (a raczej przy-
bliża) stosując formułę

Φ(f) = ϕ(y) =

n

X

j=1

c

j

y

j

,

gdzie informacja y

j

= f(t

j

). t

j

są tu ustalonymi punktami z [a, b], a c

j

ustalonymi współczynnikami rzeczywistymi, niezależnymi od f. Algo-

background image

2.5. PRZYKŁADY

19

rytmy korzystające z takich formuł nazywamy kwadraturami, a przy-
kładem jest zwykła suma Riemanna,

Φ

R

(f) =

1

n

n

X

j=1

f

(t

j

),

gdzie t

j

należy do przedziału [a + (j − 1)(b − a)/n, a + j(b − a)/n],

1 ≤ j ≤ n.

Z analizy algorytmu obliczającego iloczyn skalarny wynika, że kwa-

dratura jest algorytmem numerycznie poprawnym. Mamy bowiem

ν

n

X

j=1

c

j

f

(t

j

)

=

n

X

j=1

c

j

y

j

(1 + e

j

),

gdzie |e

j

| ˜

(n + 1)ν. (W porównaniu z iloczynem skalarnym mamy tu

n

+ 1 zamiast n + 2, bo c

j

nie jest daną i nie podlega zaburzeniu.) Stąd

błąd bezwzględny kwadratury w

ν

można oszacować następująco:

Z

b

a

f

(x) dx − fl

ν

n

X

j=1

c

j

f

(t

j

)

Z

b

a

f

(x) dx −

n

X

j=1

c

j

f

(t

j

)

+ (n + 1) ν

n

X

j=1

|c

j

f

(t

j

)|.

Uwagi i uzupełnienia

U. 2.1 Wprowadzimy teraz formalną definicję zastosowanej już wcześniej
przybliżonej nierówności ˜

. Dla dwóch funkcji piszemy

|h

1

(ν)| ˜≤ |h

2

(ν)|

gdy

lim sup

ν→0

|h

1

(ν)|/|h

2

(ν)| ≤ 1.

Na przykład, jeśli |h(ν)| ≤

P

n

j=1

K

j

ν

j

(K

1

> 0), to

|h(ν)| ˜

≤ K

1

ν, co już

zauważyliśmy w przykładzie z iloczynem skalarnym. Zapis ten wyraża prosty
fakt, że dla praktycznych wartości ν (ν ≤ 10

8

) wyrazy typu ν

2

, ν

3

, itd. są

tak małe w porównaniu z ν, że można je zaniedbać.

background image

20

ROZDZIAŁ 2. ALGORYTMY I ICH WŁASNOŚCI

Łatwo sprawdzić, że przy notacji ˜

zachodzą następujące fakty. Jeśli

|ε| ˜

≤ Kν,

1

| ˜

≤ K

1

ν i

2

| ˜

≤ K

2

ν (gdzie ε, ε

1

, ε

2

są funkcjami ν), to

(1 + ε

1

)(1 + ε

2

) = (1 + δ),

gdzie

|δ| ˜

(K

1

+ K

2

)ν, (2.3)

(1 + ε)

1

= (1 + δ),

gdzie

|δ| ˜

≤ Kν,

(2.4)

(1 + ε)

1/2

= (1 + δ),

gdzie

|δ| ˜

1
2

Kν,

(2.5)

i ogólnie

(1 + ε)

p

= (1 + δ),

gdzie

|δ| ˜

≤ |p|ν.

(2.6)

U. 2.2 Rozpatrzymy teraz zadanie obliczenia wszystkich pierwiastków rze-
czywistych równania kwadratowego z Przykładu 1.1. Będziemy zakładać, że
model obliczeniowy dopuszcza obliczanie pierwiastków kwadratowych z liczb
nieujemnych oraz

ν

(√x) = rd(

p

rd (x)).

Okazuje się, że nie umiemy pokazać numerycznej poprawności “szkol-

nego” algorytmu obliczającego pierwiastki równania bezpośrednio ze wzorów
(1.1). Można jednak pokazać numeryczną poprawność drobnej jego modyfi-
kacji wykorzystującej wzory Viete’a.

∆ := p ∗ p − q;

if (∆ = 0) then OUT (p) else

if (∆ > 0) then
begin

∆1 := sqrt(d);
if (p ≥ 0) then

begin

x1 := p + ∆1;
x2 := q/x1;

end else
begin

x2 := p

∆1;

x1 := q/x2;

end;
OUT (x1); OUT (x2)

end.

Mamy bowiem

ν

(∆(p, q)) =

p

2

(1 + α)

2

(1 + ε

1

) − q(1 + β)

(1 + ε

2

)

background image

2.5. PRZYKŁADY

21

=

p

2

− q

(1 + β)

(1 + α)

2

(1 + ε

1

)

(1 + ε

2

)(1 + α)

2

(1 + ε

1

)

=

p

2

− q(1 + δ)

(1 + γ) = ∆(p, q(1 + δ))(1 + γ),

gdzie |δ|, |γ| ˜4ν. Wyróżnik obliczony w

ν

jest więc nieco zaburzonym wy-

różnikiem dokładnym dla danych p i q

ν

= q(1 + δ). W szczególności

sgn(

ν

(∆(p, q))) = sgn(∆(p, q

ν

)).

Jeśli p ≥ 0 to

ν

(x1(p, q)) =

p(1 + α) +

q

ν

(∆(p, q))(1 + ε

3

)

(1 + ε

4

)

=

p(1 + α) +

q

∆(p, q

ν

)(1 + γ)(1 + ε

3

)

(1 + ε

4

)

=

p +

q

∆(p, q

ν

)

1 + γ(1 + ε

3

)

1 + α

!

(1 + ε

4

)(1 + α)

=

p +

q

∆(p, q

ν

)

(1 + e

1

),

gdzie |e

1

| ˜

6ν. Zauważmy, że ostatnia równość zachodzi dlatego, że doda-

jemy liczby tego samego znaku. (Inaczej |e

1

| mogłaby być dowolnie duża i

tak byłoby w algorytmie szkolnym.) Dla drugiego pierwiastka mamy

ν

(x2(p, q)) =

q(1 + β)

ν

(x1(p, q))

(1 + ε

5

) =

q

ν

ν

(x1(p, q))

(1 + e

2

),

gdzie |e

2

| ≤ 8ν.

Podobny wynik otrzymalibyśmy dla p < 0. Algorytm zmodyfikowany

jest więc numerycznie poprawny, gdyż otrzymane w

ν

pierwiastki są nieco

zaburzonymi dokładnymi pierwiatkami dla danych p

ν

= p i q

ν

= q(1 + δ).

Aby oszacować błąd algorytmu, wystarczy zbadać uwarunkowanie zada-

nia ze względu na zaburzenie danej q, ponieważ pokazaliśmy, że zaburzenia
p można przenieść na zaburzenia q i wyniku. Niestety, choć algorytm jest nu-
merycznie poprawny, zaburzenia q mogą sprawić, że nawet znak wyróżnika
∆ może być obliczony nieprawidłowo. Na przykład dla p = 1 i q = 1 ± 10

t+1

mamy ∆(p, q) = 10

t+1

, ale ∆(rd(p), rd(q)) = ∆(1, 1) = 0. Ogólnie

|fl

ν

(∆(p, q)) ∆(p, q)| ˜4ν(p

2

+ 2|q|),

background image

22

ROZDZIAŁ 2. ALGORYTMY I ICH WŁASNOŚCI

a więc tylko dla |∆(p, q)| = |p

2

− q| > 4ν(p

2

+ 2|q|) możemy być pewni

obliczenia właściwego znaku ∆. Przy tym warunku oraz ∆ > 0 błąd danych
przenosi się w normie euklidesowej na błąd wyniku następująco:

(x1(p, q) − x1(p, q

ν

))

2

+ (x2(p, q) − x2(p, q

ν

))

2

1/2

=

2|δq|

p

p

2

− q +

p

p

2

− q

ν

˜

2

2ν

|q|

p

p

2

− q

= 2

2ν

|q|/p

2

p

1 − q/p

2

max(η/|p|,

p

2(1 + (1 − q/p

2

)))

· max(η, (x1(p, q)

2

+ x2(p, q)

2

)

1/2

).

Stąd widać, że zadanie jest dobrze uwarunkowane dla q/p

2

1 i może być

źle uwarunkowane dla q/p

2

1. W ostatnim przypadku nie możemy być

pewni otrzymania dobrego wyniku w

ν

.

Ćwiczenia

Ćw. 2.1 Pokazać równości (2.3)–(2.6).

Ćw. 2.2 Niech 0 < a

1

< a

2

<

· · · a

n

. Czy z punktu widzenia błędów w

ν

lepiej jest policzyć sumę tych liczb w kolejności od najmniejszej do najwięk-
szej czy odwrotnie?

Ćw. 2.3 Aby obliczyć S(a, b) = a

2

− b

2

można zastosować dwa algorytmy:

Φ

1

(a, b) = a ∗ a − b ∗ b oraz Φ

2

(a, b) = (a + b) (a − b). Pokazać, że oba

algorytmy są numerycznie poprawne, ale drugi z nich wywołuje mniejszy
błąd względny wyniku w przypadku, gdy rd(a) = a i rd(b) = b.

Ćw. 2.4 Pokazać, że naturalny algorytm obliczania cosinusa kąta między
dwoma wektorami ~a,~b ∈ R

n

,

cos(a, b) =

P

n

j=1

a

j

b

j

r

P

n

j=1

a

2

j

P

n

j=1

b

2

j

,

jest numerycznie poprawny. Oszacować błąd względny wyniku w

ν

.

background image

2.5. PRZYKŁADY

23

Ćw. 2.5 Pokazać, że naturalny algorytm obliczania kA~xk

2

dla danej ma-

cierzy A ∈ R

n×n

i wektora ~x ∈ R

n

jest numerycznie poprawny. Dokładniej,

ν

(kA~xk

2

) = (A + E)~x,

gdzie kEk

2

˜

2(n + 2)

kAk

2

. Ponadto, jeśli A jest nieosobliwa to

|fl

ν

(kA~xk

2

) − kA~xk

2

| ˜

2(n + 2)

n ν

kAk

2

kA

1

k

2

kA~xk

2

.

Ćw. 2.6 Niech Φ będzie algorytmem numerycznie poprawnym w zbiorze
danych f ∈ F

0

, przy czym dla małych ν,

ν

(Φ(f)) = ϕ(y

ν

), gdzie ky

ν

−yk ≤

kyk i K nie zależy od ν i f (y = N(f)). Pokazać, że w ogólności Φ nie

musi być “numerycznie poprawny po współrzędnych”, tzn. w ogólności nie
istnieje bezwzględna stała K

1

taka, że dla małych ν i dla dowolnej f ∈ F

0

|y

ν,j

− y

j

| ≤ K

1

ν

|y

j

|,

1 ≤ j ≤ n,

gdzie y = (y

1

, . . . , y

n

).

æ ææ

background image

24

ROZDZIAŁ 2. ALGORYTMY I ICH WŁASNOŚCI

background image

Rozdział 3

Układy równań liniowych

Rozpoczynamy analizę metod dokładnych rozwiązywania układów rów-
nań liniowych postaci

A ~x

= ~b,

(3.1)

gdzie A = (a

i,j

)

n

i,j=1

jest macierzą nieosobliwą (det A 6= 0) wymiaru

n

× n, a ~b = (b

i

)

n

i=1

jest wektorem z R

n

. Zakładamy, że informacja

o zadaniu dana jest przez współczynniki a

i,j

macierzy i współrzędne

b

i

wektora. W wyniku powinniśmy uzyskać współrzędne x

j

wektora

rozwiązania ~x

= (x

j

)

n

j=1

,

~x

= A

1

~b.

Przypomnijmy, że nieosobliwość macierzy A zapewnia, że rozwiązanie
~x

istnieje i jest wyznaczone jednoznacznie.

3.1 Układy z macierzą trójkątną

Szczególnym przypadkiem (3.1) jest układ z macierzą trójkątną A.
Będą nas szczególnie interesować macierze trójkątne górne, dla których
a

i,j

= 0 gdy i > j, oraz macierze trójkątne dolne z jedynkami na prze-

kątnej, tzn. a

i,j

= 0, i < j, oraz a

i,i

= 1. Macierze pierwszego rodzaju

będziemy oznaczać przez R, a drugiego rodzaju przez L.

Układ z macierzą trójkątną górną

R ~x

= ~c,

(3.2)

25

background image

26

ROZDZIAŁ 3. UKŁADY RÓWNAŃ LINIOWYCH

R

= (r

i,j

), ~c = (c

j

), można rozwiązać stosując algorytm:

x

n

:= c

n

/r

n,n

;

for i := n

1 downto 1 do

x

i

:=

c

i

P

n

j=i+1

r

i,j

x

j

/r

i,i

.

(Algorytm ten jest wykonalny, ponieważ nieosobliwość macierzy impli-
kuje, że r

i,i

6= 0, ∀i.) Podobnie, układ L~x = ~c rozwiązujemy algoryt-

mem:

x

1

:= c

1

;

for i := 2 to n do
x

i

:= c

i

P

i−1

j=1

l

i,j

x

j

.

Oba algorytmy wymagają rzędu n

2

/

2 mnożeń lub dzieleń i n

2

/

2 doda-

wań lub odejmowań, a więc rzędu n

2

wszystkich działań arytmetycz-

nych.

3.2 Eliminacja Gaussa

Eliminacja Gaussa jest algorytmem dokładnym rozwiązywania ukła-
dów równań z macierzą pełną A, polegającym na sprowadzeniu układu
wyjściowego (3.1) do układu trójkątnego (3.2).

W postaci rozwiniętej układ (3.1) ma postać

a

1,1

x

1

+ a

1,2

x

2

+ · · · + a

1,n

x

n

= b

1

a

2,1

x

1

+ a

2,2

x

2

+ · · · + a

2,n

x

n

= b

2

. . .
a

n,1

x

1

+ a

n,2

x

2

+ · · · + a

n,n

x

n

= b

n

.

Zauważmy, że jeśli od i-tego wiersza tego układu odejmiemy wiersz
pierwszy pomnożony przez l

i,1

= a

i,1

/a

1,1

, dla i = 2, 3, . . . , n (zakła-

damy, że a

1,1

6= 0) to otrzymamy układ równoważny A

(1)

~x

= ~b

(1)

,

a

1,1

x

1

+ a

1,2

x

2

+ · · · + a

1,n

x

n

= b

1

a

(1)
2,2

x

2

+ · · · + a

(1)
2,n

x

n

= b

(1)
2

. . .
a

(1)
n,2

x

2

+ · · · + a

(1)

n,n

x

n

= b

(1)

n

,

background image

3.2. ELIMINACJA GAUSSA

27

z wyrugowaną zmienną x

1

z równań od drugiego do n-tego. Teraz z

kolei możemy od i-tego wiersza odjąć wiersz drugi pomnożony przez
l

i,2

= a

(1)
i,2

/a

(1)
2,2

, dla i = 3, 4, . . . , n (o ile a

(1)
2,2

6= 0), aby otrzymać układ

A

(2)

~x

= ~b

(2)

z wyrugowanymi zmiennymi x

1

i x

2

z równań od trzeciego

do n-tego. Postępując tak dalej otrzymujemy po n − 1 krokach układ
A

(n−1)

~x

= ~b

(n−1)

postaci

a

(0)
1,1

x

1

+ a

(0)
1,2

x

2

+ · · · + a

(0)
1,n

x

n

= b

1

a

(1)
2,2

x

2

+ · · · + a

(1)
2,n

x

n

= b

(1)
2

...

a

(n−1)

n,n

x

n

= b

(n−1)

n

.

Układ ten jest trójkątny górny, R~x = ~c, z macierzą R = A

(n−1)

i

wektorem ~c = ~b

(n−1)

, można go więc rozwiązać znaną już metodą.

Kolejne operacje w eliminacji Gaussa można zapisać następująco:

for k := 1 to n

1 do

for i := k + 1 to n do
begin

l

i,k

:= a

(k−1)
i,k

/a

(k−1)
k,k

;

b

(k)
i

:= b

(k−1)
i

− l

i,k

∗ b

(k−1)
k

;

for j := k + 1 to n do

a

(k)
i,j

:= a

(k−1)
i,j

− l

i,k

∗ a

(k−1)
k,j

end.

Zauważmy, że k-ty krok wymaga rzędu (n − k)

2

dodawań lub odejmo-

wań i tyle samo mnożeń lub dzieleń. Koszt całej eliminacji wynosi więc
2

P

n−1

k=1

(n − k)

2

(2/3)n

3

operacji arytmetycznych. Ponieważ układ

trójkątny potrafimy rozwiązać kosztem n

2

, całkowity koszt rozwiązania

układu A~x = ~b jest również rzędu (2/3)n

3

.

Opisany powyżej proces eliminacyjny załamie się gdy dla pewnego

k

element a

(k−1)
k,k

będzie zerem. W takim przypadku prosta modyfikacja

polegająca na przestawieniu wiersza k-tego układu z wierszem s

k

-tym

(k + 1 ≤ s

k

≤ n) dla którego a

(k−1)
s

k

,k

6= 0, pozwala kontynuować elimi-

nację. Taki niezerowy element oczywiście istnieje, bo inaczej macierz
A

(k−1)

, a tym samym i macierz A, byłaby osobliwa.

background image

28

ROZDZIAŁ 3. UKŁADY RÓWNAŃ LINIOWYCH

Najczęściej wybieramy s

k

tak, aby

|a

(k−1)
s

k

,k

| = max

k+1≤i≤n

|a

(k−1)
i,k

|,

co wymaga dodatkowo rzędu n

2

/

2 porównań liczb rzeczywistych i żad-

nych operacji arytmetycznych. Taki wybór elementu niezerowego pro-
wadzi do eliminacji Gaussa z wyborem elementu głównego w kolumnie.
Wtedy współczynniki l

i,k

= a

(k−1)
i,k

/a

(k−1)
k,k

są wszystkie co do modułu

nie większe od jedności co, jak się przekonamy później, ma niebaga-
telne znaczenie dla własności numerycznych całego algorytmu.

3.3 Rozkład trójkątny macierzy

Podamy teraz ważne twierdzenia wiążące eliminację Gaussa z rozkła-
dem trójkątno-trójkątnym macierzy A.

Twierdzenie 3.1 Eliminacja Gaussa bez przestawień wierszy (o ile
jest wykonalna) jest równoważna rozkładowi macierzy A na iloczyn ma-
cierzy trójkątnej dolnej L
= (l

i,j

) (z jedynkami na przekątnej) i trójkąt-

nej górnej R = (r

i,j

). Dokładniej,

A

= L · R,

gdzie

l

i,j

=


a

(i−1)
i,j

/a

(i−1)
i,i

i > j,

1

i

= j,

0

i < j,

oraz

r

i,j

=

(

a

(i−1)
i,j

i < j,

0

i

≥ j.

Dowód Zauważmy, że rugowanie elementów pod główną przekątną
w k-tej kolumnie (k = 1, 2, . . . , n − 1) odpowiada mnożeniu układu

background image

3.3. ROZKŁAD TRÓJKĄTNY MACIERZY

29

A

(k−1)

~x

= ~b

(k−1)

z lewej strony przez macierz

L

k

=

1

1

...

1

−l

k+1,k

1

...

...

−l

n,k

1

.

Stąd

L

n−1

L

n−2

· · · L

2

L

1

A

= R

i

A

= (L

1

1

L

1

2

· · · L

1

n−2

L

1

n−1

) R.

Łatwo sprawdzić, że macierz L

1

k

różni się od L

k

tylko tym, że ele-

menty −l

i,k

dla k + 1 ≤ i ≤ n zmieniają się na l

i,k

. Ponadto, mnożenie

macierzy L

1

k

przez siebie w podanej kolejności odpowiada ”przepisy-

waniu” elementów l

i,k

do macierzy wynikowej tak, że ostatecznie mamy

L

1

1

· · · L

1

n−1

= L i A = LR.

2

Zobaczmy teraz jak wybór elementu głównego w kolumnie i prze-

stawianie odpowiednich wierszy macierzy układu wpływa na rozkład
macierzy A z Twierdzenia 3.1.

Przestawienie wiersza k-tego z s-tym w danej macierzy jest formal-

nie równoważne pomnożeniu tej macierzy z lewej strony przez macierz
permutacji elementarnej P

k,s

. Jest to macierz, która powstaje z macie-

rzy jednostkowej przez przestawienie jej k-tego wiersza z s-tym (albo
k

-tej kolumny z s-tą). Eliminacja Gaussa z wyborem elementu głów-

nego w kolumnie odpowiada więc mnożeniu macierzy A z lewej strony
kolejno przez macierze permutacji elementarnej P

k,s

k

i macierze “elimi-

nacji” L

k

tak, że

L

n−1

P

n−1,s

n−1

L

n−2

P

n−2,s

n−2

· · · L

2

P

2,s

2

L

1

P

1,s

1

A

= R.

Ponieważ P

2

k,l

= I (identyczność), mamy

P

2,s

2

L

1

P

1,s

1

A

= (P

2,s

2

L

1

P

2,s

2

)(P

2,s

2

P

1,s

1

A

) = L

(1)
1

(P

2,s

2

P

1,s

1

A

),

background image

30

ROZDZIAŁ 3. UKŁADY RÓWNAŃ LINIOWYCH

gdzie L

(1)
1

różni się od L

1

tym, że zostały przestawione elementy (2, 1)

i (s

2

,

1). Następnie,

P

3,s

3

L

2

L

(1)
1

(P

2,s

2

P

1,s

1

A

)

= (P

3,s

3

L

2

P

3,s

3

)(P

3,s

3

L

(1)
1

P

3,s

3

)(P

3,s

3

P

2,s

2

P

1,s

1

A

)

= L

(2)
2

L

(2)
1

(P

3,s

3

P

2,s

2

P

1,s

1

A

),

gdzie L

(2)
1

różni się od L

(1)
1

tym, że zostały przestawione elementy (3, 1)

i (s

3

,

1), a L

(2)
2

różni się od L

2

przestawieniem elementów (3, 2) i (s

3

,

2).

Postępując tak dalej otrzymujemy

L

n−1

P

n−1,s

n−1

· · · L

2

P

2,s

2

L

1

P

1,s

1

A

= L

(n−1)
n−1

L

(n−1)
n−1

· · · L

(n−1)
2

L

(n−1)
1

(P

n−1,s

n−1

· · · P

2,s

2

P

1,s

1

)A = R,

gdzie L

(n−1)
k

różni się od L

k

jedynie pewną permutacją elementów w

k

-tej kolumnie pod główną przekątną,

L

(n−1)
k

= P

n−1,s

n−1

· · · P

k+1,s

k+1

L

k

P

k+1,s

k+1

· · · P

n−1,s

n−1

.

Postępując dalej tak, jak w przypadku eliminacji bez przestawień wier-
szy, otrzymujemy następujący wniosek.

Wniosek 3.1 Eliminacja Gaussa z wyborem elementu głównego w ko-
lumnie jest wykonalna i jest równoważna rozkładowi

P

· A = L · R,

gdzie P = P

n−1,s

n−1

· · · P

2,s

2

P

1,s

1

jest macierzą permutacji, a L i R są

macierzami konstruowanymi tak jak w Twierdzeniu 3.1, ale dla macie-
rzy P A zamiast A. Ponadto wszystkie elementy macierzy L są co do
modułu nie większe od jedności.

2

Dodajmy, że znalezienie czynników rozkładu P A = LR dla danej

macierzy A kosztuje tyle samo co eliminacja Gaussa z wyborem ele-
mentu głównego, czyli (2/3)n

3

operacji arytmetycznych i n

2

/

2 porów-

nań.

W praktycznej realizacji rozkładu P A = LR oczywiście nie musimy

przy przestawieniu wierszy dokonywać fizycznie przepisań elementów

background image

3.3. ROZKŁAD TRÓJKĄTNY MACIERZY

31

danego wiersza do innego. Wystarczy mieć dodatkowy n-wymiarowy
wektor permutacji p[] interpretowany w ten sposób, że p[i] jest wskaź-
nikiem do i-tego wiersza macierzy A. Przestawienie wierszy możemy
wtedy realizować po prostu przez zamianę wskaźników, czyli elemen-
tów wektora p. (Zob. U. 3.5.)

Twierdzenie 3.1 i Wniosek 3.1 mają nie tylko teoretyczne znaczenie.

Rozkładu macierzy na czynniki trójkątne (co w praktyce sprowadza się
do pamiętania kolejnych permutacji i mnożników l

i,j

) opłaca się doko-

nywać w przypadku, gdy zadanie polega na rozwiązaniu nie jednego,
ale wielu układów równań z tą samą macierzą A i ze zmieniającym się
wektorem prawej strony,

A ~x

= ~b

s

,

dla 1 ≤ s ≤ k.

Jeśli każdy z tych układów rozwiązujemy “od początku” to musimy
wykonać (2/3)n

3

k

operacji arytmetycznych. Koszt ten możemy znacz-

nie zredukować, jeśli dokonamy wstępnego rozkładu P A = LR. Wtedy
układ A~x = ~b

s

jest równoważny układowi LR~x = P~b

s

, a więc jego

rozwiązanie sprowadza się do rozwiązania dwóch znanych już układów
trójkątnych:

L ~y

= P ~b

s

i

R ~x

= ~y.

Taki sposób postępowania wymaga tylko (2/3)n

3

+2n

2

k

= 2n

2

(n/3+k)

operacji arytmetycznych, co np. przy k = n powoduje obniżenie rzędu
kosztu z n

4

do n

3

.

Uwagi i uzupełnienia

U. 3.1 Zaproponowany algorytm dla układów R~x = ~c z macierzą trójkątną
R ma prawie optymalną złożoność kombinatoryczną (n

2

) wśród algorytmów

dokładnych. Zauważmy bowiem, że jeśli algorytm jest dokładny to wykorzy-
stuje wszystkie dane r

i,j

i c

j

, 1 ≤ i, j ≤ n (zob. Ćw.3.1). Ponieważ każda

kolejna operacja arytmetyczna (+, −, ∗, /) może wykorzystywać co najwyżej

dwie nowe dane, a wszystkich danych jest n(n + 1)/2 + n ≈ n

2

/2, algorytm

dokładny musi wykonywać co najmniej n

2

/4 działań.

background image

32

ROZDZIAŁ 3. UKŁADY RÓWNAŃ LINIOWYCH

U. 3.2 Znane są algorytmy dokładne, które rozwiązują układ równań z ma-
cierzą pełną kosztem proporcjonalnym do n

p

, gdzie p < 3, a więc mniejszym

niż w eliminacji Gaussa. Algorytmy te są jednak nieużyteczne ze względu na
skomplikowaną konstrukcję, zwykle dużą stłą przy n

p

, a także ze względu na

złe własności numeryczne. Oczywiście, ograniczeniem dolnym na wykładnik
p w koszcie rozwiązania układu z macierzą pełną jest 2 (bo mamy rzędu n

2

danych), ale nie wiadomo, czy może on być osiągnięty przez jakiś algorytm.

U. 3.3 Układy równań z tą samą macierzą, ale ze zmieniającą się prawą
stroną równania powstają często przy rozwiązywaniu, np. równań różniczko-
wych cząstkowych, gdzie prawa strona układu odpowiada zmieniającym się
warunkom brzegowym. Z wieloma układami tego typu mamy również do czy-
nienia gdy chcemy znaleźć macierz odwrotną do danej macierzy A ∈ R

n×n

.

Rzeczywiście, kolejne kolumny macierzy A

1

są rozwiązaniami układów

A ~x = ~e

j

,

1 ≤ j ≤ n,

gdzie ~e

j

oznacza j-ty wersor.

U. 3.4 Obok wyboru elementu głównego w kolumnie dokonuje się również
wyboru elementu gównego w całej macierzy. To znaczy, w k-tym kroku eli-
minacyjnym wybiera się element a

(k−1)
s

k

,t

k

, k ≤ s

k

, t

k

≤ n, taki, że

|a

(k−1)
s

k

,t

k

| = max

k≤i,j≤n

|a

(k−1)
i,j

|,

a następnie przestawia się wiersze k-ty z s

k

-tym i kolumny k-tą z t

k

-tą w

macierzy A

(k−1)

. Zauważmy, że przestawienie kolumn macierzy odpowiada

mnożeniu jej z prawej strony przez macierz permutacji P

k,t

k

. Przyjmując

P = P

1,t

1

P

2,t

2

· · · P

n−1,t

n−1

i korzystając z Twierdzenia 3.1 i Wniosku 3.1

mamy, że eliminacja Gaussa z wyborem elementu głównego w całej macierzy
jest równoważna rozkładowi

P A P = L R.

U. 3.5 Podamy teraz jedną z możliwych implementacji algorytmu rozkładu
macierzy na iloczyn macierzy trójkątnych, P A = LR. W poniższym pro-
gramie współczynniki macierzy wyjściowej są pamiętane w tablicy a[, ]. Po
wykonaniu programu, informacja o permutacji wierszy zapamiętana będzie
w wektorze p[]. W a[p[i], j] będą elementy (i, j) macierzy L dla i > j, oraz
macierzy R dla i ≤ j.

background image

3.3. ROZKŁAD TRÓJKĄTNY MACIERZY

33

{ inicjacja wskaźników }

for i := 1 to n do p[i] := i;
for j := 1 to n − 1 do

begin

{ wybór elementu głównego }
im
:= j;

val := abs(a[p[j], j]);

for i := j + 1 to n do
begin

v := abs(a[p[i], j]);
if v > val then
begin

im := i;

val := i

end;
{ zamiana wskaźników }
s
:= p[im];

p[im] := p[j];

p[j] := s;

{ eliminacja }
v
:= a[s, j];
for i := j + 1 to n do
begin

im := p[i];
l := a[im, j]/v;
a[im, j] := l;
for k := j + 1 to n do
a[im, k] := a[im, k]

− l ∗ a[s, k]

end;

end;

end.

U. 3.6 Przedstawiony algorytm eliminacji Gaussa rozwiązuje układy z ma-
cierzami dowolnej postaci. Jeśli macierz A jest szczególnej postaci to czasem
proste jego modyfikacje pozwalają znacznie zmniejszyć koszt uzyskania roz-
wiązania. Na przykład, niech A będzie macierzą trójdiagonalną postaci

A =

a

1

c

1

b

2

a

2

c

2

b

3

a

3

c

3

... ... ...

b

n

a

n

.

Wtedy układ A~x = ~e można rozwiązać stosując tzw. algorytm “przegania-
nia”:

background image

34

ROZDZIAŁ 3. UKŁADY RÓWNAŃ LINIOWYCH

d

1

:= a

1

;

f

1

:= e

1

;

for i := 2 to n do
begin

l := b

i

/a

i−1

;

d

i

:= a

i

− l ∗ c

i−1

;

f

i

:= e

i

− l ∗ f

i−1

end;
x

1

:= f

n

;

for i := n − 1 downto 1 do
x

i

:= f

i

− c

i

∗ x

i+1

.

Okazuje się, że jeśli macierz A ma dominującą przekątną, tzn.

|a

i

| ≥ |b

i

| + |c

i

|,

1 ≤ i ≤ n,

(3.3)

(b

1

= 0 = c

n

) i przynajmniej dla jednego i mamy powyżej nierówność <,

to algorytm przeganiania jest wykonalny bez przestawień wierszy. Ponadto
wymaga on 7n operacji arytmetycznych, a więc jest prawie optymalny.

U. 3.7 Innym ważnym przykładem macierzy szczególnej postaci są macierze
symetryczne i dodatnio określone. Są to macierze spełniające A = A

T

oraz

~x

T

A~x > 0,

∀~x 6= 0.

Dla takich macierzy można nieco zmniejszyć koszt kombinatoryczny i zużycie
pamięci przeprowadzając eliminację tak, aby otrzymać rozkład

A = L

· D · L

T

zamiast P A = LR, przy czym L jest tu jak zwykle macierzą trójkątną
dolną z jedynkami na przekątnej, a D jest macierzą diagonalną z dodatnimi
elementami na diagonali.

Rozkład taki przeprowadzamy mnożąc macierz A przez znane już ma-

cierze eliminacji nie tylko z lewej, ale też i z prawej strony, bez przestawień
wierszy. Bez zmniejszenia ogólności rozpatrzymy tylko pierwszy krok. W
tym celu, zauważmy najpierw, że a

1,1

= ~e

T

1

A~e

1

> 0 (gdzie ~e

1

jest pierw-

szym wersorem), a więc nie musimy przestawiać wierszy, bo element na
diagonali jest niezerowy. W pierwszym kroku mnożymy macierz A z lewej
strony przez odpowiednią macierz L

1

, a potem z prawej przez L

T

1

. Kluczem

do zrozumienia algorytmu jest uwaga, że efektem mnożenia macierzy L

1

A

background image

3.3. ROZKŁAD TRÓJKĄTNY MACIERZY

35

z prawej strony przez L

T

1

jest wyzerowanie elementów pierwszego wiersza

poza a

1,1

i pozostawienie niezmienionych pozostałych elementów. Ponadto

macierz A

(1)

= L

1

AL

T

1

jest symetryczna i dodatnio określona. Rzeczywiście,

A

(1)

T

= (L

1

AL

T

1

)

T

= (L

T

1

)

T

A

T

L

T

1

= L

1

AL

T

1

,

oraz dla ~x 6= 0

~x

T

A

(1)

~x = ~x

T

L

1

AL

T

1

~x = (L

T

1

~x)

T

A(L

T

1

~x) > 0,

bo ~x 6= 0 implikuje L

T

1

~x

6= 0. Stąd a

(1)
2,2

= ~e

T

2

A

(1)

~e

2

> 0. Postępując tak dalej

otrzymujemy

L

n−1

L

n−2

· · · L

2

L

1

AL

T

1

L

T

2

· · · L

T

n−2

L

T

n−1

= D,

przy czym macierz D jest diagonalna i dodatnio określona, a więc wyrazy
na diagonali są dodatnie. Oznaczając

L = L

1

1

L

1

2

· · · L

1

n−1

dostajemy żądany rozkład.

Zauważmy, że przy praktycznej realizacji rozkładu A = LDL

T

wystarczy

modyfikować jedynie wyrazy pod i na głównej przekątnej macierzy wyjścio-
wej, ponieważ, jak zauważyliśmy, wszystkie kolejne macierze A

(k)

są syme-

tryczne. Pozwala to zmniejszyć koszt kombinatoryczny o połowę do n

3

/3

operacji arytmetycznych. Opisany sposób rozkładu macierzy A = A

T

> 0

nosi nazwę metody Banachiewicza-Choleskiego. (Zob. Ćw. 3.9.)

U. 3.8 Rozkład trójkątno-trójkątny macierzy może być zastosowany rów-
nież do policzenia wyznacznika macierzy A. Jeśli bowiem P A = LR to

detA = (1)

s

r

1,1

r

2,2

· · · r

n,n

,

gdzie s jest liczbą przestawień wierszy w eliminacji.

Ćwiczenia

Ćw. 3.1 Pokazać, że jeśli algorytm rozwiązywania układu równań z ma-
cierzą pełną (lub trójkątną) nie wykorzystuje wszystkich współczynników
macierzy i wektora, to istnieją macierz A i wektor ~b takie, że algorytm dla
tych danych nie daje dokładnego rozwiązania w arytmetyce idealnej.

background image

36

ROZDZIAŁ 3. UKŁADY RÓWNAŃ LINIOWYCH

Ćw. 3.2 Znaleźć macierz odwrotną do macierzy trójkątnej.

Ćw. 3.3 Pokazać, że iloczyn elementarnych macierzy permutacji jest ma-
cierzą, która w każdym wierszu i w każdej kolumnie ma dokładnie jedną
jedynkę. I odwrotnie, jeśli pewna macierz ma w każdym wierszu i kolumnie
dokładnie jedną jedynkę to jest ona iloczynem pewnej liczby elementarnych
macierzy permutacji.

Ćw. 3.4 Pokazać, że jeśli dla danej macierzy A i permutacji P istnieje co
najwyżej jeden rozkład P A = LR na macierz trójkątną dolną L z jedynkami
na przekątnej i na macierz trójkątną górną R.

Ćw. 3.5 Pokazać, że w algorytmie eliminacji Gaussa (bez przestawień) ele-
menty l

i,j

i r

i,j

obliczane są według wzorów

l

i,j

= (a

i,j

j−1

X

k=1

l

i,k

r

k,j

)/r

j,j

,

j = 1, 2 . . . , i

1,

r

i,j

= a

i,j

i−1

X

k=1

l

i,k

r

k,j

,

j = i, i + 1, . . . , n,

dla i = 1, 2, . . . , n. Wywnioskować stąd rozkład A = LR z Twierdzenia 3.1.

Ćw. 3.6 Pokazać, że przy spełnieniu warunku (3.3) algorytm “przegania-
nia” z U. 3.6 jest wykonalny bez przestawień wierszy. Opracować algorytm
rozwiązywania układu z macierzą trójdiagonalną nie spełniającą warunku
(3.3).

Ćw. 3.7 Pokazać, że jeśli macierz pełna A ma dominującą przekątną, tzn.

2|a

i,i

| >

n

X

j=1

|a

i,j

|,

1 ≤ i ≤ n,

to jest to macierz dodatnio określona, ~x

T

A~x > 0 dla ~x

6= 0. Ponadto, elimi-

nacja Gaussa jest dla takich macierzy wykonalna bez przestawień wierszy.

Ćw. 3.8 Opracować algorytm eliminacyjny dla rozwiązywania układów li-
niowych z macierzą Hessembega, czyli macierzą dla której a

i,j

= 0, o ile

i

≥ j + 2.

background image

3.3. ROZKŁAD TRÓJKĄTNY MACIERZY

37

Ćw. 3.9 Opracować program rozkładający macierz symetryczną i dodatnio
określoną A na iloczyn A = LDL

T

według metody Banachiewicza-Choleskie-

go z U. 3.7. Obliczenia przeprowadzać w tej samej macierzy A pozostawiając
elementy na i nad diagonalą nie zmienione i otrzymując w wyniku macierz
L pod główną diagonalą macierzy A, a macierz D jako dodatkowy wektor.

æ

background image

38

ROZDZIAŁ 3. UKŁADY RÓWNAŃ LINIOWYCH

background image

Rozdział 4

Analiza błędów w eliminacji
Gaussa

Zastanowimy się teraz, jak przebiega w arytmetyce

ν

realizacja algo-

rytmu eliminacji Gaussa z wyborem elementu głównego w kolumnie.

4.1 Układy z macierzą trójkątną

Najpierw pokażemy, że algorytmy rozwiązywania układów trójkątnych
zaprezentowane w Rozdziale 3.1 są numerycznie poprawne. Rozpatrzmy
najpierw układ trójkątny górny, R~x = ~c. Wykorzystując fakt, że licze-
nie iloczynu skalarnego jest numerycznie poprawne, mamy

ν

(x

n

) =

c

n

(1 + β

n

)

r

n,n

(1 + α

n,n

)

(1 + δ

n

) =

c

ν

n

r

ν

n,n

i dla i = n − 1, n − 2, . . . , 1,

ν

(x

i

)

=

c

i

(1 + β

i

)

P

n

j=i+1

r

i.j

(1 + α

i,j

)

ν

(x

j

)(1 + γ

i,j

)

(1 + ω

i

)

r

i,i

(1 + α

i,i

)(1 + δ

i

)

1

=

c

ν

i

P

n

j=i+1

r

ν

i,j

ν

(x

j

)

r

ν

i,i

,

gdzie c

ν

i

= c

i

(1 + β

i

), r

ν

i,i

= r

i,i

(1 + α

i,i

)(1 + δ

i

)

1

, r

ν

i,j

= r

i,j

(1 + α

i,j

)(1 +

γ

i,i

), czyli |c

ν

i

− c

i

| ≤ ν|c

i

| i |r

ν

i,j

− r

i,j

| ˜

(n + 1)ν|r

i,j

|. Stąd otrzymane w

39

background image

40 ROZDZIAŁ 4. ANALIZA BŁĘDÓW W ELIMINACJI GAUSSA

ν

rozwiązanie jest dokładnym rozwiązaniem dla danych R

ν

= (r

ν

i,j

)

i,j

i ~c

ν

= (c

ν

j

)

j

, przy czym

kR

ν

− Rk

˜

(n + 1) ν kRk

i

k~c

ν

− ~ck

˜

≤ ν k~ck

.

Zauważmy, że macierz zaburzona R

ν

jest nieosobliwa. Powyższy algo-

rytm jest więc numerycznie poprawny w klasie nieosobliwych macierzy
trójkątnych górnych.

Zauważmy również, że jeśli wektor prawej strony ~c jest reprezento-

wany dokładnie (β

i

= 0), to błąd pochodzący z odejmowania można

przenieść na zaburzenia r

i,i

tak, że ~c

ν

= ~c. Fakt ten wykorzystamy

później.

Przeprowadzając podobną analizę dla układu L~x = ~c z macierzą

trójkątną dolną z jedynkami na przekątnej dostajemy, że otrzymane w

ν

rozwiązanie jest dokładnym rozwiązaniem układu L

ν

~x

= ~c

ν

, gdzie

kL

ν

− Lk

˜

(n + 1) ν kLk

i

k~c

ν

− ~ck

˜

≤ ν k~ck

.

4.2 Poprawność rozkładu trójkątnego

Zajmiemy się teraz jakością numeryczną rozkładu macierzy na iloczyn
trójkątno-trójkątny. W poniższym twierdzeniu norma macierzy jest do-
wolna, ale ustalona.

Twierdzenie 4.1 Niech A

R

n×n

będzie macierzą nieosobliwą. Dla

dostatecznie silnej arytmetyki (tzn. dla dostatecznie małego ν) rozkład
trójkątno-trójkątny macierzy za pomocą eliminacji Gaussa z wyborem
elementu głównego w kolumnie jest wykonalny w arytmetyce fl

ν

. Otrzy-

mane w wyniku macierze permutacji P

ν

, trójkątna górna R

ν

i trójkątna

dolna L

ν

(z jedynkami na przekątnej i elementami co do modułu nie

większymi od jedności) spełniają równość

P

ν

· (A + E) = L

ν

· R

ν

,

gdzie

kEk ≤ K(n) ν kAk,

a K(n) jest pewną stałą niezależną od ν i A.

background image

4.2. POPRAWNOŚĆ ROZKŁADU TRÓJKĄTNEGO

41

Dowód Załóżmy najpierw dla uproszczenia, że eliminacja jest w

ν

wykonalna i że nie musimy dokonywać przestawień wierszy, tzn. w
k

-tym kroku elementem głównym jest obliczona wartość a

(k−1)
k,k

.

Zobaczmy jak zmieniają się elementy a

(k)
i,j

przy realizacji algorytmu

Gaussa w arytmetyce

ν

. Dla uniknięcia nadmiaru indeksów, będziemy

oznaczać przez ˜

w

wartość w obliczoną w

ν

. Rozpatrzymy dwa przy-

padki, i ≤ j i i > j.

Niech najpierw i ≤ j. Niech ε

(s)
i,j

będzie błędem bezwzględnym wy-

tworzonym przy obliczaniu wartości a

(s)
i,j

mając obliczone a

(s−1)
i,j

, l

i,s

i

a

(s−1)
s,j

. (Błąd ten oszacujemy później). Ponieważ a

(k)
i,j

= a

(k−1)
i,j

−l

i,k

a

(k−1)
k,j

,

otrzymujemy

˜a

(k)
i,j

= ˜a

(k−1)
i,j

˜l

i,k

˜a

(k−1)
k,j

+ ε

(k)
i,j

(4.1)

= ˜a

(k−2)
i,j

˜l

i,k−1

˜a

(k−2)
k−1,j

+ ε

(k−1)
i,j

˜l

i,k

˜a

(k−1)
k,j

+ ε

(k)
i,j

= . . .

= ˜a

(0)
i,j

+

k−1

X

s=1

˜l

i,s

˜a

(s−1)
s,j

+ ε

(s)
i,j

.

Wobec tego, że a

(0)
i,j

= a

i,j

, mamy ˜a

(0)
i,j

= a

i,j

+ ε

(0)
i,j

z

(0)
i,j

| ≤ ν|a

i,j

|.

Ponadto ˜a

(i−1)
i,j

= ˜r

i,j

, bo i-ty wiersz jest modyfikowany tylko w krokach

od 1-go do (i − 1)-szego. Stąd, podstawiając k = i − 1, otrzymujemy

˜r

i,j

= ˜a

(i−1)
i,j

= a

i,j

+

i−1

X

s=0

ε

(s)
i,j

i−1

X

s=1

˜l

i,s

˜r

s,j

,

albo

a

i,j

+ e

i,j

= ˜r

i,j

+

i−1

X

s=1

˜l

i,s

˜r

s,j

,

(4.2)

gdzie e

i,j

=

P

i−1

s=0

ε

(s)
i,j

.

Dla i > j mamy podobnie

˜a

(j−1)
i,j

= a

i,j

+ ε

(0)
i,j

+

j−1

X

s=1

˜l

i,s

˜a

(s−1)
s,j

+ ε

(s)
i,j

.

(4.3)

Wobec tego, że

˜l

i,j

=

˜a

(j−1)
i,j

˜a

(j−1)
j,j

(1 + δ

i,j

),

background image

42 ROZDZIAŁ 4. ANALIZA BŁĘDÓW W ELIMINACJI GAUSSA

otrzymujemy

˜a

(j−1)
i,j

= ˜l

i,j

˜a

j−1
j,j

+ ε

(j)
i,j

,

(j)
i,j

| ≤ ν|˜a

(j−1)
i,j

|,

a stąd, (4.3) i z faktu, że ˜a

(s−1)
s,j

= ˜r

i,j

,

a

i,j

+ e

i,j

=

j

X

s=1

˜l

i,s

˜r

s,j

,

(4.4)

gdzie e

i,j

=

P

j
s
=0

ε

(s)
i,j

.

Z (4.2) i (4.4) wynika równość

(A + E) = ˜

L

· ˜

R

(4.5)

z macierzą E = (e

i,j

). Ponadto elementy ˜l

i,j

są co do modułu nie większe

od jedności, ponieważ |˜a

(j−1)
i,j

| ≤ |˜a

(j−1)
j,j

| (zob. Ćw. 1.2).

Aby zakończyć dowód, trzeba jeszcze oszacować błąd |e

i,j

|. W tym

celu zauważmy, że dla k ≥ 1

˜a

(k)
i,j

=

˜a

(k−1)
i,j

˜l

i,k

˜a

(k−1)
k,j

(1 + ω

1

)

(1 + ω

2

),

ω

1

, ω

2

≤ ν. Stąd i z (4.1) otrzymujemy

ε

(k)
i,j

= ˜a

(k)
i,j

˜a

(k−1)
i,j

+ ˜l

i,k

˜a

(k−1)
k,j

= ˜a

(k)
i,j

˜a

(k)
i,j

1 + ω

2

+ ω

1

˜l

i,k

˜a

(k−1)
k,j

=

ω

2

1 + ω

2

˜a

(k)
i,j

+ ω

1

˜l

i,k

˜a

(k−1)
k,j

oraz

(k)
i,j

| ≤

ν

1 − ν

(|˜a

(k)
i,j

| + |˜a

(k−1)
k,j

|).

Niech teraz G

0

= max

i,j

|a

i,j

|,

G

k

= max

i,j

|˜a

(k)
i,j

|,

oraz G = max

0≤k≤n−1

G

k

. Dla i ≤ j mamy

|e

i,j

| ≤

i−1

X

s=0

(s)
i,j

| ≤

ν

1 − ν

G

0

+

i−1

X

s=1

(G

s−1

+ G

s

)

=

ν

1 − ν

G

i−1

+ 2

i−2

X

s=0

G

s

ν

1 − ν

(2i − 1)G,

background image

4.2. POPRAWNOŚĆ ROZKŁADU TRÓJKĄTNEGO

43

a dla i > j

|e

i,j

| ≤

j

X

s=0

(s)
i,j

| ≤

ν

1 − ν

G

0

+

j

X

s=1

(G

s−1

+ G

s

)

=

ν

1 − ν

G

j

+ 2

j−1

X

s=0

G

s

ν

1 − ν

(2j + 1)G.

W obu przypadkach

|e

i,j

| ≤

2ν

1 − ν

nG.

(4.6)

Łatwo zauważyć, że ˜a

(1)
i,j

˜

(|a

i,j

| + |a

k,j

|)(1 + 2ν) oraz

|˜a

(k)
i,j

| ≤ (|˜a

(k−1)
i,j

| + |˜a

(k−1)
k,j

|)(1 + ν),

co implikuje G

k

˜

2G

k−1

, a w konsekwencji

G ˜

2

n−1

max

i,j

|a

i,j

|.

Ostatnia nierówność oraz (4.6) dają

|e

i,j

| ˜

≤ n2

n

ν

max

i,j

|a

i,j

|,

a ponieważ dla dowolnej macierzy B ∈ R

n×n

mamy

1

n

kBk

max

i,j

|a

i,j

| ≤ kBk

,

to

kEk

≤ K(n) ν kAk

,

gdzie K(n) jest na poziomie n

2

2

n

. Z równoważności norm w R

n×n

wy-

nika, że podobna nierówność zachodzi dla dowolnej, innej niż k · k

normy, ale być może z inną stałą K(n).

Oczywiście, ewentualne permutacje wierszy nie zmieniają tych osza-

cowań, a powodują jedynie przemnożenie lewej strony równości (4.5)
przez pewną macierz permutacji.

background image

44 ROZDZIAŁ 4. ANALIZA BŁĘDÓW W ELIMINACJI GAUSSA

Aby zakończyć dowód, trzeba jeszcze pokazać, że dla dostatecznie

małych ν rozkład jest wykonalny, co jest równoważne temu, że macierz
(A + E) jest nieosobliwa. Rzeczywiście, weźmy ν > 0 spełniające

ν K

(n) kAk

kA

1

k

<

1.

(4.7)

Jeśliby macierz (A + E) była osobliwa to dla pewnego niezerowego
wektora ~x mielibyśmy (A+E)~x = A(I +A

1

E

)~x = 0, a w konsekwencji

kA

1

E~x

k

= k~xk

i

1 ≤ kA

1

E

k

≤ kA

1

k

kEk

≤ K(n)νkAk

kA

1

k

,

co przeczy (4.7).

2

Zauważmy, że warunek (4.7) na wykonalność rozkładu w

ν

zależy

od macierzy A poprzez wielkość

cond(A) = kAk kA

1

k.

Wielkość tą nazywa się uwarunkowaniem macierzy. Z Twierdzenia 4.1
oraz warunku (4.7) wynika ważny wniosek o numerycznej poprawności
rozkładu w klasie macierzy o uwarunkowaniu wspólnie ograniczonym
przez pewną stałą.

Wniosek 4.1 Niech M > 0. W klasie macierzy nieosobliwych A ta-
kich, że

cond(A) =

kAk kA

1

k ≤ M

rozkład P A = LR jest numerycznie poprawny. Dokładniej, dla ν <
1/(MK(n)) rozkład w fl

ν

jest wykonalny, a otrzymane macierze P

ν

,

L

ν

i R

ν

pochodzą z dokładnego rozkładu macierzy (A+E), gdzie

kEk ≤

K

(n)νkAk.

2

4.3 Poprawność rozwiązywania układu

Przypomnijmy, że algorytm eliminacji Gaussa rozwiązywania układów
równań A~x = ~b polega na rozkładzie macierzy na iloczyn P A = LR, a
następnie na rozwiązaniu dwóch układów trójkątnych (albo, równoważ-
nie, na sprowadzeniu układu do postaci trójkątnej i rozwiązaniu go).
Numeryczna poprawność każdego z tych etapów algorytmu daje nam
również numeryczną poprawność całego algorytmu.

background image

4.3. POPRAWNOŚĆ ROZWIĄZYWANIA UKŁADU

45

Twierdzenie 4.2 Niech M > 0. Algorytm eliminacji Gaussa z wybo-
rem elementu głównego w kolumnie zastosowany do rozwiązania układu
równań

A~x

= ~b

jest numerycznie poprawny w klasie danych wektorów ~b

R

n

oraz ma-

cierzy nieosobliwych A

R

n×n

spełniających

cond(A)

≤ M.

Dowód Dla dostatecznie silnej arytmetyki, rozkład macierzy A daje
w

ν

P

1

(A + E

1

) = L

1

R

1

, gdzie kE

1

k ≤ K

1

ν

kAk. W drugim kroku,

otrzymane w

ν

rozwiązanie ~y

1

układu L

1

~y

= P

1

~b jest dokładnym roz-

wiązaniem układu (L

1

+ E

2

)~y = P

1

(~b + ~e), gdzie kE

2

k ≤ K

2

ν

kL

1

k

oraz k~ek ≤ K

3

ν

k~bk. Z kolei w ostatnim kroku algorytmu, rozwiązując

układ R

1

~x

= ~y

1

dostajemy w

ν

rozwiązanie ~x

ν

, które jest dokład-

nym rozwiązaniem układu (R

1

+ E

3

)~x = ~y

1

, gdzie kE

3

k ≤ K

3

ν

kR

1

k.

(Zauważmy, że wektor ~y

1

nie jest zaburzony, bo jest on reprezentowany

dokładnie, zob. Rozdział 4.1). Stąd otrzymane w

ν

rozwiązanie ~x

ν

jest

dokładnym rozwiązaniem układu

A

ν

~x

= ~b

ν

,

gdzie ~b

ν

= ~b + ~e, a A

ν

= A + E spełnia równanie

P

1

(A + E) = (L

1

+ E

2

) (R

1

+ E

3

).

Aby zakończyć dowód, należy teraz oszacować kEk. Ponieważ P

1

(A +

E

1

) = L

1

R

1

, mamy

P

1

E

= P

1

E

1

+ L

1

E

3

+ E

2

R

2

+ E

2

E

3

.

Stąd

kEk

≤ kE

1

k

+ kL

1

k

kE

3

k

+ kE

2

k

kR

2

k

+ kE

2

k

kE

3

k

˜

≤ νK

1

kAk

+ kL

1

k

νK

3

kR

1

k

+ kR

1

k

νK

2

kL

1

k

= ν

K

1

kAk

+ (K

2

+ K

3

)kL

1

k

kR

1

k

.

Ponieważ elementy macierzy L

1

są co do modułu nie większe od jedno-

ści, mamy kL

1

k

≤ n. Jak zauważyliśmy wcześniej, mamy też kR

1

k

background image

46 ROZDZIAŁ 4. ANALIZA BŁĘDÓW W ELIMINACJI GAUSSA

n

2

n−1

kAk

. Przyjmując K = K

1

+ (K

2

+ K

3

)n

2

2

n−1

ostatecznie otrzy-

mujemy

kEk

≤ K ν kAk

,

czyli numeryczną poprawność, ponieważ stała K nie zależy od ν i A.
2

4.4 Uwarunkowanie macierzy, a błąd w

ν

Pokazaliśmy, że eliminacja Gaussa jest numerycznie poprawna w klasie
macierzy A ∈ R

n×n

takich, że

cond(A) ≤ M,

gdzie M < ∞ jest jakąkolwiek stałą niezależną od A. Okazuje się, że

wielkość uwarunkowania macierzy, cond(A), ma też zasadniczy wpływ
na błąd zadania rozwiązywania układu równań. Rzeczywiście, mamy
bowiem następujące twierdzenie. (Poniżej norma wektorowa jest do-
wolna, ale ustalona, a norma macierzowa jest przez nią indukowana,
zob. U. 1.2.)

Twierdzenie 4.3 Niech E i ~e będą zaburzeniami odpowiednio macie-
rzy A i wektora ~b takimi, że

kEk ≤ K

1

ν

kAk

i

k~ek ≤ K

2

ν

k~bk,

Jeśli

K

1

νcond(A) < 1

to układ zaburzony (A + E)~x = (~b + ~e) ma jednoznaczne rozwiązanie ~z

spełniające

k~z

− ~x

k ≤ (K

1

+ K

2

) ν

cond(A)

1 − K

1

νcond(A)

k~x

k.

background image

4.4. UWARUNKOWANIE MACIERZY, A BŁĄD W FL

ν

47

Dowód Zauważmy najpierw, że jeśli F jest macierzą taką, że

kF k < 1

to macierz (I − F ) (gdzie I jest macierzą identycznościową) jest nie-

osobliwa oraz

k(I − F )

1

k ≤

1

1 − kF k

.

(4.8)

Rzeczywiście, gdyby (I−F ) była osobliwa to istniałby niezerowy wektor
~x

taki, że (I − F )~x = 0, co implikuje kF~xk/k~xk = 1 i w konsekwencji

kF k ≥ 1. Aby pokazać (4.8) zauważmy, że

1 = kIk = k(I − F )(I − F )

1

k

≥ k(I − F )

1

k − kF k k(I − F )

1

k

= (1 − kF k) k(I − F )

1

k,

skąd bezpośrednio wynika (4.8).

Po podstawieniu F = −A

1

E

mamy teraz

kF k ≤ kA

1

k kEk ≤ K

1

ν

kAk kA

1

k < 1,

co wobec równości A + E = A(I + A

1

E

) daje, że macierz (A + E)

jest nieosobliwa i układ zaburzony ma jednoznaczne rozwiązanie ~z

.

Przedstawmy to rozwiązanie w postaci ~z

= ~x

+ (~z

− ~x

). Rozpisując

układ zaburzony i wykorzystując równość A~x

= ~b otrzymujemy, że

(A + E)(~z

− ~x

) = ~e − E~x

, czyli

~z

− ~x

= (I + A

1

E

)

1

A

1

(~e − E~x

),

a stąd

k~z

− ~x

k ≤ k(I + A

1

E

)

1

k kA

1

k (k~ek + kEk k~x

k

kA

1

k

1 − K

1

ν

kAk kA

1

k

K

2

ν

k~bk + K

1

ν

kAk k~x

k

kAk kA

1

k

1 − K

1

ν

kAk kA

1

k

(K

1

+ K

2

) ν k~x

k,

co kończy dowód.

2

Podsumowując Twierdzenia 4.2 i 4.3 otrzymujemy wniosek, który

jest końcowym wynikiem tego rozdziału.

background image

48 ROZDZIAŁ 4. ANALIZA BŁĘDÓW W ELIMINACJI GAUSSA

Wniosek 4.2 Niech A będzie macierzą nieosobliwą. Dla dostatecznie
silnej arytmetyki,

ν K

(n) cond(A) 1

(gdzie K(n) jest pewną stłą niezależną od A i ν), eliminacja Gaussa z
wyborem elementu głównego w kolumnie, zastosowana do rozwiązania
układu A~x
= ~b, jest w fl

ν

wykonalna i daje wynik fl

ν

(~x

) spełniający

nierówność

kfl

ν

(~x

) − ~x

k ˜

≤ K(n) ν cond(A) k~x

k.

2

Uwagi i uzupełnienia

U. 4.1 Jak zauważyliśmy w dowodzie Twierdzenia 4.1 stała kumulacji K(n)
zależy zasadniczo od wzrostu maksymalnego elementu G

k

w macierzach A

(k)

powstających w kolejnych krokach eliminacji. Okazuje się, że uzyskane, pe-
symistyczne oszacowanie G = max

k

G

k

2

n−1

G

0

jest praktycznie nie spo-

tykane, choć teoretycznie może być osiągnięte. Przykładem jest macierz

1

0

0 · · ·

0 1

1

1

0

... 1

1 1

1

... 1

...

0

...

1 1

1 1 1 · · · −1 1

,

dla której G

k

= 2

k

G

0

, 0 ≤ k ≤ n − 1, oraz G = 2

n−1

G

0

.

U. 4.2 Eliminacja Gaussa bez przestawień wierszy jest numerycznie po-
prawna, gdy element maksymalny w kolejnych macierzach A

(k)

wzrasta w

sposób niezależny od A. Na przykład, gdy G

k

≤ mG

k−1

to G ≤ m

k−1

G

0

i w

Twierdzeniu 4.1 mamy K(n) = 2n

2

m

k−1

. Ma to miejsce wtedy gdy A jest

symetryczna i dodatnio określona, albo ma dominującą główną przekątną,
zob. U. 4.3 oraz Ćw. 4.5 i 4.6.

U. 4.3 Dla macierzy symetrycznych i dodatnio określonych, A = A

T

> 0,

eliminacja Gaussa jest wykonalna bez przestawień wierszy, zob. U. 3.7. W
klasie tych macierzy eliminacja bez przestawień wierszy jest też numerycz-
nie poprawna, a więc w szczególności algorytm Banachiewicza-Choleskiego

background image

4.4. UWARUNKOWANIE MACIERZY, A BŁĄD W FL

ν

49

jest numerycznie popeawny. Wykażemy to pokazując, że maksymalny ele-
ment w kolejnych macierzach A

(k)

wzrasta co najwyżej dwukrotnie, tzn.

G

k

2G

k−1

, 1 ≤ k ≤ n. W tym celu wykorzystamy fakt, że dla dowolnej

symetrycznej i dodatnio określonwj macierzy B = (b

i,j

) mamy b

i,i

> 0, oraz

spełniona jest nierówność

b

2

i,j

< b

i,i

b

j,j

,

∀i, j

(4.9)

(zob. Ćw. 4.1). Jak wykazaliśmy w U. 3.7, każda z macierzy A

(k)

jest syme-

tryczna i dodatnio określona, Stąd

|a

(k)
i,j

| = |a

(k−1)
i,j

− l

i,k

a

(k−1)
k,j

|

≤ |a

(k−1)
i,j

| +

|a

(k−1)
i,k

|

|a

(k−1)
k,k

|

|a

(k−1)
k,j

|

r

a

(k−1)
i,i

a

(k−1)
j,j

+

q

a

(k−1)
i,i

a

(k−1)
k,k

q

a

(k−1)
k,k

a

(k−1)
j,j

a

(k−1)
k,k

= 2

r

a

(k−1)
i,i

a

(k−1)
j,j

2 max(a

(k−1)
i,i

, a

(k−1)
j,j

),

a w konsekwencji G

k

2G

k−1

.

Ćwiczenia

Ćw. 4.1 Wykazać, że macierz symetryczna 2 × 2

a c

c b

!

jest dodatnio określona wtedy i tylko wtedy, gdy a > 0 i ab > c

2

. Wywnio-

skować stąd nierównosc (4.9) dla macierzy symetrycznych i dodatnio określo-
nych dowolnego wymiaru. Ponadto, największy co do modułu element takiej
macierzy leży na głównej diagonali.

Ćw. 4.2 Wykazać, że macierz A jest dodatnio określona wtedy i tylko wtedy
gdy dla każdego ~x ∈ R

n

wektory A~x i ~x tworzą w R

n

kąt ostry.

background image

50 ROZDZIAŁ 4. ANALIZA BŁĘDÓW W ELIMINACJI GAUSSA

Ćw. 4.3 Pokazać, że jeśli eliminację Gaussa z wyborem elementu głównego
w kolumnie zastosujemy do macierzy trójdiagonalnej, to wzrost elementu
maksymalnego macierzy nie będzie zależał od n. Dokładniej,

max

i,j,k

|a

(k)
i,j

| ≤ 2 max

i,j

|a

i,j

|.

Ćw. 4.4 Pokazać, że dla macierzy Hessenberga (a

i,j

= 0 dla i ≥ j + 2)

eliminacja Gaussa z wyborem elementu głównego w kolumnie daje

max

i,j,k

|a

(k)
i,j

| ≤ (k + 1) max

i,j

|a

i,j

|.

Ćw. 4.5 Pokazać numeryczną poprawność algorytmu przeganiania z U. 3.6.

Ćw. 4.6 Wykazać numeryczną poprawność eliminacji Gaussa bez przesta-
wień wierszy dla macierzy z dominującą przekątną, tzn. gdy

2|a

i,i

| >

n

X

j=1

|a

i,j

|,

1 ≤ i ≤ n.

Wskazówka. Zauważyć, że max

i,j

|a

(k)
i,j

| ≤ 2 max

i,j

|a

(k−1)
i,j

|.

Ćw. 4.7 Jeśli

(A + E)~z = ~b,

(4.10)

gdzie kEk

p

≤ KνkAk

p

, to oczywiście dla residuum ~r = ~b − A~z mamy

k~rk

p

≤ KνkAk

p

k~zk

p

.

(4.11)

Pokazać, że dla p = 1, 2, ∞ zachodzi też twierdzenie odwrotne, tzn. jeśli

spełniony jest warunek (4.11) to istnieje macierz pozornych zaburzeń E taka,
że kEk

p

≤ KνkAk

p

oraz spełniona jest równość (4.10).

Wskazówka. Rozpatrzyć E = ~r(sgn z

i

)

T

1≤i≤n

/

k~zk

1

dla p = 1, E = ~r~z

T

/

k~zk

2

2

dla p = 2, oraz E = ~r(sgn z

k

)~e

T

k

/

k~zk

dla p = , gdzie k jest indeksem dla

którego |z

k

| = k~zk

.

background image

Rozdział 5

Zadanie wygładzania
liniowego

W tym rozdziale zajmiemy się zadaniem wygładzania liniowego, na-
zywanym też liniowym zadaniem najmniejszych kwadratów. Jest ono
uogólnieniem zadania rozwiązywania kwadratowych układów równań
liniowych do przypadku, gdy układ jest nadokreślony.

5.1 Układ normalny

Niech A będzie daną macierzą o m wierszach i n kolumnach, A ∈ R

m×n

,

taką, że

m

≥ n = rank(A),

albo równoważnie, taką że jej wektory kolumny są liniowo niezależne.
Niech także dany będzie wektor ~b ∈ R

m

. Jasne jest, że wtedy układ

równań A~x = ~b nie zawsze ma rozwiązanie - mówimy, że układ jest
nadokreślony.

Zadanie wygładzania liniowego polega na znalezieniu wektora ~x

R

n

, który minimalizuje wektor residualny ~r = ~b −A~x w normie drugiej,

tzn.

k~b − A~x

k

2

= min

~

x∈

R

n

k~b − A~xk

2

.

Przykład 5.1 Przypuśćmy, że dla pewnej funkcji f : [a, b]

R ob-

serwujemy jej wartości f

i

(dokładne lub zaburzone) w punktach t

i

,

51

background image

52

ROZDZIAŁ 5. ZADANIE WYGŁADZANIA LINIOWEGO

1 ≤ i ≤ m. Funkcję tą chcielibyśmy przybliżyć inną funkcją w nale-

żącą do pewnej n wymiarowej przestrzeni liniowej W , np. przestrzeni
wielomianów stopnia mniejszego niż n. Jakość przybliżenia mierzymy
wielkością

m

X

i=1

(f

i

− w(t

i

))

2

.

(5.1)

Wybierając pewną bazę (w

j

)

n

j=1

w W i rozwijając w w tej bazie, w(t) =

P

n

j=1

c

j

w

j

(t), sprowadzamy problem do minimalizacji

m

X

i=1

f

i

n

X

j=1

c

j

w

j

(t

i

)

2

względem c

j

, a więc do zadania wygładzania liniowego. Rzeczywiście,

kładąc A = (a

i,j

) R

m×n

z a

i,j

= w

j

(t

i

), ~b = (f

i

)

m

i=1

i ~x = (c

j

)

n

j=1

,

wielkość (5.1) jest równa k~b − A~xk

2

2

.

Lemat 5.1 Zadanie wygładzania liniowego ma jednoznaczne rozwiąza-
nie ~x

, które spełnia układ równań

A

T

A~x

= A

T

~b.

(5.2)

Dowód Niech P

R

m

będzie obrazem A jako odwzorowania liniowego

z R

n

w R

m

,

P

= { A~x : ~x ∈ R

n

}.

Ponieważ kolumny macierzy A są liniowo niezależne, tworzą one bazę
w P . Stąd dim(P ) = n i odwzorowanie A : R

n

→ P jest różnowar-

tościowe. Ponadto przestrzeń R

m

z normą drugą jest przestrzenią uni-

tarną. Residuum jest więc minimalizowane dla wektora ~x

R

n

ta-

kiego, że A~x

jest rzutem prostopadłym wektora ~b na podprzestrzeń P .

(Przypomnijmy, że skończony wymiar P zapewnia, że taki rzut istnieje
i jest wyznaczony jednoznacznie.) Równoważnie można powiedzieć, że
residuum ~b − A~x

jest prostopadłe do P ,

(A~x)

T

(~b − A~x

) = 0,

∀~x ∈ R

n

,

albo

x

T

( ~

A

T

~b − A

T

A~x

) = 0.

∀~x ∈ R

n

.

background image

5.1. UKŁAD NORMALNY

53

Otrzymaliśmy więc, że wektor A

T

~b − A

T

A~x

jest prostopadły w R

n

do

każdego innego wektora. Ponieważ jedynym wektorem o tej własności
jest wektor zerowy, to A

T

A~x

= A

T

~b.

2

Zauważmy, że jeśli macierz A jest kwadratowa, m = n, to rozwią-

zaniem jest ~x

= A

1

~b i residuum jest zerem. Zadanie wygładzania li-

niowego jest więc uogólnieniem rozwiązywania kwadratowych układów
równań liniowych.

Równanie (5.2) nazywa się układem normalnym. Może ono nam

sugerować sposób rozwiązania zadania wygładzania liniowego. Wystar-
czy bowiem pomnożyć macierz A

T

przez A i rozwiązać układ normalny.

Zauważmy ponadto, że macierz A

T

A

jest symetryczna i dodatnio okre-

ślona, bo (A

T

A

)

T

= A

T

A

i dla ~x 6= 0 mamy ~x

T

(A

T

A

)~x = (A~x)

T

(A~x) =

kA~xk

2

>

0, przy czym ostatnia nierówność wynika z faktu, że kolumny

macierzy A są liniowo niezależne i dlatego A~x 6= ~0. Przy mnożeniu A

T

przez A wystarczy więc obliczyć tylko elementy na głównej przekątnej
i pod nią, a do rozwiązania równania z macierzą A

T

A

można zastoso-

wać algorytm Banachiewicza-Choleskiego opisany w U. 3.7. Jak łatwo
się przekonać, koszt takiego algorytmu wynosi n

2

(k + n/3), przy czym

dominuje koszt mnożenia obliczenia macierzy A

T

A

.

Ma on jednak pewne wady. Mnożenie macierzy powoduje w

ν

po-

wstanie “po drodze” dodatkowych błędów, które mogą nawet zmienić
rząd macierzy. Na przykład, dla macierzy

A

=

1 1 1 1
ε

ε

ε

ε

mamy

A

T

A

=

1 + ε

2

1

1

1

1

1 + ε

2

1

1

1

1

1 + ε

2

1

1

1

1

1 + ε

2

.

Jeśli ε

2

< ν

to

ν

(1+ε

2

) = 1, co implikuje rank(

ν

(A

T

A

)) = 1, podczs

gdy rank(

ν

(A)) = 4.

background image

54

ROZDZIAŁ 5. ZADANIE WYGŁADZANIA LINIOWEGO

Poniżej przedstawimy inną metodę rozwiązywania zadania wygła-

dzania liniowego, która oparta jest na specjalnych przekształceniach
zwanych odbiciami Hauseholdera.

5.2 Odbicia Hauseholdera

Dla danego wektora ~

w

R

m

o normie k~wk

2

=

~

w

T

~

w

= 1, odbicie

(macierz) Hauseholdera zdefiniowane jest jako

H

= I − 2~w ~w

T

.

Zauważmy, że

H~x

= ~x − 2(~w

T

~x

) ~

w,

a ponieważ ( ~

w

T

~x

) ~

w

= h~x, ~wi

2

~

w

jest rzutem prostopadłym ~x na kieru-

nek wektora ~

w

(h·, ·i

2

oznacza iloczyn skalarny), to H~x jest odbiciem

lustrzanym wektora ~x względem hiperpłaszczyzny (wymiaru m − 1)

prostopadłej do ~

w

.

Odbicia Hauseholdera są przekształceniami nieosobliwymi spełnia-

jącymi

H

1

= H = H

T

.

Rzeczywiście, ponieważ ~

w

ma normę jednostkową, mamy

H

2

= (I − 2~w ~w

T

)

2

= I − 4~w ~w

T

+ 4 ~

w

( ~

w

T

~

w

) ~

w

T

= I,

oraz

H

T

= (I − 2~w ~w

T

)

T

= I − 2(~w

T

)

T

~

w

T

= I.

W szczególności H jest więc przekształceniem ortogonalnym, H

1

=

H

T

, czyli nie zmienia długości wektora,

kH~xk

2

=

q

(H~x)

T

(H~x) =

q

~x

T

(H

T

H

)~x =

~x

T

~x

= k~xk

2

.

Odbicia Hauseholdera zastosujemy do przeprowadzenia danego wek-

tora ~a 6= ~0 na kierunek innego niezerowego wektora, powiedzmy ~e, tzn.

H~a

= (I − 2~w ~w

T

)~a = α ~e.

background image

5.2. ODBICIA HAUSEHOLDERA

55

Załóżmy dla uproszczenia, że k~ek

2

= 1. Aby wyznaczyć H zauważmy,

że

~

w

=

~a

− α~e

2( ~

w

T

~a

)

,

a ponieważ α = ±k~ak

2

i k~wk

2

= 1 to

~

w

=

~a

∓ k~ak

2

~e

k~a ∓ k~ak

2

~e

k

2

.

W szczególności, jeśli ~e = ~e

1

jest pierwszym wersorem to powyższe

wzory dają

H

= I −

~u~u

T

γ

,

gdzie

u

i

=

(

a

1

∓ k~ak

2

i

= 1,

a

i

2 ≤ i ≤ m,

oraz

γ

=

1
2k

~u

k

2

2

=

1
2

(a

1

∓ k~ak

2

)

2

+

m

X

i=2

a

2

i

=

1
2

m

X

i=1

a

2

i

+ k~ak

2

2

2a

1

kak

2

= kak

2

2

∓ a

1

kak

2

.

Otrzymaliśmy dwa odbicia Hauseholdera przekształcające dany wektor

~a

na kierunek pierwszego wersora, w zależności od wybranego znaku

przy k~ak

2

. Ustalimy ten znak na plus gdy a

1

0, oraz na minus gdy

a

1

<

0, co pozwoli na obliczenie u

1

i γ z małym błędem względem w

ν

. Wtedy bowiem mamy

u

1

=

(

a

1

+ kak

2

a

1

0,

a

1

− kak

2

a

1

<

0,

oraz γ = k~ak

2

2

+ |a

1

| k~ak

2

, czyli zawsze dodajemy liczby tych samych

znaków. Ponadto pierwsza współrzędna wektora H~a jest równa −k~ak

2

dla a

1

0, oraz +k~ak

2

dla a

1

<

0.

background image

56

ROZDZIAŁ 5. ZADANIE WYGŁADZANIA LINIOWEGO

5.3 Algorytm dla zadania wygładzania

Odbić Hauseholdera można użyć do rozkładu macierzy A ∈ R

m×n

na

iloczyn ortogonalno-trójkątny.

Niech A = (~a

1

, ~a

2

, . . . , ~a

n

), gdzie ~a

j

są wektorami-kolumnami macie-

rzy A. Wybierzmy pierwsze odbicie Hauseholdera H

1

= I

m

− ~u

1

~u

T

1

1

tak, aby przekształcało pierwszy wektor-kolumnę macierzy A na kieru-
nek ~e

1

. Efektem pomnożenia macierzy A z lewej strony przez H

1

będzie

wtedy macierz

A

(1)

= (~a

(1)
1

, . . . , ~a

(1)

n

) = (H

1

~a

1

, . . . , H

1

~a

n

),

w której pierwsza kolumna ~a

(1)
1

ma niezerową tylko pierwszą współ-

rzędną. W następnym kroku wybieramy drugie przekształcenie Hause-
holdera ¯

H

2

= I

m−1

− ~v

2

~v

T

2

2

wymiaru m − 1 tak, aby przeprowadzało

wektor (a

(1)
i,2

)

m

i=2

na kierunek pierwszego wersora w R

m−1

. Rozszerzając

~v

2

R

m−1

do wektora ~u

2

R

m

przez dodanie zera jako pierwszej

współrzędnej, ~u

2

= (0, ~v

2

)

T

, otrzymujemy przekształcenie (macierz)

Hauseholdera H

2

= I

m

− ~u

2

~u

T

2

2

w R

m

postaci

H

2

=

1 ~0

T

~0 ¯

H

2

!

.

Pomnożenie macierzy A

(1)

z lewej strony przez H

2

spowoduje teraz

wyzerowanie drugiej kolumny macierzy pod elementem a

(1)
2,2

, przy czym

pierwszy wiersz i pierwsza kolumna pozostaną niezmienione. Postępując
tak dalej n razy (albo n − 1 razy gdy m = n) otrzymujemy

H

n

H

n−1

· · · H

2

H

1

A

= R,

gdzie R ∈ R

m×n

jest uogólnioną macierzą trójkątną górną, tzn. r

i,j

= 0

dla i > j. Stąd, podstawiając Q = H

1

H

2

· · · H

n

, dostajemy rozkład

macierzy na iloczyn ortogonalno-trójkątny

A

= Q · R.

(5.3)

Rzeczywiście, macierz Q ∈ R

m×m

jest ortogonalna, bo

Q

1

= (H

1

H

2

· · · H

n

)

1

= H

1

n

· · · H

1

2

H

1

1

= H

T

n

· · · H

T

2

H

T

1

= (H

1

H

2

· · · H

n

)

T

= Q

T

.

background image

5.3. ALGORYTM DLA ZADANIA WYGŁADZANIA

57

Dyspunując rozkładem (5.3) zadanie wygładzania liniowego można

rozwiązać następująco. Ponieważ mnożenie przez macierz ortogonalną
nie zmienia normy drugiej wektora, mamy

k~rk

2

= k~b − A~xk

2

= k~b − QR~xk

2

= kQ(Q

T

~b − R~x)k

2

= k~c − R~xk

2

,

gdzie ~c = Q

T

~b = H

n

· · · H

2

H

1

~b. Rozbijając wektor ~c na ~c = (~c

I

, ~c

II

)

T

,

gdzie ~c

I

R

n

i ~c

II

R

m−n

, oraz macierz R na

R

=

R

I

0

!

,

gdzie R

I

R

n×n

jest macierzą trójkątną górną, a 0 jest macierzą zerową

wymiaru (m − n) × n, otrzymujemy

k~rk

2

2

= k~c

I

− R

I

~x

k

2

2

+ k~c

II

k

2

2

.

Rozwiązanie ~x

zadania wygładzania jest więc rozwiązaniem układu

liniowego trójkątnego,

~x

= R

1

I

~c

I

,

oraz k~r

k

2

= k~b − A~x

k

2

= k~c

II

k

2

.

Zastanówmy się nad praktyczną realizacją tego algorytmu. Każde z

kolejnych przekształceń Hauseholdera H

k

wyznaczamy przez obliczenie

γ

k

oraz współrzędnych wektora ~u

k

. Wektor ten ma tylko m − k + 1

współrzędnych niezerowych, a ponadto u

k,i

= a

(k−1)
i,k

dla k + 1 ≤ i ≤ m.

Dzięki takiej reprezentacji H

k

, mnożenia H

k

~x

możemy dla dowolnego

~x

realizować według wzoru

(H

k

~x

)

i

= x

i

− s u

k,i

,

gdzie s = ~u

T

k

~x/γ

k

.

Uwzględnizjąc obecność zerowych elementów w ~u

k

, przejście od ma-

cierzy A

(k−1)

do A

(k)

kosztuje rzędu 4(m−k+1)(n−k) operacji arytme-

tycznych i obliczenie jednego pierwiastka kwadratowego. Cały rozkład
A

= QR kosztuje więc rzędu (dla dużych m i n)

n

X

k=1

4(m − k + 1)(n − k)

4
3

n

3

+ 2n

2

(m − n) = 2n

2

(m − n/3)

background image

58

ROZDZIAŁ 5. ZADANIE WYGŁADZANIA LINIOWEGO

operacji arytmetycznych i n pierwiastków kwadratowych. Zauważmy,
że w przypadku m = n, a więc dla kwadratowego układu równań, koszt
ten wynosi (4/3)n

3

i jest dwa razy większy od kosztu eliminacji Gaussa.

Uwagi i uzupełnienia

U. 5.1 Pokazaliśmy, że rozwiązaniem zadania wygładzania liniowego jest
wektor ~x

= A

+

~b, gdzie

A

+

= (A

T

A)

1

A

T

.

Macierz A

+

R

n×m

nazywa się macierzą pseudoodwrotną do A ∈ R

m×n

,

rank(A) = n. Dla nieosobliwych macierzy kwadratowych mamy oczywiście
A

+

= A

1

, ponieważ wtedy ~x

= A

1

.

U. 5.2 Pokażemy, że każdą macierz A

m×n

, rank(A) = n, można rozłożyć

na iloczyn

A = U Σ V

T

,

(5.4)

gdzie U ∈ R

m×m

i V ∈ R

n×n

są macierzami ortogonalnymi, a Σ R

m×n

jest macierzą diagonalną (tzn. σ

i,j

= 0 dla i 6= j) o dodatnich wyrazach σ

i,i

.

Ponieważ macierz A

T

A jest symetryczna i dodatnio określona, znane

twierdzenie z algebry liniowej mówi, że istnieje w R

n

baza ortonormalna

(

j

)

n

j=1

wektorów własnych tej macierzy, a odpowiadające im wartości własne

są rzeczywiste i dodatnie, tzn.

h~ξ

i

, ~

ξ

j

i

2

=

(

0

i

6= j,

1

i = j,

oraz (A

T

A)~

ξ

j

= λ

j

~

ξ

j

, gdzie

λ

1

≥ λ

2

≥ · · · ≥ λ

n

> 0.

Zauważmy, że wektory

i

= λ

1/2
i

(A~ξ

i

) są ortonormalne w R

m

, bowiem

h~η

i

, ~η

j

i

2

= (λ

i

λ

j

)

1/2

hA~ξ

i

, A~

ξ

j

i

2

= (λ

i

λ

j

)

1/2

h(A

T

A)~

ξ

i

, ~

ξ

j

i

2

= (λ

i

λ

j

)

1/2

λ

i

h~ξ

i

, ~

ξ

j

i

2

=

(

0

i

6= j,

1

i = j.

background image

5.3. ALGORYTM DLA ZADANIA WYGŁADZANIA

59

Wektory

i

, 1 ≤ i ≤ n, można uzupełnić m − n dodatkowymi wektorami

tak, aby cały układ (

i

)

m

i=1

był bazą ortonormalną w R

m

. Zdefiniujmy teraz

macierze ortogonalne U o kolumnach

i

, 1 ≤ i ≤ m, oraz V o kolumnach

~

ξ

j

, 1 ≤ j ≤ n. Bezpośredni rachunek pokazuje, że macierz U

T

AV jest dia-

gonalna z wyrazami na przekątnej

p

λ

j

. Stąd A = UΣV

T

z σ

j,j

=

p

λ

j

,

1 ≤ j ≤ n.

Liczby

p

λ

j

nazywa się wartościami szczególnymi macierzy A, a rozkład

(5.4) rozkładem macierzy według wartości szczególnych.

Zauważmy jeszcze, że jeśli A = UΣV

T

to A

+

= V Σ

+

U

T

oraz Σ

+

R

n×m

jest macierzą diagonalną z wyrazami na diagonali równymi 1/

p

λ

j

.

Rozwiązanie zadania wygładzania liniowego można więc zapisać jako

~x

= V Σ

+

U

T

~b.

U. 5.3 Przedstawimy teraz jedną z możliwych implementacji algorytmu
Hauseholdera rozkładu macierzy na iloczyn A = QR. Po wykonaniu poniż-
szego programu wyrazy r

i,j

macierzy R dla 1 ≤ i ≤ j zostaną zapamiętane

na miejscach a[i, j], współrzędne u

j,i

wektora ~u

j

dla j + 1 ≤ i ≤ m na miej-

scach a[i, k], a współrzędna u

j,j

i liczba γ

j

odpowiednio na u[j] i gam[j],

1 ≤ j ≤ n.

for k := 1 to n do
begin

{ obliczanie kolejnego odbicia Hauseholdera }
norm
2 := 0.0;
for l := k to m do
begin

aa := a[l, k];
norm2 := norm2 + aa

∗ aa

end;
norm := sqrt(norm2);
aa := a[k, k];
if (aa ≥ 0.0) then

begin

uu := aa + norm;
akk :=

−norm

end

else

begin

uu := aa

− norm;

akk := norm

background image

60

ROZDZIAŁ 5. ZADANIE WYGŁADZANIA LINIOWEGO

end;
gamma := norm2 + abs(aa)

∗ norm;

u[k] := uu;
gam[k] := gamma;
{ modyfikacja kolumn macierzy }
a
[k, k] := akk;
for j := k + 1 to n do
begin

s := uu

∗ a[k, j];

for l := k + 1 to m do

s := s + a[l.k]

∗ a[l, j];

s := s/gamma;
a[k, j] := a[k, j]

− s ∗ uu;

for l := k + 1 to m do

a[l, j] := a[l, j]

− s ∗ a[l, k]

end;

end.

U. 5.4 Można pokazać, że przedstawiony algorytm Hauseholdera rozkładu
macierzy na iloczyn ortogonalno-trójkątny jest numerycznie poprawny. To
znaczy, otrzymane w

ν

macierz trójkątna górna R

ν

i ortogonalna Q

ν

(re-

prezentowana przez n wektorów ~u

k

i liczb γ

k

) spełniają (A + E) = Q

ν

R

ν

,

gdzie kEk ≤ K(m, n)νkAk.

U. 5.5 Zadanie wygładzania liniowego można również rozwiązać stosując
innego rodzaju rozkład ortogonalno-trójkątny macierzy A ∈ R

m×n

; miano-

wicie przez zastosowanie ortogonalizacji Grama-Schmidta do wektorów ko-
lumn ~a

j

macierzy A. W wyniku otrzymujemy ciąg wektorów ~q

j

, 1 ≤ j ≤ n,

tworzący układ ortonormalny w R

m

, oraz spełniający

span{~q

1

, ~q

2

, . . . , ~q

j

} = span{~a

1

, ~a

2

, . . . , ~a

j

},

1 ≤ j ≤ n.

(5.5)

Zauważmy, że jeśli z wektorów ~q

j

stworzymy macierz Q = (~q

1

, ~q

2

, . . . , ~q

n

)

R

m×n

, to (5.5) implikują istnienie kwadratowej macierzy trójkątnej górnej

R

R

n×n

takiej, że

A = Q

· R.

(W odróżnieniu od efektu działania algorytmu Hauseholdera, macierz Q nie
jest tu kwadratowa, ale za to kwadratowa jest macierz R.)

background image

5.3. ALGORYTM DLA ZADANIA WYGŁADZANIA

61

Wektory ortonormalne ~q

j

oraz współczynniki r

i,j

macierzy R można wy-

znaczyć z układu równań

~a

j

=

j

X

s=1

r

s,j

~q

s

,

1 ≤ j ≤ n.

Mnożąc j-te równanie skalarnie przez ~q

i

, 1 ≤ i ≤ j, otrzymujemy r

i,j

=

h~a

j

, ~q

i

i

2

= ~q

T

i

~a

j

, a stąd wzory rekurencyjne

for j := 1 to n do
begin

for i := 1 to j − 1 do r

i,j

:= h~q

i

, ~a

j

i

2

;

~

p

j

:= ~a

j

P

j−1
s=1

r

s,j

~q

s

;

r

j,j

:= k~p

j

k

2

;

~q

j

:= ~p

j

/r

j,j

end.

Dysponując rozkładem A = QR, rozwiązanie ~x

zadania wygładzania

wyznaczamy z równania R~x = Q

T

~b. Rzeczywiście, układ (~q

j

)

n

j=1

można for-

malnie uzupełnić do układu ortonormalnego w R

m

dodając do niego pewne

wektory ~q

j

dla n+1 ≤ j ≤ m. Tworząc macierz ortogonalną Q = (~q

1

, . . . , ~q

m

)

i rozszerzając macierz R ∈ R

n×n

do macierzy R ∈ R

m×n

przez dodanie do

niej (m−n) zerowych wierszy, otrzymujemy A = Q R, a więc rozkład taki jak

w algorytmie Hauseholdera. Postępując dalej tak, jak w analizie algorytmu
Hauseholdera, otrzymujemy żądany wynik.

U. 5.6 Okazuje się, że algorytm ortogonalizacyjny Grama-Schmidta z U.
5.5 ma niedobre własności numeryczne, gdy wektory-kolumny macierzy wyj-
ściowej A są “słabo liniowo niezależne”; tzn. otrzymane w

ν

wektory ~q

(1)

j

mogą być wtedy “słabo” ortogonalne. W takim wypadku należy stosować
podwójną ortogonalizację, najpierw do wektorów ~a

j

, a potem do ~q

(1)

j

, 1

j

≤ n. (Zob. Ćw. 5.7.)

Ćwiczenia

Ćw. 5.1 Pokazać, że dla macierzy pseudoodwrotnej A

+

do danej macierzy

A

R

m×n

, rank(A) = n, macierz A

+

A = I

n

jest identycznością w R

n×n

,

natomiast

AA

+

=

I

n

0

0

0

!

R

m×m

,

background image

62

ROZDZIAŁ 5. ZADANIE WYGŁADZANIA LINIOWEGO

czyli AA

+

jest rzutem prostopadłym na podprzestrzeń rozpiętą na pierw-

szych n wersorach w R

m

.

Ćw. 5.2 Niech A ∈ R

m×n

. Uzasadnić, że jądro macierzy A

T

,

ker(A

T

) = { ~y ∈ R

m

: A

T

~y = ~0

},

jest podprzestrzenią prostopadłą do obrazu A,

im(A) = { A~x ∈ R

m

: ~x ∈ R

n

}.

Ćw. 5.3 Pokazać, że macierze A

T

A i AA

T

mają takie same niezerowe war-

tości własne, a podprzestrzenie własne im odpowiadające mają ten sam wy-
miar.

Ćw. 5.4 Uzasadnić, że dana macierz kwadratowa Q ∈ R

m×m

jest ortogo-

nalna wtedy i tylko wtedy gdy jej kolumny (wiersze) tworzą bazę ortonor-
malną w R

m

.

Ćw. 5.5 Niech ~u będzie niezerowym wektorem w R

m

oraz γ = k~uk

2

2

/2.

Uzasadnić, że algorytm obliczania

H~x = ~x

− s~u,

s = (~u

T

~x)/γ,

według powyższego wzoru, jest numerycznie poprawny ze względu na dany
wektor ~x ∈ R

m

.

Ćw. 5.6 Policzyć złożoność algorytmu ortogonalizacyjnego opisanego w U.
5.5 rozwiązania zadania wygładzania liniowego.

Ćw. 5.7 Zastosujmy ortogonalizację Grama-Schmidta do dwóch wektorów
liniowo niezależnych ~a i ~b o normach k~ak

2

= 1 = k~bk

2

. Załóżmy dla uprosz-

czenia, że w obliczeniach jedynie iloczyn skalarny tych wektorów s = h~a,~bi

2

liczy się z błędem,

ν

(s) = s(1 + ε), gdzie |ε| jest dodatnie i na poziomie

ν. Pokazać, że wtedy dla otrzymanej w wyniku ortogonalizacji unormowanej
pary wektorów ~a i ~c mamy

h~a,~ci

2

=

−εs

p

1 − s

2

(1 − ε

2

)

.

Wywnioskować stąd, że gdy ~a i ~b są “prawie liniowo zależne”, to ~a i ~c
dalekie od ortogonalnych.

background image

5.3. ALGORYTM DLA ZADANIA WYGŁADZANIA

63

Ćw. 5.8 Zaprogramować algorytm Grama-Schmidta z U. 5.5 (z podwójną
ortogonalizacją) rozwiązujący zadanie wygładzania.

Ćw. 5.9 Zaprogramować algorytm obliczający macierz odwrotną do danej
nieosobliwej macierzy A ∈ R

n×n

wykorzystujący rozkład Hauseholdera A =

QR.

æ

background image

64

ROZDZIAŁ 5. ZADANIE WYGŁADZANIA LINIOWEGO

background image

Rozdział 6

Interpolacja wielomianowa

Dotychczas rozpatrywaliśmy zadania, w których danymi są ciągi liczb
rzeczywistych. Teraz zajmiemy się zadaniami, w których danymi są
funkcje o wartościach rzeczywistych. Pierwszym z nich jest zadanie in-
terpolacji wielomianowej.

6.1 Sformułowanie zadania interpolacji

Niech D ⊂ R i niech F będzie pewnym zbiorem funkcji f : D → R.

Niech x

0

, x

1

, . . . , x

n

będzie ustalonym zbiorem parami różnych punktów

z D, zwanych później węzłami.

Powiemy, że wielomian w interpoluje funkcję f ∈ F w węzłach x

j

,

gdy

w

(x

j

) = f(x

j

),

0 ≤ j ≤ n.

Oznaczmy przez Π

n

przestrzeń liniową wielomianów stopnia co naj-

wyżej n o współczynnikach rzeczywistych,

Π

n

= { w(x) = a

n

x

n

+ a

n−1

x

n−1

+ · · · + a

1

x

+ a

0

: a

j

R, 0 ≤ j ≤ n }.

Lemat 6.1 Dla dowolnej funkcji f : D

R istnieje dokładnie jeden

wielomian w

f

Π

n

interpolujący f w węzłach x

j

, 0

≤ j ≤ n.

Dowód Wybierzmy w Π

n

dowolną bazę wielomianów ϕ

j

, 0 ≤ j ≤ n,

Π

n

= span{ ϕ

0

, ϕ

1

, . . . , ϕ

n

}.

65

background image

66

ROZDZIAŁ 6. INTERPOLACJA WIELOMIANOWA

Wtedy każdy wielomian z Π

n

można jednoznacznie przedstawić w po-

staci rozwinięcia względem wybranej bazy. Warunkiem koniecznym i
dostatecznym na to, aby wielomian w

f

(·) =

P

n

j=0

c

j

ϕ

j

(·) interpolował

f

jest spełnienie układu n + 1 równań liniowych

n

X

j=0

c

j

ϕ

j

(x

i

) = f(x

i

),

0 ≤ i ≤ n,

z n + 1 niewiadomymi c

j

, który w postaci macierzowej wygląda nastę-

pująco:

ϕ

0

(x

0

) ϕ

1

(x

0

) · · · ϕ

n

(x

0

)

ϕ

0

(x

1

) ϕ

1

(x

1

) · · · ϕ

n

(x

1

)

...

ϕ

0

(x

n

) ϕ

1

(x

n

) · · · ϕ

n

(x

n

)

c

0

c

1

...

c

n

=

f

(x

0

)

f

(x

1

)

...

f

(x

n

)

.

(6.1)

Aby wykazać, że układ ten ma jednoznaczne rozwiązanie wystarczy, aby
wektor zerowy był jedynym rozwiązaniem układu jednorodnego. Rze-
czywiście, układ jednorodny odpowiada interpolacji danych zerowych,
f

(x

i

) = 0, ∀i. Istnienie niezerowego rozwiązania byłoby więc równo-

ważne istnieniu niezerowego wielomianu stopnia nie większego od n,
który miałby n + 1 różnych zer x

i

, co jest niemożliwe.

2

Zadanie znalezienia dla danej funkcji f jej wielomianu interpolacyj-

nego stopnia co najwyżej n jest więc dobrze zdefiniowane, tzn. rozwią-
zanie istnieje i jest wyznaczone jednoznacznie. Zauważmy, że wielomian
interpolacyjny w

f

jako taki nie może być wynikiem obliczeń w naszym

modelu obliczeniowym, możemy natomiast wyznaczyć jego współczyn-
niki c

j

w wybranej bazie.

Definicja 6.1 Niech (ϕ

j

)

n

j=0

będzie bazą w przestrzeni Π

n

wielomianów

stopnia co najwyżej n. Zadanie (obliczeniowe) interpolacji wielomino-
wej polega na obliczeniu dla danej funkcji f współczynników c

j

takich,

że wielomian

w

f

(·) =

n

X

j=0

c

j

ϕ

j

(·)

(6.2)

interpoluje f w punktach x

j

, 0

≤ j ≤ n.

background image

6.2. WYBÓR BAZY WIELOMIANOWEJ

67

6.2 Wybór bazy wielomianowej

Można powiedzieć, że trudność zadania interpolacji jest zdetermino-
wana przez trudność rozwiązania układu (6.1), ta zaś zależy w istotny
sposób od wybranej bazy (ϕ

j

)

n

j=0

. W naturalny sposób powstaje więc

problem wyboru “wygodnej” bazy w Π

n

. Rozpatrzymy trzy bazy: La-

grange’a, potęgową i Newtona.

Baza Lagrange’a (kanoniczna)

Zdefiniujmy dla 0 ≤ j ≤ n wielomiany

l

j

(x) =

(x − x

0

)(x − x

1

) · · · (x − x

j−1

)(x − x

j+1

) · · · (x − x

n

)

(x

j

− x

0

)(x

j

− x

1

) · · · (x

j

− x

j−1

)(x

j

− x

j+1

) · · · (x

j

− x

n

)

.

(6.3)

Zauważmy, że każdy z l

j

jest stopnia dokładnie n oraz

l

j

(x

i

) =

(

0

i

6= j,

1

i

= j.

Stąd łatwo widać, że wielomiany te stanowią bazę w Π

n

, którą nazy-

wamy bazą Lagrange’a. Macierz układu (6.1) jest identycznością i w
konsekwencji c

j

= f(x

j

), ∀j. Wielomian interpolacyjny dla funkcji f

można więc w tym przypadku zapisać jako

w

f

(·) =

n

X

j=0

f

(x

j

)l

j

(·).

Koszt kombinatoryczny rozwiązania zadania interpolacji jest przy tym
zerowy.

Przypuśćmy, że chcielibyśmy obliczyć wartość wielomianu interpo-

lacyjnego w

f

w punkcie x różnym od x

j

, 0 ≤ j ≤ n. Podstawiając

a

j

=

1

(x

j

− x

0

)(x

j

− x

1

) · · · (x

j

− x

j−1

)(x

j

− x

j+1

) · · · (x

j

− x

n

)

oraz a(x) = (x − x

0

) · · · (x − x

n

) mamy

w

f

(x) = a(x)

n

X

j=0

a

j

f

(x

j

)

x

− x

j

,

(6.4)

background image

68

ROZDZIAŁ 6. INTERPOLACJA WIELOMIANOWA

albo

w

f

(x) =

P

n

j=0

q

j

(x)f(x

j

)

P

n

j=0

q

j

(x)

,

gdzie q

j

(x) = a

j

/

(x − x

j

). W ostatniej równości wykorzystaliśmy fakt,

że a(x) (

P

n

j=0

q

j

(x))

1

, co wynika z (6.4) po podstawieniu f ≡ 1.

Baza potęgowa (naturalna)

Znacznie prościej można obliczyć wartość wielomianu interpolacyj-

nego, (a także jego pochodnych), gdy jest on dany w najczęściej uży-
wanej bazie potęgowej, ϕ

j

(x) = x

j

, ∀j. Jeśli bowiem

w

f

(x) = a

0

+ a

1

x

+ · · · + a

n

x

n

,

to również

w

f

(x) = (· · · (a

n

x

+ a

n−1

)x + a

n−2

)x + · · · + a

1

)x + a

0

,

co sugeruje zastosowanie następującego schematu Hornera do obliczenia
w

f

(x):

v

n

:= a

n

;

for j := n

1 downto 0 do

v

j

:= v

j+1

∗ x + a

j

,

Po wykonaniu tego algorytmu w

f

(x) = v

0

. Schemat Hornera wymaga

wykonania tylko n mnożeń i n dodawań. Ma on również głębszy sens,
zob. Ćw. 6.2.

Zauważmy jednak, że w przypadku bazy potęgowej macierz (x

j
i

)

n

i,j=0

układu (6.1) jest pełna. Jest to tzw. macierz Vandermonde’a. Obli-
czenie współczynników wielomianu interpolacyjnego w bazie potęgowej
bezpośrednio z tego układu, stosując jedną ze znanych nam już metod,
kosztowałoby rzędu n

3

operacji arytmetycznych.

Baza Newtona

Rozwiązaniem pośrednim, które łączy prostotę obliczenia współ-

czynników z prostotą obliczenia wartości w

f

(x) jest wybór bazy New-

tona,

p

0

(x) = 1,

p

j

(x) = (x − x

0

)(x − x

1

) · · · (x − x

j−1

),

1 ≤ j ≤ n.

background image

6.3. ALGORYTM RÓŻNIC DZIELONYCH

69

W tym przypadku współczynniki rozwinięcia wielomianu interpolacyj-
nego będziemy oznaczać przez b

j

,

w

f

=

n

X

j=0

b

j

p

j

.

Zwróćmy od razu uwagę na ważną własność bazy Newtona. Jeśli w

f,j

Π

j

jest wielomianem interpolacyjnym dla funkcji f opartym na węzłach

x

0

, x

1

, . . . , x

j

, 0 ≤ j ≤ n, to w

f,0

= b

0

oraz

w

f,j

= w

f,j−1

+ b

j

p

j

,

1 ≤ j ≤ n.

(6.5)

Wartość w

f

(x) można obliczyć stosując prostą modyfikację algo-

rytmu Hornera:

v

n

:= b

n

;

for j := n

1 downto 0 do

v

j

:= v

j+1

(x − x

j

) + b

j

.

Ponadto układ równań (6.1) jest trójkątny dolny (tzn. p

j

(x

i

) = 0 dla

i < j

), co pozwala na obliczenie b

j

algorytmem z Rozdziału 3.1 o koszcie

n

2

,

b

0

:= f(x

0

);

for j := 1 to n do

b

j

:=

f

(x

j

)

P

j−1
s=0

b

s

p

s

(x

j

)

/p

j

(x

j

).

Zwykle jednak do obliczania współczynników b

j

stosuje się nieco

inny algorytm, który teraz predstawimy.

6.3 Algorytm różnic dzielonych

Różnicę dzieloną funkcji f opartą na różnych węzłach t

0

, t

1

, . . . , t

s

, gdzie

s

1, definiuje się indukcyjnie jako

f

(t

0

, t

1

, . . . , t

s

) =

f

(t

1

, t

2

, . . . , t

s

) − f(t

0

, t

1

, . . . , t

s−1

)

t

s

− t

0

.

(6.6)

Zachodzi następujące ważne twierdzenie.

background image

70

ROZDZIAŁ 6. INTERPOLACJA WIELOMIANOWA

Twierdzenie 6.1 Współczynniki b

j

wielomianu interpolacyjnego New-

tona dla danej funkcji f dane są przez różnice dzielone f w węzłach
x

0

, x

1

, . . . , x

j

, tzn.

b

j

= f(x

0

, x

1

, . . . , x

j

),

0 ≤ j ≤ n.

Dowód Dla 0

≤ i ≤ j ≤ n, oznaczmy przez w

i,j

wielomian z Π

j−i

in-

terpolujący f w węzłach x

i

, x

i+1

, . . . , x

j

. Wtedy ma miejsce następująca

równość (i < j):

w

i,j

(x) =

(x − x

i

)w

i+1,j

(x) (x − x

j

)w

i,j−1

(x)

x

j

− x

i

,

∀x.

(6.7)

Aby ją pokazać wystarczy, że prawa strona tej równości, którą ozna-
czymy przez v(x), przyjmuje wartości f(x

s

) dla x = x

s

, i ≤ s ≤ j.

Rzeczywiście, jeśli i + 1 ≤ s ≤ j − 1 to

v

(x

s

) =

(x

s

− x

i

)f(x

s

) (x

s

− x

j

)f(x

s

)

x

j

− x

i

= f(x

s

).

Ponadto

v

(x

i

) =

(x

i

− x

j

)

x

j

− x

i

f

(x

i

) = f(x

i

),

oraz podobnie v(x

j

) = f(x

j

). Stąd v jest wielominem z Π

j−i

interpolu-

jącym f w węzłach x

s

, i ≤ s ≤ j, czyli w

i,j

= v.

Dalej postępujemy indukcyjnie ze względu na stopień n wielomianu

interpolacyjnego. Dla n = 0 mamy oczywiście b

0

= f(x

0

). Niech n ≥ 1.

Ponieważ, jak łatwo zauważyć,

w

0,n

(x) = w

0,n−1

(x) + b

n

p

n

(x),

z założenia indukcyjnego mamy b

j

= f(x

0

, . . . , x

j

) dla 0 ≤ j ≤ n − 1.

Aby pokazać podobną równość dla b

n

, wykorzystamy równość (6.7) z

i

= 0 i j = n, która ma wtedy postać

w

0,n

(x) =

(x − x

0

)w

1,n

(x) (x − x

n

)w

0,n−1

(x)

x

n

− x

0

.

Zauważmy teraz, że b

n

jest współczynnikiem przy x

n

w wielomianie

w

0,n

. Z założenia indukcyjnego wynika, że współczynniki przy x

n−1

w

background image

6.4. PRZYPADEK WĘZŁÓW WIELOKROTNYCH

71

wielomianach w

1,n

i w

0,n−1

są ilorazami różnicowymi opartymi odpo-

wiednio na węzłach x

1

, . . . , x

n

i x

0

, . . . , x

n−1

. Stąd

b

n

=

f

(x

1

, . . . , x

n

) − f(x

0

, . . . , x

n−1

)

x

n

− x

0

= f(x

0

, x

1

, . . . , x

n

),

co kończy dowód.

2

Różnicę dzieloną f(x

0

, x

1

, . . . , x

n

) można łatwo obliczyć na podsta-

wie wartości f(x

j

), 0 ≤ j ≤ n, budując następującą tabelkę:

x

0

f

(x

0

)

x

1

f

(x

1

) f(x

0

, x

1

)

x

2

f

(x

2

) f(x

1

, x

2

)

f

(x

0

, x

1

, x

2

)

... ...

...

...

...

x

n

f

(x

n

) f(x

n−1

, x

n

) f(x

n−2

, x

n−1

, x

n

) · · · f(x

0

, x

1

, . . . , x

n

).

Zauważmy przy tym, że “po drodze” obliczamy f(x

i

, x

i+1

, . . . , x

j

) dla

wszystkich 0 ≤ i < j ≤ n, a więc w szczególności również interesu-

jące nas różnice dzielone f(x

0

, x

1

, . . . , x

j

). Stąd i z Twierdzenia 6.1 na-

tychmiast wynika algorytm obliczania współczynników b

j

wielomianu

interpolacyjnego Newtona. Po wykonaniu następującego programu,

for j := 0 to n do b[j] := f (x[j]);
for j := 1 to n do
for
k := n downto j

do

b

[k] := (b[k] − b[k − 1])/(x[k] − x[k − j]),

współczynniki b

j

zostaną umieszczone w tablicy b[j].

6.4 Przypadek węzłów wielokrotnych

Uogólnieniem rozpatrzonego zadania interpolacji jest zadanie interpo-
lacji Hermite’a. Zakładamy, że oprócz (różnych) węzłów x

j

dane są

również ich krotności n

j

, 0 ≤ j ≤ k, przy czym

P

k

j=0

n

j

= n + 1. Należy

skonstruować wielomian w

f

Π

n

taki, że

w

(i)

f

(x

j

) = f

(i)

(x

j

)

dla

0 ≤ i ≤ n

j

1, 0 ≤ j ≤ k.

Oczywiście zakładamy przy tym, że odpowiednie pochodne funkcji f
istnieją.

background image

72

ROZDZIAŁ 6. INTERPOLACJA WIELOMIANOWA

Lemat 6.2 Zadanie interpolacji Hermite’a ma jednoznaczne rozwiąza-
nie.

Dowód Istnienie i jednoznaczność rozwiązania można uzasadnić tak
samo jak w przypadku węzłów jednokrotnych. Przedstawiając wielo-
mian w dowolnej bazie otrzymujemy układ n + 1 równań z n + 1 nie-
wiadomymi, który dla zerowej prawej strony ma jedynie rozwiązanie
zerowe. Inaczej bowiem istniałby wielomian niezerowy stopnia nie więk-
szego niż n, który miałby zera o łącznej krotności większej niż n.

2

Nas oczywiście interesuje konstrukcja wielomianu w

f

. W tym celu

ustawimy węzły x

j

w ciąg

x

0

,

¯x

1

, . . . ,

¯x

n

) = (x

0

, . . . , x

0

|

{z

}

n

0

, x

1

, . . . , x

1

|

{z

}

n

1

, . . . , x

k

, . . . , x

k

|

{z

}

n

k

)

i zdefiniujemy uogólnioną bazę Newtona w Π

n

jako

p

0

(x) = 1,

p

j

(x) = (x − ¯x

0

)(x − ¯x

1

) · · · (x − ¯x

j−1

),

1 ≤ j ≤ n.

Uogólnimy również pojęcie różnicy dzielonej na węzły powtarzające

się kładąc

f

x

i

,

¯x

i+1

, . . . ,

¯x

j

) =

f

(j−i)

x

i

)

(j − i)!

dla ¯x

i

= ¯x

i+1

= · · · = ¯x

j

, oraz

f

x

i

,

¯x

i+1

, . . . ,

¯x

j

) =

f

x

i+1

, . . . ,

¯x

j

) − fx

i

, . . . , x

j−1

)

¯x

j

¯x

i

dla ¯x

i

6= ¯x

j

. Zauważmy, że przy tej definicji różnice fx

i

, . . . ,

¯x

j

) mo-

żemy łatwo obliczyć stosując schemat podobny do tego z przypadku
węzłów jednokrotnych.

Twierdzenie 6.2 Współczynniki b

j

wielomianu interpolacyjnego Her-

mite’a w bazie Newtona,

w

f

(·) =

n

X

j=0

b

j

p

j

(·),

dane są przez odpowiednie różnice dzielone, tzn.

b

j

= fx

0

,

¯x

1

, . . . ,

¯x

j

),

0 ≤ j ≤ n.

background image

6.4. PRZYPADEK WĘZŁÓW WIELOKROTNYCH

73

Dowód Dowód przeprowadzimy podobnie jak dla węzłów jednokrot-
nych. Niech w

i,j

Π

j−i

oznacza wielomian interpolacyjny Hermite’a

oparty na (być może powtarzających się) węzłach ¯x

i

,

¯x

i+1

, . . . ,

¯x

j

. To

znaczy, w

i,j

interpoluje f w węzłach x

s

takich, że x

s

występuje w ciągu

¯x

i

, . . .

¯x

j

, a jego krotność jest liczbą powtórzeń x

s

w tym ciągu.

Zauważmy najpierw, że dla ¯x

i

6= ¯x

j

zachodzi znany nam już wzór

(6.7),

w

i,j

(x) =

(x − ¯x

i

)w

i+1,j

(x) (x − ¯x

j

)w

i,j−1

(x)

¯x

j

¯x

i

.

(6.8)

Rzeczywiście, oznaczmy przez v(x) prawą stronę powyższej równości.
Dla k mniejszego od krotności danego węzła x

s

w ciągu ¯x

i

, . . .

¯x

j

, mamy

w

(k−1)

i+1,j

(x

s

) = w

(k−1)

i,j−1

(x

s

), a ponieważ

v

(k)

(x) =

k

(w

(k−1)

i+1,j

(x) − w

(k−1)

i,j−1

(x))

¯x

j

¯x

i

+

(x − ¯x

i

)w

(k)

i+1,j

(x) (x − ¯x

j

)w

(k)

i,j−1

(x)

¯x

j

¯x

i

,

to

v

(k)

(x

s

) =

(x

s

¯x

i

)w

(k)

i+1,j

(x

s

) (x

s

¯x

j

)w

(k)

i,j−1

(x

s

)

¯x

j

¯x

i

.

Korzystając z tego wzoru sprawdzamy, że v spełnia odpowiednie wa-
runki interpolacyjne, a stąd w

i,j

= v.

Dalej postępujemy indukcyjnie ze względu na n. Dla n = 0 mamy

b

0

= f(x

0

). Dla n ≥ 1 wystarczy pokazać, że b

n

= fx

0

,

¯x

1

, . . . ,

¯x

n

). W

tym celu rozpatrzymy dwa przypadki.

Jeśli ¯x

0

= ¯x

n

to mamy jeden węzeł x

0

o krotności n + 1. Wielomian

interpolacyjny jest wtedy postaci

w

f

(x) =

n

X

j=0

f

(j)

(x

0

)

j

!

(x − x

0

)

j

,

a stąd b

n

= f

(n)

(x

0

)/(n!) = f(x

0

, . . . , x

0

|

{z

}

n+1

). Jeśli zaś ¯x

0

6= ¯x

j

to równość

b

n

= fx

0

,

¯x

1

, . . . ,

¯x

n

) wynika z (6.8) po podstawieniu i = 0 i j = n,

oraz z założenia indukcyjnego.

2

background image

74

ROZDZIAŁ 6. INTERPOLACJA WIELOMIANOWA

Uwagi i uzupełnienia

U. 6.1 Algorytm Hornera okazuje się optymalny. Każdy inny algorytm ob-
liczający dokładną wartość wielomianu znając jego współczynniki wymaga
wykonania co najmniej n mnożeń i n dodawań. Algorytm Hornera jest też
numerycznie poprawny, zob. Ćw. 6.1.

U. 6.2 Mając obliczone współczynniki b

j

wielomianu interpolacyjnego w

postaci Newtona, można łatwo przejść do jego współczynników a

j

w bazie

potęgowej. Algorytm wynika bowiem z następującego wzoru rekurencyjnego.

Dla i = n, n − 1, . . . , 0, niech a

(i)
j

, i ≤ j ≤ n, będą odpowiednimi współ-

czynnikami w rozwinięciu

b

i

+b

i+1

(x−x

i

)+· · ·+b

n

(x−x

i

) · · · (x−x

n−1

) = a

(i)
i

+a

(i)
i+1

x+

· · ·+a

(i)

n

x

n−i

.

Wtedy a

(i)

n

= b

n

oraz

a

(i)
j

= a

(i+1)
j

− x

i

∗ a

(i+1)
j+1

,

i

≤ j ≤ n − 1.

Uwzględniając fakt, że poszukiwanymi współczynnikami są a

j

= a

(0)
j

, 0

j

≤ n, algorytm może być zrealizowany następująco:

for j := 0 to n do a[j] := b[j];
for i := n − 1 downto 0 do

for j := i to n − 1 do

a[j] := a[j]

− x[i] ∗ a[j + 1].

U. 6.3 Okazuje się, że przy realizacji w

ν

algorytmu różnic dzielonych

istotną rolę odgrywa porządek węzłów. Można pokazać, że algorytm liczenia
f (t

0

, . . . , t

n

) jest numerycznie poprawny ze względu na dane interpolacyjne

f

(i)

(t

j

), o ile węzły są uporządkowane nierosnąco lub niemalejąco, zob. Ćw.

6.5.

U. 6.4 Zauważmy, ze pojęcie różnicy dzielonej formalnie zdefiniowaliśmy je-
dynie dla ciągu węzłów postaci x

0

, . . . , x

0

, x

1

, . . . , x

1

, . . . , x

k

, . . . , x

k

, gdzie x

j

są parami różne. Tą definicję można rozszerzyć do dowolnego ciągu węzłów.
Można bowiem powiedzieć, że f(t

0

, t

1

, . . . , t

n

) jest współczynnikiem przy x

n

wielomianu w

t

0

,...,t

n

Π

n

interpolującego f w węzłach t

j

(uwzględniając

krotności). Równoważnie,

f (t

0

, t

1

, . . . , t

n

) =

w

(n)

t

0

,...,t

n

n!

.

background image

6.4. PRZYPADEK WĘZŁÓW WIELOKROTNYCH

75

Ćwiczenia

Ćw. 6.1 Pokazać numeryczną poprawność algorytmu Hornera obliczania
wartości wielomianu ze względu na dane współczynniki a

j

tego wielomianu.

Ćw. 6.2 Pokazać, że algorytm Hornera obliczania wartości w(ξ) wielomianu
danego w postaci potęgowej jest jednocześnie algorytmem dzielenia tego wie-
lomianu przez jednomian (x − ξ). Dokładniej, jeśli w(x) =

P

n

j=0

a

j

x

j

to

w(x) =

n

X

j=1

v

j

x

j−1

(x − ξ) + v

0

,

gdzie v

j

są zdefiniowane tak jak w algorytmie Hornera.

Ćw. 6.3 Zaproponować możliwie tani algorytm obliczający współczynniki
wielomianu w bazie Newtona, dysponując współczynnikami tego wielomianu
w bazie potęgowej.

Ćw. 6.4 Pokazać, że dla różnych węzłów t

0

, . . . , t

n

mamy

f (t

0

, t

1

, . . . , t

n

) =

n

X

j=0

f (t

j

)

(t

j

− t

0

) · · · (t

j

− t

j−1

)(t

j

− t

j+1

) · · · (t

j

− t

n

)

.

Ćw. 6.5 Niech t

0

< t

1

< . . . < t

n

. Pokazać, że realizując w

ν

algo-

rytm różnic dzielonych, zamiast dokładnej wartości f(t

0

, t

1

, . . . , t

n

) otrzymu-

jemy

ν

f (t

0

, t

1

, . . . , t

n

)

, która jest dokładną różnicą dzieloną dla danych

f (t

j

)(1 + ε

j

), gdzie

j

| ≤ Kν, 0 ≤ j ≤ n.

Wskazówka Rozpatrzyć najpierw proste przypadki n = 1, 2. Dla dowolnego
n skorzystać z Ćw. 6.4.

Ćw. 6.6 Uzasadnić, że iloraz różnicowy jest funkcją symetryczną, tzn. dla
dowolnej permutacji t

i

0

, . . . , t

i

s

węzłów t

0

, . . . , t

s

mamy

f (t

i

0

, . . . , t

i

s

) = f(t

0

, . . . , t

s

).

Ćw. 6.7 Niech w będzie wielomianem stopnia dokładnie n. Pokazać, że dla
ustalonych t

1

, t

2

, . . . , t

s

funkcja

w

t

1

,...,t

s

(t) = w(t, t

1

, t

2

, . . . , t

s

),

t

R,

jest wielomianem stopnia dokładnie n − s dla s ≤ n, oraz jest zerem dla
s

≥ n + 1.

background image

76

ROZDZIAŁ 6. INTERPOLACJA WIELOMIANOWA

Ćw. 6.8 Pokazać, że jeśli funkcja f : D → R jest n-krotnie różniczkowalna

na D w sposób ciągły, f ∈ C

(n)

(D), to

f (t

0

, t

1

, . . . , t

n−1

, t

0

) = lim

t

n

→t

0

f (t

0

, t

1

, . . . , t

n−1

, t

n

).

Ćw. 6.9 Stosując algorytm różnic dzielonym znależć wielomian w postaci
Hermite’a interpolujący funkcję f(x) = x

4

w trzech dwukrotnych węzłach

równych 0, 1 i 2.

æ

background image

Rozdział 7

Interpolacja a aproksymacja
funkcji

Gdy mamy do czynienia z funkcją, która jest “skomplikowana” to często
dobrze jest zastąpić ją funkcją “prostszą”. Mówimy wtedy o aproksyma-
cji (przybliżaniu) funkcji
. Funkcję musimy również aproksymać wtedy,
gdy nie jesteśmy w stanie uzyskać pełnej o niej informacji. Na przykład,
gdy funkcja reprezentuje pewien proces fizyczny to często zdarza się,
że dysponujemy jedynie ciągiem próbek, czyli wartościami tej funkcji
w pewnych punktach. Jasne jest, że chcielibyśmy przy tym, aby błąd
aproksymacji był możliwie mały.

Z tego punktu widzenia, intepolacja wielomianowa może być trak-

towana jako jeden ze sposobów aproksymacji funkcji, opartym na prób-
kowaniu. Naturalnym staje się więc pytanie o błąd takiej aproksymacji.

7.1 Błąd interpolacji wielomianowej

Niech x

0

, x

1

, . . . , x

n

będą (niekoniecznie różnymi) węzłami należącymi

do pewnego (być może nieskończonego) przedziału D ⊂ R. Dla da-

nej funkcji f : D → R, przez w

f

oznaczymy, tak jak w poprzednim

rozdziale, wielomian interpolacyjny stopnia co najwyżej n interpolu-
jący f w zadanych węzłach. W przypadku węzłów wielokrotnych jest
to oczywiście wielomian interpolacyjny Hermite’a.

77

background image

78ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI

Lemat 7.1 Dla dowolnego punktu ¯

x

∈ D błąd interpolacji w ¯x wyraża

się wzorem

f

x) − w

f

x) = (¯x − x

0

)(¯x − x

1

) · · · x − x

n

)f(x

0

, x

1

, . . . , x

n

,

¯x). (7.1)

Jeśli ponadto f

C

(n+1)

(D), czyli pochodna f

(n+1)

w D istnieje i jest

ciągła, to

f

x) − w

f

x) = (¯x − x

0

)(¯x − x

1

) · · · x − x

n

)

f

(n+1)

(ξ)

(n + 1)!

,

gdzie ξ = ξ

x

) jest pewnym punktem należącym do najmniejszego prze-

działu zawierającego punkty x

0

, x

1

, . . . , x

n

,

¯x.

Dowód Możemy założyć, że ¯

x

nie jest żadnym z węzłów x

j

, 0 ≤ j ≤

n

. Niech ¯

w

f

Π

n+1

będzie wielomianem interpolacyjnym funkcji f

opartym na węzłach x

0

, . . . , x

n

i dodatkowo na węźle ¯x. Mamy wtedy

¯

w

f

(x) = w

f

(x) + (x − x

0

)(x − x

1

) · · · (x − x

n

)f(x

0

, x

1

, . . . , x

n

,

¯x),

a ponieważ z warunku interpolacyjnego fx) = ¯

w

f

x), to mamy też

(7.1).

Aby pokazać drugą część lematu, rozpatrzmy funkcję ψ : D → R,

ψ

(x) = f(x) ¯

w

f

(x)

= f(x) − w

f

(x) (x − x

0

)(x − x

1

) · · · (x − x

n

)f(x

0

, . . . , x

n

,

¯x).

Z warunków interpolacyjnych na ¯

w

f

Π

n+1

wynika, że funkcja ψ ma

punkty zerowe o łącznej krotności co najmniej n + 2. Wykorzystując
twierdzenie Rolle’a wnioskujemy stąd, że ψ

ma zera o łącznej krotności

co najmniej n + 1, ψ

′′

ma zera o łącznej krotności co najmniej n, itd. W

końcu funkcja ψ

(n+1)

zeruje się w co najmniej jednym punkcie ξ = ξx)

należącym do najmniejszego przedziału zawierającego x

0

, x

1

, . . . , x

n

,

¯x.

Wobec tego, że w

(n+1)

f

0, a (n + 1)-sza pochodna wielomianu (x −

x

0

) · · · (x − x

n

) wynosi (n + 1)!, mamy

0 = ψ

(n+1)

(ξ) = f

(n+1)

(ξ) (n + 1)!f(x

0

, . . . , x

n

,

¯x).

Stąd

f

(x

0

, x

1

, . . . , x

n

,

¯x) =

f

(n+1)

(ξ)

(n + 1)!

,

background image

7.1. BŁĄD INTERPOLACJI WIELOMIANOWEJ

79

co kończy dowód.

2

Zwykle interesuje nas nie tyle błąd w ustalonym punkcie ¯x ∈ D, ale

na całym przedziale D. Zakładając teraz, że przedział D jest domknięty,
czyli

D

= [a, b]

dla pewnych −∞ < a < b < +, błąd ten będziemy mierzyć w normie
jednostajnej (Czebyszewa). Dla funkcji ciągłej g : [a, b]

R, norma ta

jest zdefiniowana jako

kgk

C

([a,b])

= max

x∈D

|g(x)|.

Niech F

r

M

([a, b]), gdzie r ≥ 0, będzie klasą funkcji

F

r

M

([a, b]) = { f ∈ C

(r+1)

([a, b]) : kf

(r+1)

k

C

([a,b])

≤ M },

gdzie 0 < M < ∞. Mamy następujące twiedzenie.

Twierdzenie 7.1 Załóżmy, że każdą funkcję f

∈ F

r

M

([a, b]) aproksy-

mujemy jej wielomianem interpolacyjnym w

f

Π

r

opartym na r + 1

węzłach x

0

, . . . , x

r

[a, b]. Wtedy maksymalny błąd takiej aproksymacji

wynosi

e

(F

r

M

([a, b]); x

0

, x

1

, . . . , x

r

) =

max

f ∈F

r

M

([a,b])

kf − w

f

k

C

([a,b])

=

M

(r + 1)! ·

max

a≤x≤b

|(x − x

0

) · · · (x − x

r

)|.

Dowód Oszacowanie górne wynika bezpośrednio z Lematu 7.1, bo-
wiem dla f ∈ F

r

M

([a, b]) mamy

kf − w

f

k

C

([a,b])

= max

a≤x≤b

|f(x) − w

f

(x)|

= max

a≤x≤b

|(x − x

0

) · · · (x − x

r

)|

|f

(r+1)

(ξ(x))|

(r + 1)!

M

(r + 1)!

max

x∈D

|(x − x

0

) · · · (x − x

r

)|.

background image

80ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI

Z drugiej strony zauważmy, że dla wielomianu v(x) = Mx

r+1

/

(r+1)!

mamy v ∈ F

r

M

([a, b]) oraz

kv − w

v

k

C

([a,b])

=

M

(r + 1)! ·

max

a≤x≤b

|(x − x

0

) · · · (x − x

r

)|,

co kończy dowód.

2

Zauważmy, że błąd aproksymacji e(F

r

M

([a, b]); x

0

, . . . , x

r

) w istotny

sposób zależy od wyboru węzłów x

j

. Naturalne jest więc teraz następu-

jące pytanie. W których punktach x

j

przedziału [a, b] należy obliczać

wartości funkcji, aby błąd był minimalny? Problem ten sprowadza się
oczywiście do minimalizacji wielkości max

a≤x≤b

|(x − x

0

) · · · (x − x

r

)|

względem węzłów x

j

.

Twierdzenie 7.2 Błąd aproksymacji F

r

M

([a, b])(x

0

,

· · · , x

r

) jest mini-

malny gdy węzły

x

j

=

b

− a

2 ·

cos

2j + 1
2r + 2

π

+

a

+ b

2

,

0 ≤ j ≤ r.

Ponadto, dla węzłów optymalnych x

j

mamy

e

(F

r

M

([a, b]); x

0

, . . . , x

r

) =

2M

(r + 1)!

b

− a

4

!

r+1

.

Dowód tego twierdzenia opiera się na własnościach pewnego waż-

nego ciągu wielomianów, który teraz przedstawimy.

7.2 Wielomiany Czebyszewa

Ciąg {T

k

}

k≥0

wielomianów Czebyszewa (pierwszego rodzaju) zdefinio-

wany jest indukcyjnie jako

T

0

(x) = 1,

T

1

(x) = x,

T

k+1

(x) = 2xT

k

(x) − T

k−1

(x),

dla

k

1.

background image

7.2. WIELOMIANY CZEBYSZEWA

81

Zauważmy, że T

k

jest wielomianem stopnia dokładnie k o współ-

czynniku przy x

k

równym 2

k−1

(k ≥ 1). Ponadto wielomian T

k

można

dla |x| ≤ 1 przedstawić w postaci

T

k

(x) = cos(k arccos x).

(7.2)

Rzeczywiście, łatwo sprawdzić, że jest to prawdą dla k = 0, 1. Stosując
podstawienie cos t = x, 0 ≤ t ≤ π, oraz wzór na sumę cosinusów

otrzymujemy dla k ≥ 1

cos((k + 1)t) = 2 · cos t cos(kt) cos((k − 1)t),

co jest równoważne formule rekurencyjnej dla T

k+1

.

Ze wzoru (7.2) wynikają również inne ważne własności wielomianów

Czebyszewa. Norma wielomianu Czebyszewa na [1, 1] wynosi

kT

k

k

C

([1,1])

= max

1≤x≤1

|T

k

(x)| = 1

i jest osiągana w k + 1 punktach tego przedziału równych

y

j

= cos

j

k

π

,

0 ≤ j ≤ k,

(7.3)

przy czym T

k

(y

j

) = (1)

j

.

W końcu, k-ty wielomian Czebyszewa T

k

ma dokładnie k pojedyn-

czych zer w [1, 1] równych

z

j

= cos

2j + 1

2r

π

,

0 ≤ j ≤ k − 1.

Konsekwencją wymienionych własności jest następujący lemat, któ-

ry jest kluczem do dowodu Twierdzenia 7.2.

Przez Π

k

oznaczymy klasę wielomianów stopnia k o współczynniku

wiodącym równym 1, tzn.

Π

k

= { w ∈ Π

k

: w(x) = x

k

+ · · · }.

Lemat 7.2 Niech k

1. W klasie Π

k

minimalną normę jednostajną

na przedziale [

1, 1] ma wielomian w

= 2

1−k

T

k

, tzn.

min

w∈Π

k

kwk

C

([1,1])

= kw

k

C

([1,1])

=

1

2

k−1

.

background image

82ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI

Dowód Zauważmy najpierw, że w

Π

k

oraz kw

k

C

([1,1])

= 2

1−k

.

Wystarczy więc pokazać, że norma każdego wielomianu z Π

k

jest nie

mniejsza niż 2

1−k

.

Załóżmy, że jest przeciwnie, tzn. istnieje wielomian w ∈ Π

k

taki, że

kwk

C

([1,1])

<

1

2

k−1

= kw

k

C

([1,1])

.

Rozpatrzmy funkcję ψ = w

− w. Ponieważ dla punktów “maksy-

malnych” zdefiniowanych w (7.3) mamy w

(y

k−j

) = (1)

j

2

1−k

oraz

|w(y

k−j

)| < 2

1−k

, to

ψ

(y

k−j

)

(

>

0

j

-parzyste,

<

0

j

-nieparzyste.

0 ≤ j ≤ k. Stąd ψ ma co najmniej jedno zero w każdym z przedziałów

(y

i

, y

i+1

) dla 0 ≤ i ≤ k − 1, czyli w sumie k zer. Z drugiej strony, ψ jest

wielomianem stopnia co najwyżej k − 1 (bo współczynniki przy x

k

w

wielomianach w

i w redukują się), a więc ψ = 0 i w

= w.

2

Dowód Twierdzenia 7.2 wynika teraz bezpośrednio z Lematu 7.2. Za-
uważmy bowiem, że wielomian (x − x

0

)(x − x

1

) · · · (x − x

r

) jest w klasie

Π

r+1

. Stąd dla [a, b] = [1, 1] optymalnymi węzłami są zera z

j

wielo-

mianu Czebyszewa, przy których

(x − z

0

)(x − z

1

) · · · (x − z

r

) =

T

r+1

(x)

2

r

.

Jeśli przedział [a, b] jest inny niż [1, 1], należy dokonać liniowej za-

miany zmiennych tak, aby przeszedł on na [1, 1]. Bezpośrednie spraw-

dzenie pokazuje, że w klasie Π

r+1

minimalną normę Czebyszewa na

przedziale [a, b] ma wielomian

w

a,b

(x) =

b

− a

2

r+1

w

2x − (a + b)

b

− a

!

.

Stąd

kw

a,b

k

C

([a,b])

=

b

− a

2

r+1

1

2

r

= 2

b

− a

4

r+1

i węzły x

j

są optymalne.

2

background image

7.3. INTERPOLACJA KAWAŁKAMI WIELOMIANOWA

83

7.3 Interpolacja kawałkami wielomiano-

wa

W praktyce interesuje nas konstrukcja nie jednej, a raczej ciągu aprok-
symacji, które przybliżałyby daną funkcję f z coraz większą dokładno-
ścią. Cel ten można spróbować osiągnąc przez wzięcie jako n-tej aprok-
symacji wielomianu interpolacyjnego w

f,n

Π

n

opartego na pewnych

węzłach x

j

, 0 ≤ j ≤ n. Rzeczywiście, jeśli f jest na [a, b] nieskończenie

wiele razy różniczkowalna to n-ty błąd dla dowolnego układu węzłów
jest ograniczony przez

kf − w

f,n

k

C

([a,b])

kf

(n+1)

k

C

([a,b])

(n + 1)!

(b − a)

n+1

,

(7.4)

a więc szybko dąży zera wraz z n → ∞, gdy np. wszystkie pochodne

funkcji f są wspólnie ograniczone przez pewną stałą. Tak jest np. dla
f

(x) = e

x

. Jeszcze lepsze oszacowanie dostaniemy, gdy wybierzemy

węzły Czebyszewa.

Podejście to ma jednak pewne wady. Zwiększając stopień wielo-

mianu interpolacyjnego sprawiamy, że aproksymacja, a także obliczenie
współczynników wielomianu interpolacyjnego, stają się coraz bardziej
skomplikowane, a tego chcielibyśmy uniknąć. Poza tym, założenie o
istnieniu i wspólnej ograniczoności wszystkich pochodnych funkcji nie
zawsze jest spełnione (np. w rozpatrywanej już klasie F

r

M

([a, b])), co po-

woduje, że oszacowanie (7.4) nie zawsze jest prawdziwe, a nawet błąd
kf − w

f,n

k

C

([a,b])

może nie maleć do zera, zob. U. 7.1.

Podamy teraz inny sposób konstrukcji ciągu aproksymacji, który

zapewnia zbieżność w klasie F

r

M

([a, b]), ale nie wymaga nadmiernego

zwiększania stopnia wielomianu interpolacyjnego.

Postąpimy zgodnie ze znaną zasadą “dziel i rządź”. Podzielimy

przedział [a, b] na k równych podprzedziałów [t

i−1

, t

i

], 1 ≤ i ≤ k, i

zastosujemy na każdym z nich interpolację wielomianową stopnia r.
Dokładniej, dla każdego i wybieramy (być może wielokrotne) węzły
x

i,j

[t

i−1

.t

i

], 0 ≤ j ≤ r, po czym aproksymujemy f na [t

i−1

, t

i

] jej

wielomianem interpolacyjnym opartym na tych węzłach. Tak skonstru-
owaną kawałkami wielomianową aproksymację funkcji f : [a, b] R

background image

84ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI

oznaczymy przez ¯

w

f

. Zauważmy, że ¯

w

f

wykorzystuje na całym [a, b]

węzły o łącznej krotności n spełniającej nierówność

n

≤ k(r + 1).

(7.5)

Twierdzenie 7.3 Błąd aproksymacji kawałkami wielomianowej w kla-
sie funkcji F

r

M

([a, b]) jest ograniczony przez

max

f ∈F

r

M

([a,b])

kf − ¯

w

f

k

C

([a,b])

M

(r + 1)!

b

− a

k

r+1

≤ C ·

1

n

r+1

,

gdzie

C

=

M

(b − a)

r+1

(r + 1)

r+1

(r + 1)!

.

Jeśli ponadto węzły x

i,j

, 0

≤ j ≤ r, są na każdym przedziale [t

i−1

, t

i

]

węzłami Czebyszewa, to dla odpowiedniej aproksymacji ¯

w

f

mamy

max

f ∈F

r

M

([a,b])

kf − ¯

w

f

k

C

([a,b])

=

2M

(r + 1)!

b

− a

4k

r+1

= C

·

1

n

r+1

,

gdzie

C

=

1
2

2r+1

C

=

2M(b − a)

r+1

(r + 1)

r+1

4

r+1

(r + 1)!

.

Dowód Niech f

∈ F

r

M

([a, b]) i x ∈ [t

i−1

, t

i

]. Z Lematu 7.1 wynika, że

|f(x) ¯

w

f

(x)| =

|f

(r+1)

(ξ(x))|

(r + 1)!

|(x − x

i,0

)(x − x

i,1

) · · · (x − x

i,r

)|,

a ponieważ |x − x

i,j

| ≤ t

i

− t

i−1

= (b − a)/k, to

|f(x) ¯

w

f

(x)| ≤

M

(r + 1)!

b

− a

k

r+1

.

Ta nierówność wraz z (7.5) dowodzi pierwszą część twierdzenia.

Dla dowodu drugiej części wystarczy wykorzystać Twierdzenie 7.2,

aby zauważyć, że

kf − ¯

w

f

k

C

([a,b])

= max

a≤x≤b

|f(x) ¯

w

f

(x)| ≤

2M

(r + 1)!

b

− a

4k

r+1

background image

7.3. INTERPOLACJA KAWAŁKAMI WIELOMIANOWA

85

oraz, że dla f(x) = Mx

r+1

/

(r + 1)! mamy powyżej równość.

2

Otrzymaliśmy, że interplacja kawałkami wielomianami stopnia r ko-

rzystająca z n wartości funkcji daje w klasie funkcji F

r

M

([a, b]) błąd

rzędu n

(r+1)

. Błąd ten zbiega więc do zera, gdy liczba n wartości funk-

cji rośnie do nieskończoności, przy czym charakter zbieżności (tzn. przy
zaniedbaniu stałej przy n

(r+1)

) nie zależy ani od długości przedziału

[a, b], ani od doboru “wewnętrznyh” węzłów x

i,j

, 0 ≤ j ≤ r.

Można pokazać, że powyższa aproksymacja jest w klasie F

r

M

([a, b])

optymalna, tzn. błąd dowolnej innej metody aproksymacji korzystającej
z wartości funkcji w n punktach dąży do zera nie szybciej niż n

(r+1)

;

zob. U.7.2.

Uwagi i uzupełnienia

U. 7.1 Niech f(x) = (1 + x

2

)

1

. Okazuje się, że jeśli w

f,n

jest wielomia-

nem interpolacyjnym dla f opartym na węzłach równoodległych przedziału
[5, 5], tzn. x

j

= 5 + 10j/n, 0 ≤ j ≤ n, to ciąg w

f,n

(x) jest zbieżny do

f (x) dla

|x| < 3.63... i rozbieżny dla |x| > 3.63.... To znaczy, błąd interpo-

lacji funkcji f na całym przedziale [5, 5] nie maleje do zera, gdy stopień

wielomianu interpolacyjnego rośnie do .

U. 7.2 Pokażemy teraz, że aproksymacja funkcjami kawałkami wielomia-
nowymi jest optymalna w F

r

M

([a, b]) ze względu na rząd zbieżności błędu.

Dokładniej pokażemy, że dla dowolnej aproksymacji A(f) funkcji f wykorzy-
stującej wartości f lub jej pochodnych w co najwyżej n różnych punktach,
tzn. dla A postaci

A(f ) = φ(f (x

1

), . . . , f

(r+1)

(x

1

), . . . , f(x

n

), . . . , f

(r+1)

(x

n

))

mamy

sup

f ∈F

r

M

([a,b])

kf − A(f)k

C

([a,b])

≥ C

1

M n

(r+1)

,

(7.6)

gdzie C

1

> 0 jest pewną stałą niezależną od A, M i n.

W tym celu wybierzmy dowolną niezerową funkcję ψ : R R spełnia-

jącą warunki:

1. ψ ∈ F

r

1

(R),

background image

86ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI

2. ψ(x) = 0 dla x 6∈ [0, 1].

Niech s będzie takim indeksem, że h

s

= x

s+1

− x

s

(b − a)/(n + 1). Wtedy

dla funkcji ψ

i

, i = 1, 2, zdefiniowanych jako

ψ

1

(x) = −ψ

2

(x) = Mh

r+1

s

ψ

x

− x

s

h

s

mamy ψ

i

∈ F

r

M

([a, b]) oraz informacja o ψ

i

jest zerowa, ψ

(p)

i

(x

j

) = 0 dla

0 ≤ p ≤ r + 1, 1 ≤ j ≤ n. Stąd φ

0

= φ(0, . . . , 0

|

{z

}

n(r+2)

) jest aproksymacją dla obu

funkcji ψ

i

i z nierówności trójkąta dla norm dostajemy

max{kψ

1

− φ

0

k

C

([a,b])

,

2

− φ

0

k

C

([a,b])

}

≥ kψ

1

− ψ

2

k

C

([a,b])

/2 =

1

k

C

([a,b])

= Mh

r+1

s

kψk

C

([0,1])

≥ M

b

− a

n + 1

r+1

kψk

C

([0.1])

.

Nierówność (7.6) zachodzi więc z C

1

= (2(b − a))

r+1

kψk

C

([0.1])

. (Zob. też

Ćw. 8.3.)

U. 7.3 Załóżmy, że funkcje z klasy F

r

M

([a, b]) chcemy aproksymować z do-

kładnością ε > 0 w normie Czebyszewa używając możliwie mało obliczeń
wartości funkcji. Z Twierdzenia 7.3 i U. 7.2 wynika, że musimy wtedy obli-
czać co najmniej rzędu (1)

r+1

wartości funkcji. Co więcej, aproksymacja

kawałkami wielomianowa daje błąd ε obliczając właśnie tyle wartości funkcji.
Mówimy, że złożoność informacyjna zadania jest rzędu (1)

r+1

.

Ćwiczenia

Ćw. 7.1 Niech dane będą ε > 0 i funkcja f : [a, b] R, która jest nieskoń-

czenie wiele razy różniczkowalna i wszystkie jej pochodne są na [a, b] ograni-
czone przez M. Napisać program znajdujący stopień n oraz współczynniki
w bazie Newtona wielomianu w

f,n

Π

n

interpolacyjnego f z błędem

kf − w

f,n

k

C

([a,b])

≤ ε.

Rozpatrzyć dwa przypadki: gdy węzły interpolacji są równoodległe, oraz gdy
węzły są czebyszewowskie.

background image

7.3. INTERPOLACJA KAWAŁKAMI WIELOMIANOWA

87

Ćw. 7.2 Pokazać, że dla k ≥ 1 mamy

T

k

(x) =

(x +

x

2

1)

k

+ (x −

x

2

1)

k

2

,

gdzie T

k

jest k-tym wielomianem Czebyszewa.

Ćw. 7.3 Pokazać, że wielomiany Czebyszewa tworzą układ ortogonalny w
przestrzeni L

2

ρ

(1, 1), gdzie waga ρ(x) = (1 − x

2

)

1/2

, tzn. iloczyn skalarny

hT

i

, T

j

i =

Z

1

1

T

i

(x)T

j

(x)

1 − x

2

dx =


π

i = j = 0,

π/2

i = j

6= 0,

0

i

6= j.

Ćw. 7.4 Wielomiany Czebyszewa T

k

, 0 ≤ k ≤ n, tworzą bazę w przestrzeni

Π

n

. Podać algorytm obliczający współczynniki danego wielomianu w bazie

Czebyszewa na podstawie jesgo współczynników w bazie potęgowej, albo w
bazie Newtona.

Ćw. 7.5 Podać algorytm typu algorytmu Hornera oblicząjący wartość wie-
lomianu w(x) danego przez jego współczynniki w bazie Czebyszewa {T

k

}

k≥0

.

Ćw. 7.6 Niech w będzie wielomianem, którego rozwinięciem w bazie Cze-
byszewa jest w(x) =

P

n

k=0

a

k

T

k

(x). Pokazać, że wielomian

w

1

(x) =

n−1

X

k=0

a

k

T

k

(x)

najlepiej przybliża w w normie Czebyszewa na przedziale [1, 1] spośród

wszystkich wielomianów stopnia co najwyżej n − 1, oraz

kw − w

1

k

C

([1,1])

= |a

n

|.

Czy w

2

(x) =

P

n−2

k=0

a

k

T

k

(x) najlepiej przybliża w w tej samej normie w

klasie Π

n−2

?

Ćw. 7.7 Załóżmy, że wielomian w(x) =

P

n

k=0

a

k

T

k

(x) aproksymujemy wie-

lomianem w

i

(x) =

P

n−i

k=0

a

k

T

k

(x). Uzasadnić, że

kw − w

i

k

C

([1,1])

n

X

k=n−i+1

|a

k

|.

Kiedy w tej nierówności mamy równość?

background image

88ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI

Ćw. 7.8 Niech dany będzie przedział skończony [a, b] nie zawierający zera,
oraz liczba c. Niech

˜

Π

k

= { w ∈ Π

k

: w(0) = c }.

Pokazać, że w klasie ˜

Π

k

najmniejszą normę Czebyszewa na [a, b] ma wielo-

mian

w(x) = c

·

T

k

2x−(a+b)

b−a

T

k

a+b
a−b

i wynosi ona

kwk

C

([a,b])

=

c

T

k

a+b
a−b

.

Jakie jest rozwiązanie, gdy 0 [a, b]?

background image

Rozdział 8

Interpolacja funkcjami
sklejanymi

Interpolacja kawałkami wielomianami interpolacyjnymi daje mały błąd
aproksymacji, ma jednak również pewne wady. Zauważmy, że w punk-
tach t

j

podziału przedziału [a, b] na podprzedziały funkcja aproksymu-

jąca ¯

w

f

nie jest w ogólności ciągła. W najlepszym wypadku, nawet gdy

węzły x

i,j

na przedziale [t

i−1

, t

i

] wybierzemy tak, że x

i,0

= t

i−1

i x

i,r

= t

i

,

∀i, to ¯

w

f

(x) co prawda będzie ciągła, ale nie będzie różniczkowalna w

x

i

. Ta własność jest niepożądana w przypadku gdy wiemy, że funk-

cja którą aproksymujemy jest “gładka”. Wtedy lepiej jest zastosować
innego rodzaju interpolację, np. posługując się funkcjami sklejanymi.

8.1 Co to są funkcje sklejane?

W ogólności przez funkcję sklejaną rozumie się każdą funkcję przedzia-
łami wielomianową. Nas będą jednak interesować szczególne funkcje
tego typu i dlatego termin funkcje sklejane zarezerwujemy dla funk-
cji przedziałami wielomianowych i posiadających dodatkowe własności,
które teraz określimy.

Niech dany będzie przedział skończony [a, b] i węzły

a

= x

0

< x

1

<

· · · < x

n

= b,

przy czym n ≥ 1.

89

background image

90

ROZDZIAŁ 8. INTERPOLACJA FUNKCJAMI SKLEJANYMI

Definicja 8.1 Funkcję s : R

R nazywamy funkcją sklejaną rzędu

r (r

1) odpowiadającą węzłom x

j

, 0

≤ j ≤ n, jeśli spełnione są

następujące dwa warunki:

(i) s jest wielomianem stopnia co najwyżej 2r

1 na każdym z prze-

działów [x

j−1

, x

j

], tzn. s

|[x

j−1

,x

j

]

Π

2r−1

, 1

≤ j ≤ n,

(ii) s jest (2r

2)-krotnie różniczkowalna w sposób ciągły na całej

prostej, tzn. s

C

(2r−2)

(R).

Jeśli ponadto

(iii) s jest wielomianem stopnia co najwyżej r

1 poza (a, b), tzn.

s

|(−∞,a]

, s

|[b,+)

Π

r−1

,

to s jest naturalną funkcją sklejaną.

Klasę naturalnych funkcji sklejanych rzędu r opartych na węzłach x

j

będziemy oznaczać przez S

r

(x

0

, . . . , x

n

), albo po prostu S

r

, jeśli węzły

są ustalone.

Na przykład, funkcją sklejaną rzędu pierwszego (r = 1) jest funkcja

ciągła i liniowa na poszczególnych przedziałach [x

j−1

, x

j

]. Jest ona na-

turalna, gdy poza (a, b) jest funkcją stała. Tego typu funkcje nazywamy
liniowymi funkcjami sklejanymi.

Najważniejszymi a praktycznego punktu widzenia są jednak funkcje

sklejane rzędu drugiego odpowiadające r = 2. Są to funkcje, które są
na R dwa razy różniczkowalne w sposób ciągły, a na każdym z pod-
przedziałów są wielomianami stopnia co najwyżej trzeciego. W tym
przypadku mówimy o kubicznych funkcjach sklejanych. Funkcja skle-
jana kubiczna jest naturalna, gdy poza (a, b) jest wielomianem linio-
wym.

8.2 Interpolacja i gładkość

Pokażemy najpierw ważny lemat, który okaże się kluczem do dowodu
dalszych twierdzeń.

background image

8.2. INTERPOLACJA I GŁADKOŚĆ

91

Niech W

r

(a, b) będzie klasą funkcji f : [a, b] R takich, że f jest

(r−1) razy różniczkowalna na [a, b] w sposób ciągły oraz f

(r)

(x) istnieje

prawie wszędzie na [a, b] i jest całkowalna z kwadratem, tzn.

W

r

(a, b) = { f ∈ C

(r−1)

([a, b]) : f

(r)

(x) istnieje p.w. na [a, b]

oraz f

(r)

∈ L

2

(a, b) }.

Oczywiście każda funkcja sklejana rzędu r (niekoniecznie naturalna)
należy do W

r

(a, b).

Lemat 8.1 Niech f

∈ W

r

(a, b) będzie funkcją zerującą się w węzłach,

tzn.

f

(x

j

) = 0,

0 ≤ j ≤ n.

Wtedy dla dowolnej naturalnej funkcji sklejanej s

∈ S

r

mamy

Z

b

a

f

(r)

(x)s

(r)

(x) dx = 0.

Dowód Dla r = 1 funkcja s

jest przedziałami stała. Oznaczając przez

a

j

jej wartość na [x

j−1

, x

j

] dostajemy

Z

b

a

f

(x)s

(x) dx =

n

X

j=1

Z

t

j

t

j−1

f

(x)a

j

dx

=

n

X

j=1

a

j

(f(x

j

) − f(x

j−1

)) = 0,

ponieważ f zeruje się w t

j

.

Rozpatrzmy teraz przypadek r ≥ 2. Ponieważ

(f

(r−1)

s

(r)

)

= f

(r)

s

(r)

+ f

(r−1)

s

(r+1)

,

to

Z

b

a

f

(r)

(x)s

(r)

(x) dx = f

(r−1)

(x)s

(r)

(x)

b

a

Z

b

a

f

(r−1)

(x)s

(r+1)

(x) dx.

Wobec tego, że s jest poza przedziałem (a, b) wielomianem stopnia co
najwyżej r − 1 oraz s

(r)

jest ciągła na R, mamy s

(r)

(a) = 0 = s

(r)

(b), a

stąd

f

(r−1)

(x)s

(r)

(x)

b

a

= 0.

background image

92

ROZDZIAŁ 8. INTERPOLACJA FUNKCJAMI SKLEJANYMI

Postępując podobnie, tzn. całkując przez części r −1 razy otrzymujemy

w końcu

Z

b

a

f

(r)

(x)s

(r)

(x) dx = (1)

r−1

Z

b

a

f

(x)s

(2r−1)

(x) dx.

Funkcja s

(2r−1)

jest przedziałami stała, a więc możemy teraz zastosować

ten sam argument jak dla r = 1, aby pokazać, że ostatnia całka jest
równa zeru.

2

Funkcje sklejane chcielibyśmy zastosować do interpolacji funkcji.

Ważne jest więc, aby odpowiednie zadanie interpolacyjne miało jed-
noznaczne rozwiązanie.

Twierdzenie 8.1 Jeśli n+1

≥ r, to dla dowolnej funkcji f : [a, b] R

istnieje dokładnie jedna naturalna funkcja sklejana s

f

∈ S

r

interpolu-

jąca f w węzłach x

j

, tzn. taka, że

s

f

(x

j

) = f(x

j

),

0 ≤ j ≤ n.

Dowód Pokażemy najpierw, że jedyną naturalną funkcją sklejaną in-
terpolującą dane zerowe jest funkcja zerowa. Rzeczywiście, jeśli s(x

j

) =

0 dla 0 ≤ j ≤ n, to podstawiając w Lemacie 8.1 f = s otrzymujemy

Z

b

a

s

(r)

(x)

2

dx

= 0.

Stąd s

(r)

jest funkcją zerową, a więc s jest wielomianem stopnia co

najwyżej r − 1 zerującym się w co najmniej n + 1 punktach x

j

. Wobec

tego, że n + 1 > r − 1, otrzymujemy s ≡ 0.

Zauważmy teraz, że problem znalezienia naturalnej funkcji skleja-

nej s interpolującej f można sprowadzić do rozwiązania kwadratowego
układu równań liniowych. Na każdym przedziale [x

i−1

, x

i

], 1 ≤ i ≤ n,

jest ona postaci

s

(x) = w

i

(x) =

2r−1

X

j=0

a

i,j

x

j

,

dla pewnych współczynników a

i,j

R, a na (−∞, a] i [b, ∞) mamy

odpowiednio

s

(x) = w

0

(x) =

r−1

X

j=0

a

0,j

x

j

background image

8.2. INTERPOLACJA I GŁADKOŚĆ

93

i

s

(x) = w

n+1

(x) =

r−1

X

j=0

a

n+1,j

x

j

.

Aby wyznaczyć s, musimy więc znaleźć ogółem 2r(n + 1) współczynni-
ków a

i,j

, przy czym są one związane (2r − 1)(n + 1) warunkami jedno-

rodnymi wynikającymi z gładkości,

w

(k)

i

(x

i

) = w

(k)

i+1

(x

i

)

dla 0 ≤ i ≤ n i 0 ≤ k ≤ 2r − 2, oraz n + 1 niejednorodnymi warunkami

interpolacyjnymi,

w

i

(x

i

) = f(x

i

)

dla 0 ≤ i ≤ n. Otrzymujemy więc układ 2r(n + 1) równań liniowych ze

względu na 2r(n + 1) niewiadomych a

i,j

.

Naturalna funkcja sklejana interpolująca f jest wyznaczona jedno-

znacznie wtedy i tylko wtedy, gdy układ ten ma jednoznaczne roz-
wiązanie. To zaś zachodzi, gdy zero jest jedynym rozwiązaniem układu
jednorodnego. Rzeczywiście, układ jednorodny odpowiada zerowym wa-
runkom interpolacyjnym, przy których, jak pokazaliśmy wcześniej, ze-
rowa funkcja sklejana (której odpowiada a

i,j

= 0, ∀i, j) jest jedynym

rozwiązaniem zadania interpolacyjnego.

2

Naturalne funkcje sklejane możemy więc używać do interpolacji

funkcji. Pokażemy teraz inną ich własność, która jest powodem dużego
praktycznego zainteresowania funkcjami sklejanymi.

Twierdzenie 8.2 Niech f

∈ W

r

(a, b) i niech s

f

∈ S

r

będzie naturalną

funkcją sklejaną rzędu r interpolującą f w węzłach x

j

, 0

≤ j ≤ n.

Wtedy

Z

b

a

f

(r)

(x)

2

dx

Z

b

a

s

(r)
f

(x)

2

dx.

(8.1)

Dowód Jeśli przedstawimy f w postaci f = s

f

+ (f − s

f

), to

Z

b

a

f

(r)

(x)

2

dx

=

Z

b

a

s

(r)
f

(x)

2

dx

+

Z

b

a

(f − s

f

)

(r)

(x)

2

dx

2

Z

b

a

s

(r)
f

(x)(f − s

f

)

(r)

(x) dx.

background image

94

ROZDZIAŁ 8. INTERPOLACJA FUNKCJAMI SKLEJANYMI

Funkcja f −s

f

jest w klasie W

r

(a, b) i zeruje się w węzłach x

j

, 0 ≤ j ≤ n.

Z Lematu 8.1 wynika więc, że

R

b

a

s

(r)
f

(x)(f −s

f

)

(r)

(x)dx = 0, a stąd (8.1).

2

Wartość całki

R

b

a

(f

(r)

(x))

2

dx

może być w ogólności uważana za miarę

gładkości funkcji. Nierówność (8.1) możemy więc zinterpretować w na-
stępujący sposób. Naturalna funkcja sklejana jest w klasie W

r

(a, b) naj-

gładszą funkcją spełniającą dane warunki interpolacyjne w wybranych
węzłach x

j

.

Konsekwencją Lematu 8.1 są również inne aproksymacyjne własno-

ści naturalnych funkcji sklejanych, zob. U. 8.2.

Jak już wspomnieliśmy, najczęściej używanymi są kubiczne funkcje

sklejane. Dlatego rozpatrzymy je oddzielnie.

8.3 Kubiczne funkcje sklejane

Jeśli zdecydowaliśmy się na użycie kubicznych funkcji sklejanych to
powstaje problem wyznaczenia s

f

∈ S

2

interpolującej daną funkcję f,

tzn. takiej, że s

f

(x

i

) = f(x

i

) dla 0 ≤ i ≤ n. W tym celu, na każdym

przedziale [x

i

, x

i+1

] przedstawimy s

f

w postaci jej rozwinięcia w szereg

Taylora w punkcie x

i

,

s

f

(x) = w

i

(x) = a

i

+ b

i

(x − x

i

) + c

i

(x − x

i

)

2

2

+ d

i

(x − x

i

)

3

6

,

i podamy algorytm obliczania a

i

, b

i

, c

i

, d

i

dla 0 ≤ i ≤ n − 1.

Warunki brzegowe i warunki ciągłości dla s

′′

f

dają nam w

′′

0

(x

0

) =

0 = w

′′

n−1

(x

n

) oraz w

′′

i

(x

i+1

) = w

′′

i+1

(x

i+1

), czyli

c

0

= 0,

c

i

+ d

i

h

i

= c

i+1

,

0 ≤ i ≤ n − 2,

c

n−1

+ d

n−1

h

n−1

= 0,

gdzie h

i

= x

i+1

− x

i

. Stąd, przyjmując dodatkowo c

n

= 0, otrzymujemy

d

i

=

c

i+1

− c

i

h

i

,

1 ≤ i ≤ n − 1.

(8.2)

background image

8.3. KUBICZNE FUNKCJE SKLEJANE

95

Z warunków ciągłości dla s

f

dostajemy z kolei

b

i

+ c

i

h

i

+ d

i

h

2

i

/

2 = b

i+1

,

0 ≤ i ≤ n − 2,

i uwzględniając (8.2)

b

i+1

= b

i

+ h

i

(c

i+1

+ c

i

)/2,

0 ≤ i ≤ n − 2.

(8.3)

Warunki ciągłości s

f

dają w końcu

a

i

+ b

i

h

i

+ c

i

h

2

i

/

2 + d

i

h

3

i

/

6 = a

i+1

,

0 ≤ i ≤ n − 2.

(8.4)

Równania (8.2),(8.3) i (8.4) definiują nam na odcinku [a, b] naturalną
kubiczną funkcję sklejaną. Ponieważ poszukiwana funkcja sklejana s

f

ma interpolować f, mamy dotatkowych n + 1 warunków interpolacyj-
nych w

i

(x

i

) = f(x

i

), 0 ≤ i ≤ n − 1, oraz w

n−1

(x

n

) = f(x

n

), z których

a

i

= f(x

i

),

0 ≤ i ≤ n − 1.

(8.5)

Teraz możemy (8.4) przepisać jako

f

(x

i+1

) = f(x

i

) + b

i

h

i

+ c

i

h

2

i

+ d

i

h

3

i

/

6,

przy czym wzór ten zachodzi również dla i = n − 1. Po wyrugowaniu
b

i

i podstawieniu d

i

z (8.2), mamy

b

i

= f(x

i

, x

i+1

) + h

i

(c

i+1

+ 2c

i

)/6,

0 ≤ i ≤ n − 1,

(8.6)

gdzie f(x

i

, x

i+1

) jest odpowiednią różnicą dzieloną. Możemy teraz po-

wyższe wyrażenie na b

i

podstawić w równaniach (8.3), aby otrzymać

c

i

h

i

/

6 + c

i+1

(h

i

+ h

i+1

)/3 + c

i+1

h

i+1

/

6 = f(x

i+1

, x

i+2

) − f(x

i

, x

i+1

).

Wprowadzając oznaczenie

c

i

= c

i

/

6,

(8.7)

możemy to równanie przepisać jako

h

i

h

i

+ h

i+1

c

i

+ 2 c

i+1

+

h

i+1

h

i

+ h

i+1

c

i+2

= f(x

i

, x

i+1

, x

i+2

),

background image

96

ROZDZIAŁ 8. INTERPOLACJA FUNKCJAMI SKLEJANYMI

0 ≤ i ≤ n − 2, albo w postaci macierzowej

2 w

1

u

2

2

w

2

u

3

2

w

3

... ...

...

u

n−2

2

w

n−2

u

n−1

2

c

1

c

2

c

3

...

c

n−2

c

n−1

=

v

1

v

2

v

3

...

v

n−2

v

n−1

,

(8.8)

gdzie

u

i

=

h

i−1

h

i−1

+ h

i

,

w

i

=

h

i

h

i−1

+ h

i

,

v

i

= f(x

i−1

, x

i

, x

i+1

).

Ostatecznie, aby znaleźć współczynniki a

i

, b

i

, c

i

, d

i

należy najpierw roz-

wiązać układ równań (8.8), a potem zastosować wzory (8.7), (8.2), (8.6)
i (8.5).

Zauważmy, że macierz układu (8.8) jest trójdiagonalna i ma domi-

nującą przekątną. Układ można więc rozwiązać kosztem proporcjonal-
nym do wymiaru n używając algorytmu przeganiania z U. 3.6. Koszt
znalezienia wszystkich współczynników kubicznej funkcji sklejanej in-
terpolującej f jest więc też proporcjonalny do n.

Na końcu oszacujemy jeszcze błąd interpolacji naturalnymi kubicz-

nymi funkcjami sklejanymi na przedziale [a, b]. Będziemy zakładać, że
f

jest dwa razy różniczkowalna w sposób ciągły.

Twierdzenie 8.3 Jeśli f

∈ F

1

M

([a, b]) to

kf − s

f

k

C

([a,b])

5 M max

1≤i≤n

(x

i

− x

i−1

)

2

.

W szczególności, dla podziału równomiernego x

i

= a + (b − a)i/n, 0

i

≤ n, mamy

kf − s

f

k

C

([a,b])

5 M

b

− a

n

2

.

background image

8.3. KUBICZNE FUNKCJE SKLEJANE

97

Dowód Wykorzystamy obliczoną wcześniej postać interpolującej funk-
cji sklejanej s

f

. Dla x ∈ [x

i

, x

i+1

] mamy

w

i

(x) = f(x

i

) +

f

(x

i+1

) − f(x

i

)

h

i

− h

i

(c

i+1

+ 2c

i

)

!

(x − x

i

)

+ 3c

i

(x − x

i

)

2

+

c

i+1

− c

i

h

i

(x − x

i

)

3

.

Z rozwinięcia f w szereg Taylora w punkcie x

i

dostajemy f(x) = f(x

i

)+

f

(x

i

)(x − x

i

) + f

′′

(ξ

1

)(x − x

i

)

2

/

2 oraz (f(x

i+1

) − f(x

i

))/h

i

= f

(x

i

) +

h

i

f

′′

(ξ

2

)/2. Stąd

f

(x) − s

f

(x) = f(x) − w

i

(x)

=

f

′′

(ξ

1

)

2

(x − x

i

)

2

f

′′

(ξ

2

)

2

(c

i+1

+ 2c

i

)

!

h

i

(x − x

i

)

3c

i

(x − x

i

)

2

c

i+1

− c

i

h

i

(x − x

i

)

3

,

oraz

|f(x) − s

f

(x)| ≤ (M + 2|c

i+1

| + 6|c

i

|)h

2

i

= (M + 8 max

1≤i≤n−1

|c

i

|)h

2

i

.

Niech teraz max

1≤i≤n−1

|c

i

| = |c

s

|. Z postaci układu (8.8) otrzymujemy

|c

s

| = 2|c

s

| − |c

s

|(u

s

+ w

s

) ≤ |u

s

c

s−1

+ 2c

s

+ w

s

c

s+1

|

= |f(x

s−1

, x

s

, x

s+1

)| ≤

f

′′

(ξ

3

)

2

1
2

M,

a stąd i z (8.9)

|f(x) − s

f

(x)| ≤ 5Mh

2

i

,

co kończy dowód.

2

Uwagi i uzupełnienia

U. 8.1 Zamiast terminu funkcje sklejane używa się też często terminów
splajny (ang. spline-sklejać), albo funkcje gięte.

background image

98

ROZDZIAŁ 8. INTERPOLACJA FUNKCJAMI SKLEJANYMI

U. 8.2 W Rozdziale 7 pokazaliśmy, że aproksymacja kawałkami wielomia-
nowa stopnia r jest optymalna (co do rzędu zbieżności) w klasie F

r

M

([a, b]),

wśród wszystkich aproksymacji korzystających jedynie z informacji o warto-
ściach funkcji w danej liczbie n punktów. Okazuje się, że podobne optymalne
własności wykazują funkcje sklejane, ale w innych klasach funkcji.

Niech

W

r

M

(a, b) =

n

f

∈ W

r

(a, b) :

Z

b

a

f

(r)

(x)

2

dx

≤ M

o

.

Ustalmy węzły a = x

0

<

· · · < x

n

= b. Dla f ∈ W

r

M

(a, b), niech s

f

będzie

naturalną funkcją sklejaną interpolującą f w x

j

, 0 ≤ j ≤ n, a a

f

dowolną

inną aproksymacją korzystającą jedynie z informacji o wartościach f w tych
węzłach , tzn.

a

f

= φ(f(x

0

), . . . , f(x

n

)).

Załóżmy, że błąd aproksymacji mierzymy nie w normie Czebyszewa, ale w
normie średniokwadratowej, zdefiniowanej jako

kgk

L

2

(a,b)

=

s

Z

b

a

(g(x))

2

dx.

Wtedy

sup

f ∈W

r

M

(a,b)

kf − s

f

k

L

2

(a,b)

sup

f ∈W

r

M

(a,b)

kf − a

f

k

L

2

(a,b)

.

Aproksymacja naturalnymi funkcjami sklejanymi jest więc optymalna w kla-
sie W

r

M

(a, b).

Można również pokazać, że interpolacja s

f

naturalnymi funkcjami skle-

janymi na węzłach równoodległych x

j

= a + (b − a)j/n, 0 ≤ j ≤ n, jest

optymalna co do rzędu w klasie W

r

M

(a, b), wśród wszystkich aproksymacji

korzystających jedynie z informacji o wartościach funkcji w n + 1 dowolnych
punktach, oraz

max

f ∈W

r

M

(a,b)

kf − s

f

k

L

2

(a,b)

≍ n

−r

.

U. 8.3 Tak jak wielomiany, naturalne funkcje sklejane interpolujące dane
funkcje można reprezentować przez ich współczynniki w różnych bazach.
Do tego celu można na przykład użyć bazy kanonicznej K

j

, 0 ≤ j ≤ n,

zdefiniowanej równościami

K

j

(x

i

) =

(

0

i

6= j,

1

i = j,

background image

8.3. KUBICZNE FUNKCJE SKLEJANE

99

przy której s

f

(x) =

P

n

j=0

f (x

j

)K

j

(x). Baza kanoniczna jest jednak niewy-

godna w użyciu, bo funkcje K

j

w ogólności nie zerują się na żadnym pod-

przedziale, a tym samym manipulowanie nimi jest utrudnione.

Częściej używa się bazy B-sklejanej B

j

, 0 ≤ j ≤ n. W przypadku funkcji

kubicznych, r = 2, jest ona zdefiniowana przez następujące warunki:

B

j

(x

j

) = 1,

dla 0 ≤ j ≤ n,

B

j

(x) = 0,

dla x ≤ x

j−2

, j

2, oraz dla x ≥ x

j+2

, j

≤ n − 2.

Dla B

0

i B

1

dodatkowo żądamy, aby

B

′′

0

(x

0

) = 0 = B

′′

1

(x

0

),

B

1

(x

0

) = 0,

a dla B

n−1

i B

n

podobnie

B

′′

n−1

(x

n

) = 0 = B

′′

n

(x

n

),

B

n−1

(x

n−1

) = 0.

Wtedy B

j

nie zeruje się tylko na przedziale (x

j−2

, x

j+2

), Wyznaczenie współ-

czynników rozwinięcia w bazie {B

i

}

n

i=0

funkcji sklejanej interpolującej f wy-

maga rozwiązania układu liniowego z macierzą trójdiagonalną {B

j

(x

i

)}

n

i,j=0

,

a więc koszt obliczenia tych współczynników jest proporcjonalny do n.

U. 8.4 Oprócz naturalnych funkcji sklejanych często rozpatruje się też okre-
sowe funkcje sklejane
. Są to funkcje ˜

s : R

R spełniające warunki (i), (ii)

z Rozdziału 8.1, oraz warunek:

(iii)’ ˜s

(i)

jest dla 0 ≤ i ≤ r − 1 funkcją okresową o okresie (b − a), tzn.

˜s

(i)

(x) = ˜s

(i)

(x + (b − a)), ∀x.

Klasę okresowych funkcji sklejanych rzędu r oznaczymy przez ˜

S

r

. Funkcje

te mają podobne własności jak naturalne funkcje sklejane. Dokładniej, niech

˜

W

r

(a, b) = { f ∈ W

r

(a, b) : f

(i)

(a) = f

(i)

(b), 0 ≤ i ≤ r − 1 },

(8.9)

tzn. ˜

W

r

(a, b) jest klasą funkcji z W

r

(a, b), które można przedłużyć do funkcji,

krórych wszystkie pochodne do rzędu r − 1 włącznie są (b − a)-okresowe na

R. Wtedy dla dowolnej funkcji f ∈ ˜

W

r

(a, b) zerującej się w węzłach x

j

, oraz

dla dowolnej ˜s ∈ ˜

S

r

mamy

Z

b

a

f

(r)

(xs

(r)

(x) dx = 0.

(8.10)

background image

100 ROZDZIAŁ 8. INTERPOLACJA FUNKCJAMI SKLEJANYMI

Jest to odpowiednik Lematu 8.1 w przypadku okresowym. W szczególno-
ści wynika z niego jednoznaczność rozwiązania zadania interpolacyjnego dla
okresowych funkcji f (tzn. takich, że f(a) = f(b)), jak również odpowiednia
własność minimalizacyjna okresowych funkcji sklejanych. Dokładniej, jeśli
f

˜

W

r

(a, b) oraz ˜s

f

˜

S

r

interpoluje f w węzłach x

j

, 0 ≤ j ≤ n, to

Z

b

a

f

(r)

(x)

2

dx

Z

b

a

˜s

(r)
f

(x)

2

dx.

U. 8.5 Klasyczne zadanie aproksymacyjne w przestrzeniach funkcji defi-
niuje się w następujący sposób.

Niech F będzie pewną przestrzenią liniową funkcji f : [a, b] R, w

której określona została norma k · k. Niech V

n

⊂ F będzie podprzestrzenią

w F wymiaru n. Dla danej f ∈ F , należy znaleźć funkcję v

f

∈ F taką, że

kf − v

f

k = min

v∈V

n

kf − vk.

Okazuje się, że tak postawione zadanie ma rozwiązanie v

f

, choć nie zawsze

jest ono wyznaczone jednoznacznie, zob. Ćw. 8.6.

Jako przykład, rozpatrzmy F = W

r

(a, b). Utożsamiając funkcje f

1

, f

2

W

r

(a, b) takie, że f

1

(x) − f

2

(x) Π

r−1

, zdefiniujemy w W

r

(a, b) normę

kfk =

s

Z

b

a

f

(r)

(x)

2

dx.

Dla ustalonych węzłów a = x

0

<

· · · < x

n

= b, niech

V

n+1

= S

r

będzie podprzestrzenią w W

r

(a, b) naturalnych funkcji sklejanych rzędu r

opartych węzłach x

j

, 0 ≤ j ≤ n. Oczywiście dimS

r

= n + 1, co wynika z

jednoznaczności rozwiązania w S

r

zadania interpolacji. Okazuje się, że wtedy

optymalną dla f ∈ W

r

(a, b) jest naturalna funkcja sklejana s

f

interpolująca

f w węzłach x

j

, tzn.

kf − s

f

k = min

s∈S

r

kf − sk.

Rzeczywiście, ponieważ norma w przestrzeni W

r

(a, b) generowana jest

przez iloczyn skalarny

hf

1

, f

2

i =

Z

b

a

f

(r)

1

(x)f

(r)

2

(x) dx,

background image

8.3. KUBICZNE FUNKCJE SKLEJANE

101

jest to przestrzeń unitarna. Znane twierdzenie mówi, że w przestrzeni uni-
tarnej najbliższą danej f funkcją w dowolnej domkniętej podprzestrzeni V
jest rzut prostopadły f na V , albo równoważnie, taka funkcja v

f

∈ V

n+1

, że

iloczyn skalarny

hf − v

f

, v

i = 0,

∀v ∈ V.

W naszym przypadku, ostatnia równość jest równoważna

Z

b

a

(f − v

f

)

(r)

(x)s

(r)

(x) dx = 0,

∀s ∈ S

r

.

To zaś jest na mocy Lematu 8.1 prawdą gdy v

f

interpoluje f w punktach

x

j

, czyli v

f

= s

f

.

Dodajmy jeszcze, że nie zawsze interpolacja daje najlepszą aproksymację

w sensie klasycznym, zob. Ćw. 8.7.

Ćwiczenia

Ćw. 8.1 Dla z ∈ R, niech

z

+

= max(0, z) =

(

z

z

0,

0

z < 0.

Pokazać, że każdą funkcję sklejaną s rzędu r można przedstawić w postaci

s(x) = w(x) +

n

X

j=0

a

j

(x − x

j

)

+

2r−1

,

gdzie a

j

są pewnymi współczynnikami rzeczywistymi, a w ∈ Π

2r−1

. Ponadto,

jeśli s jest naturalna, to w ∈ Π

r−1

, a współczynniki a

j

spełniają równania

n

X

j=0

a

j

x

i

j

= 0,

0 ≤ i ≤ r − 1.

Ćw. 8.2 Niech h > 0 i c ∈ R. Wyznaczyć współczynniki kubicznej funkcji

sklejanej s opartej na pięciu węzłach 2h, −h, 0, h, 2h i spełniającej dodat-

kowo następujące warunki interpolacyjne:

s(0) = c,

s

(k)

(±2h) = 0,

k = 0, 1, 2,

background image

102 ROZDZIAŁ 8. INTERPOLACJA FUNKCJAMI SKLEJANYMI

Ćw. 8.3 Wykorzystując Ćw. 8.2 wykazać, że dla dowolnego układu węzłów
a

≤ x

1

<

· · · x

n

≤ b mamy

max{ kf

′′

k

C

([a,b])

: f ∈ F

1

M

([a, b]), f(x

i

) = 0, 1 ≤ i ≤ n } ≥

M

24

b

− a

n + 1

2

.

Stąd i z U. 7.6 wywnioskować, że dla każdej aproksymacji a

f

korzystającej

jedynie z wartości f w n punktach,

max

f ∈F

1

M

([a,b])

kf − a

f

k

C

([a,b])

M

24

b

− a

n + 1

2

.

Ćw. 8.4 Pokazać, że funkcje B

j

, 0 ≤ j ≤ n, zdefiniowane w U. 8.3 istnieją

i tworzą bazę w przestrzeni S

r

.

Ćw. 8.5 Pokazać jednoznaczność rozwiązania zadania interpolacyjnego w
przypadku okresowych funkcji sklejanych (zob. U. 8.4), oraz własność mini-
malizacyjną (8.9).
Wskazówka. Zastosować technikę dowodową podobną do tej z przypadku
naturalnych funkcji sklejanych.

Ćw. 8.6 Pokazać, że ogólnie postawione zadanie aproksymacyjne z U. 8.5
ma rozwiązanie.
Wskazówka. Zauważyć, że jeśli v

f

istnieje to kv

f

k ≤ 2kfk, oraz wykorzystać

ciągłość odwzorowania v 7→ kf − vk, v ∈ V , oraz fakt, że dimV < ∞.

Ćw. 8.7 Niech F = C([a, b]) z normą Czebyszewa, albo F = L

2

(a, b) z

normą średniokwadratową. Niech V

n+1

= Π

n

. Uzasadnić na przykładach, że

w ogólności nie istnieją węzły x

j

, 0 ≤ j ≤ n, o następującej własności: dla

każdej funkcji f ∈ F , wielomian w

f

Π

n

interpolujący f w węzłach x

j

jest

elementem optymalnym w sensie aproksymacji klasycznej, zdefiniowanej w
U. 8.5.

æ

background image

Rozdział 9

Całkowanie numeryczne

Zajmiemy się teraz zadaniem całkowania numerycznego. Polega ono na
obliczeniu (a raczej przybliżeniu) całki oznaczonej

S

(f) =

Z

b

a

f

(x) dx,

gdzie −∞ < a < b < +, a f należy do pewnej klasy F funkcji

rzeczywistych określonych i całkowalnych w sensie Riemanna na całym
przedziale [a, b].

Będziemy zakładać, że mamy możliwość obliczania wartości funkcji

f

, a w niektórych przypadkach również jej pochodnych, o ile istnieją.

Dokładna całka S(f) będzie więc w ogólności przybliżana wartością
A

(f), która zależy tylko od wartości f i ew. jej pochodnych w skończo-

nej liczbie punktów.

9.1 Co to są kwadratury?

Kwadraturami nazywamy funkcjonały liniowe Q : F

R postaci

Q

(f) =

n

X

i=0

a

i

f

(x

i

),

albo ogólniej

Q

(f) =

k

X

i=0

n

i

1

X

j=0

a

i,j

f

(j)

(x

i

),

(9.1)

103

background image

104

ROZDZIAŁ 9. CAŁKOWANIE NUMERYCZNE

gdzie x

i

są punktami z [a, b], a a

i

(albo a

i,j

) są pewnymi współczyn-

nikami rzeczywistymi. Zauważmy, że obliczenia kwadratur są dopusz-
czalne w naszym modelu obliczeniowym, mogą więc służyć jako sposób
przybliżania całki.

Jeden z możliwych sposobów konstrukcji kwadratur jest następu-

jący. Najpierw wybieramy węzły x

j

(pojedyncze lub wielokrotne), bu-

dujemy wielomian interpolacyjny odpowiadający tym węzłom, a na-
stępnie całkujemy go. Ponieważ postać wielomianu interpolacyjnego
zależy tylko od danej informacji o f, otrzymana w ten sposób wartość
też będzie zależeć tylko od tej informacji, a w konsekwencji funkcjonał
wynikowy będzie postaci (9.1). Są to tzw. kwadratury interpolacyjne.

Definicja 9.1 Kwadraturę Q

I

opartą na węzłach o łącznej krotności

n

+ 1 nazywamy interpolacyjną, jeśli

Q

I

(f) =

Z

b

a

w

f

(x) dx,

gdzie w

f

jest wielomianem interpolacyjnym funkcji f stopnia co najwy-

żej n, opartym na tych węzłach.

Współczynniki kwadratur interpolacyjnych można łatwo wyliczyć.

Rozpatrzmy dla uproszczenia przypadek, gdy węzły są jednokrotne.
Zapisując wielomian interpolacyjny w postaci jego rozwinięcia w bazie
kanonicznej Lagrange’a l

i

(zob. (6.3)), otrzymujemy

Q

I

(f) =

Z

b

a

n

X

i=0

f

(x

i

)l

i

(x) dx =

n

X

i=0

f

(x

i

)

Z

b

a

l

i

(x) dx,

a stąd i z postaci l

i

,

a

i

=

Z

b

a

(x − x

0

) · · · (x − x

i−1

)(x − x

i+1

) · · · (x − x

n

)

(x

i

− x

0

) · · · (x

i

− x

i−1

)(x

i

− x

i+1

) · · · (x

i

− x

n

)

dx,

0 ≤ i ≤ n.

Podamy teraz kilka przykładów.

Kwadratura prostokątów jest oparta na jednym węźle x

0

= (a + b)/2,

Q

I

0

(f) = (b − a)f

a

+ b

2

.

background image

9.2. BŁĄD KWADRATUR INTERPOLACYJNYCH

105

Kwadratura trapezów jest oparta na jednokrotnych węzłach x

0

= a,

x

1

= b i jest równa polu odpowiedniego trapezu,

Q

I

1

(f) = T (f) =

b

− a

2

f

(a) + f(b)

.

Kwadratura parabol (Simpsona) jest oparta na jednokrotnych węzłach
x

0

= a, x

1

= b, x

2

= (a + b)/2, i jest równa polu pod parabolą interpo-

lującą f w tych węzłach,

Q

I

2

(f) = P (f) =

b

− a

6

f

(a) + 4f

a

+ b

2

+ f(b)

.

Zauważmy, że kwadratury trapezów i parabol są oparte na węzłach

jednokrotnych i równoodległych, przy czym x

0

= a i x

n

= b. Ogólnie,

kwadratury interpolacyjne oparte na węzłach równoodległych x

i

= a +

(b − a)i/n, 0 ≤ i ≤ n, nazywamy kwadraturami Newtona–Cotesa.

9.2 Błąd kwadratur interpolacyjnych

Zajmiemy się teraz błędem kwadratur interpolacyjnych. Przypomnijmy,
że F

n

M

([a, b]) oznacza klasę funkcji (n + 1) razy różniczkowalnych w

sposób ciągły i takich, że |f

(n+1)

(x)| ≤ M, ∀x.

Twierdzenie 9.1 Niech Q

I

będzie kwadraturą interpolacyjną opartą

na (jednokrotnych lub wielokrotnych) węzłach x

i

, 0

≤ i ≤ n. Jeśli f ∈

F

n

M

([a, b]) to

|S(f) − Q

I

(f)| ≤

M

(n + 1)!

(b − a)

n+2

.

(9.2)

W klasie F

n

M

([a, b]), maksymalny błąd kwadratury Q

I

wynosi

sup

f ∈F

n

M

([a,b])

|S(f)−Q

I

(f)| =

M

(n + 1)!

Z

b

a

|(x−x

0

)(x−x

1

) · · · (x−x

n

)| dx.

Dowód Korzystając ze znanego nam już wzoru na błąd interpolacji
wielomianowej z Lematu 7.1, mamy

S

(f) − Q

I

(f) =

Z

b

a

(x − x

0

)(x − x

1

) · · · (x − x

n

)f(x

0

, x

1

, . . . , x

n

, x

) dx.

background image

106

ROZDZIAŁ 9. CAŁKOWANIE NUMERYCZNE

Stąd, jeśli f ∈ F

n

M

([a, b]) to

|S(f) − Q

I

(f)| ≤

Z

b

a

(b − a)

n+1

M

(n + 1)!

dx

= (b − a)

n+2

M

(n + 1)!

.

Ograniczenie górne w dokładnej formule na błąd w klasie F

n

M

([a, b])

wynika bezpośrednio z oszacowania (9.2). Aby pokazać ograniczenie
dolne zauważmy, że dla funkcji g takiej, że g

(n+1)

przyjmuje na prze-

działach (a, x

0

), (x

0

, x

1

), . . ., (x

n

, b

) naprzemiennie wartości M i −M

mamy

|S(g) − Q

I

(g)| =

M

(n + 1)!

Z

b

a

|(x − x

0

)(x − x

1

) · · · (x − x

n

)| dx.

Co prawda, g nie jest w F

n

M

[a, b], ale może być dla dowolnego ε > 0

przybliżana funkcjami f

ε

∈ F

n

M

([a, b]) w ten sposób, że całka

Z

b

a

|(x − x

0

) · · · (x − x

n

)(f − g)

(n+1)

(x)| dx ≤ ε (n + 1)!.

Zapisując f

ε

= g + (f

ε

− g) mamy

|S(f

ε

) − Q

I

(f

ε

)| ≤ |S(g) − Q

I

(g)| + |S(f

ε

− g) − Q

I

(f

ε

− g)|

M

(n + 1)!

Z

b

a

|(x − x

0

) · · · (x − x

n

)| dx + ε,

co wobec dowolności ε daje dowód twierdzenia.

2

W szczególnych przypadkach kwadratur trapezów T i parabol P

możemy otrzymać innego rodzaju formuły na błąd.

Twierdzenie 9.2 (i) Jeśli f

C

(2)

([a, b]) to dla kwadratury trapezów

mamy

S

(f) − T (f) =

(b − a)

3

12

f

(2)

(ξ

1

).

(ii) Jeśli f

C

(4)

([a, b]) to dla kwadratury parabol mamy

S

(f) − P (f) =

(b − a)

5

2280

f

(4)

(ξ

2

).

1

, ξ

2

[a, b]).

background image

9.2. BŁĄD KWADRATUR INTERPOLACYJNYCH

107

Dowód (i) Ze wzoru (9.2)

S

(f) − T (f) =

Z

b

a

(x − a)(x − b)f(a, b, x) dx.

Ponieważ funkcja x 7→ f(a, b, x) jest ciągła, a wielomian (x − a)(x − b)

przyjmuje jedynie wartości nieujemne, można zastosować twierdzenie o
wartości średniej dla całki, aby otrzymać

S

(f) − T (f) = f(a, b, c)

Z

b

a

(x − a)(x − b) dx

=

f

(2)

(ξ

1

)

2!

(b − a)

3

6

,

dla pewnych c, ξ

1

[a, b].

(ii) Niech w

f,2

Π

2

i w

f,3

Π

3

będą wielomianami interpolacyjnymi

funkcji f odpowiednio dla węzłów a, b, (a + b)/2 oraz a, b, (a + b)/2, (a +
b

)/2. Wtedy

w

f,3

(x) = w

f,2

(x) + f

a, b,

a

+ b

2

,

a

+ b

2

(x − a)

x

a

+ b

2

(x − b).

Wobec

Z

b

a

(x − a)

a

+ b

2

(x − b) dx = 0

mamy

P

(f) =

Z

b

a

w

f,2

(x) dx =

Z

b

a

w

f,3

(x) dx.

Stąd i ze wzoru na błąd interpolacji Hermite’a otrzymujemy

S

(f) − P (f) =

Z

b

a

(f − w

f,3

)(x) dx

=

Z

b

a

(x − a)

x

a

+ b

2

2

(x − b)f

a, b,

a

+ b

2

,

a

+ b

2

, x

dx.

Ponieważ wielomian (x − a)(x − (a + b)/2)

2

(x − b) jest niedodatni na

[a, b], możemy znów zastosować twierdzenie o wartości średniej. Mamy

S

(f) − P (f) = f

a, b,

a

+ b

2

,

a

+ b

2

, c

Z

b

a

(x − a)

x

a

+ b

2

2

(x − b) dx

=

f

(4)

(ξ

2

)

4!

(b − a)

5

120

,

background image

108

ROZDZIAŁ 9. CAŁKOWANIE NUMERYCZNE

co kończy dowód.

2

9.3 Kwadratury złożone

Podobnie jak w przypadku zadania interpolacji chcielibyśmy, aby błąd
kwadratur malał do zera, gdy liczba węzłów rośnie do nieskończoności.
Można to osiągnąć stosując np. kwadratury złożone. Są to kwadratury,
które powstają przez scałkowanie funkcji kawałkami wielomianowej in-
terpolującej f.

Prostym przykładem kwadratury złożonej jest suma Riemanna,

¯

Q

(f) =

n

X

i=0

(t

i+1

− t

i

)f(x

i

),

gdzie a = t

0

< t

1

<

· · · < t

n+1

= b oraz x

i

[t

i

, t

i+1

]. Jeśli średnica

podziału, max

0≤i≤n

(t

i

− t

i−1

), maleje do zera to lim

n→∞

¯

Q

(f) = S(f).

Będziemy rozpatrywać kwadratury złożone postaci

¯

Q

(f) =

Z

b

a

¯

w

f

(x) dx,

gdzie ¯

w

f

jest kawałkami wielomianem z Rozdziału 7.3. To znaczy, dla

danego n kładziemy t

i

= a + (b − a)i/k, 0 ≤ i ≤ k, a następnie dla

każdego i wybieramy dowolne węzły x

i,j

[t

i−1

, t

i

], 0 ≤ j ≤ r. Wtedy

¯

w

f

jest na każdym przedziale wielomianem interpolacyjnym funkcji f

stopnia co najwyżej r opartym na węzłach x

i,j

. Kwadratura ¯

Q

korzysta

z węzłów o łącznej krotności n ≤ k(r + 1).

Twierdzenie 9.3 Błąd kwadratury złożonej ¯

Q

(f) w klasie F

r

M

([a, b])

jest ograniczony przez

sup

f ∈F

r

M

([a,b])

|S(f) ¯

Q

(f)| ≤

(b − a)

r+2

k

r+1

M

(r + 1)!

C

1

n

r+1

,

gdzie

C

=

M

(r + 1)

r+1

(b − a)

r+2

(r + 1)!

.

background image

9.3. KWADRATURY ZŁOŻONE

109

Dowód Twierdzenie to jest bezpośrednim wnioskiem z Twierdzenia
9.1. Mamy bowiem

|S(f) ¯

Q

(f)| ≤

k

X

i=1

Z

t

i

t

i−1

|f(x) ¯

w

f

(x)| dx

k

X

i=1

b

− a

k

r+2

M

(r + 1)!

=

(b − a)

r+2

k

r+1

M

(r + 1)!

,

co kończy dowód.

2

W klasie F

r

M

([a, b]), błąd kwadratur złożonych jest rzędu n

(r+1)

,

czyli jest taki sam jak błąd interpolacji kawałkami wielomianowej. I
tak jak przy interpolacji można pokazać, że błąd każdej innej metody
całkowania korzystającej jedynie z wartości funkcji w n punktach nie
może w klasie F

r

M

([a, b]) maleć szybciej niż n

(r+1)

, zob. U. 9.1. Podane

kwadratury złożone mają więc optymalny rząd zbieżności.

Zajmiemy się teraz błędem szczególnych kwadratur złożonych, mia-

nowicie złożonych kwadratur trapezów ¯

T

k

i parabol ¯

P

k

. Powstają one

przez zastosowanie na każdym przedziale [t

i−1

, t

i

] odpowiednio kwadra-

tur trapezów T i parabol P . Jak łatwo się przekonać,

¯

T

k

(f) =

b

− a

k

f

(a) + f(b)

2

+

k−1

X

j=1

f

j

k

,

oraz

¯

P

k

(f) =

b

− a

3k

f

(a) + f(b)

2

+

k−1

X

j=1

f

j

k

+ 2

k

X

j=1

f

2j − 1

2k

.

Twierdzenie 9.4 (i) Jeśli f

C

(2)

([a, b]) to

S

(f) ¯

T

k

(f) =

(b − a)

2

12 k

2

f

(2)

(ξ

1

).

(ii) Jeśli f

C

(4)

([a, b]) to

S

(f) ¯

P

k

(f) =

(b − a)

4

2280 k

4

f

(4)

(ξ

2

).

background image

110

ROZDZIAŁ 9. CAŁKOWANIE NUMERYCZNE

Dowód Dla kwadratury trapezów mamy

S

(f) ¯

T

k

(f) =

k

X

i=1

(b − a)

3

12k

3

f

(2)

(α

i

)

=

(b − a)

2

12k

2

k

X

i=1

b

− a

k

f

(2)

(α

i

) =

(b − a)

2

12k

2

f

(2)

(ξ

1

),

a dla kwadratury parabol podobnie

S

(f) ¯

P

k

(f) =

k

X

i=1

(b − a)

5

2280k

5

f

(4)

(β

i

)

=

(b − a)

4

2280k

4

k

X

i=1

b

− a

k

f

(4)

(β

i

) =

(b − a)

4

2280k

4

f

(4)

(ξ

2

). 2

Kwadratura parabol ma więc optymalny rząd zbieżności nie tylko

w klasie F

2

M

([a, b]), ale też w F

3

M

([a, b]).

9.4 Przyspieszanie zbieżności kwadratur

W praktyce często stosuje się obliczanie kwadratur poprzez zagęszcza-
nie podziału przedziału [a, b]. Na przykład, dla złożonej kwadratury
trapezów zachodzi następujący wygodny wzór rekurencyjny:

¯

T

2k

=

1
2

¯

T

k

(f) +

b

− a

k

k

X

i=1

f

2i − 1

2k

!

.

(9.3)

Pozwala on obliczyć ¯

T

2k

(f) na podstawie ¯

T

k

(f) poprzez “doliczenie”

wartości funkcji w punktach “gęstszej” siatki. W ten sposób możemy
obserwować zachowanie się kolejnych przybliżeń ¯

T

2

s

(f) (s ≥ 0) całki

S

(f). Jest to szczególnie istotne wtedy, gdy nie mamy żadnej informa-

cji a priori o kf

′′

k

C

([a,b])

, a przez to nie potrafimy oszacować liczby n

węzłów, dla której osiągniemy pożądaną dokładność, zob. U. 9.2.

Jeśli funkcja jest więcej niż dwa razy różniczkowalna to użycie złożo-

nych kwadratur trapezów zdaje się tracić sens. Wtedy istnieją przecież
kwadratury, których błąd maleje do zera szybciej niż n

2

. Okazuje się

background image

9.4. PRZYSPIESZANIE ZBIEŻNOŚCI KWADRATUR

111

jednak, że kwadratury ¯

T

k

mogą być podstawą dla prostej rekurencyjnej

konstrukcji innych kwadratur posiadających już optymalną zbieżność.
Konstrukcja ta bazuje na następującym ważnym lemacie.

Lemat 9.1 (Formuła Eulera-Maclaurina)
Dla funkcji f

C

(2m+2)

([a, b]), błąd złożonej kwadratury trapezów ¯

T

k

wyraża się wzorem

S

(f) ¯

T

k

(f) =

m

X

i=1

c

i

h

2i

f

(2i−1)

(b) − f

(2i−1)

(a)

+ c

m+1

h

2m+2

(b − a)f

(2m+2)

(ξ

m,k

),

gdzie h = (b

− a)/k, ξ

m,k

[a, b], a c

i

są pewnymi stałymi liczbowymi.

Mamy c

1

= 1/12, c

2

= 1/720 i, ogólnie, c

i

= B

i

/

(2i)!, gdzie B

i

tzw. liczbami Bernoulliego.

2

Dowód tego lematu pominiemy.
Formułę Eulera-Maclaurina można przepisać w postaci

S

(f) ¯

T

k

(f) =

m

X

i=1

c

(0)
i

(f) k

2i

+ c

(0)
m+1,k

(f) k

(2m+2)

,

gdzie c

(0)
i

(f) = c

i

(b − a)

2i

(f

(2i−1)

(b) − f

(2i−1)

(a)), 1 ≤ i ≤ m, oraz

c

(0)
m+1,k

(f) = c

m+1

(b − a)

2m+2

f

(2m+2)

(ξ

m+1,k

). Zauważmy przy tym, że

jeśli f ∈ F

2m+1

M

([a, b]) to współczynniki c

(0)
m+1,k

(f) są wspólnie ograni-

czone przez c

m+1

(b − a)

2m+2

M

.

Definiując teraz kwadraturę

¯

T

1

k

(f) =

4 ¯

T

2k

(f) ¯

T

k

(f)

3

,

dla f ∈ C

(4)

([a, b]) mamy

S

(f) ¯

T

1

k

(f) =

4 (S(f) ¯

T

2k

(f) (S(f) ¯

T

k

(f))

3

=

4
3

c

(0)
1

(f)

4k

2

+

c

(0)
2,2k

(f)

4

2

k

4

1
3

c

(0)
1

(f)

k

2

+

c

(0)
2,k

(f)

k

4

=

c

(1)
2,k

(f)

k

4

,

background image

112

ROZDZIAŁ 9. CAŁKOWANIE NUMERYCZNE

gdzie c

(1)
2,k

(f) = (1/12)c

(0)
2,2k

(f) (1/3)c

(0)
2,k

(f) i jest wspólnie ograniczone

dla f ∈ F

3

M

([a, b]). Kwadratura T

1

k

ma więc optymalny w F

3

M

([a, b]) rząd

zbieżności k

4

. Proces ten można kontynuować dalej tworząc kolejne

kwadratury o coraz to wyższym rzędzie zbieżności. Dokładniej, połóżmy

¯

T

0

k

(f) = ¯

T

k

(f) oraz, dla s ≥ 1,

¯

T

s

k

(f) =

4

s

¯

T

s−1

2k

(f) ¯

T

s−1

k

(f)

4

s

1

.

(9.4)

Wtedy, dla f ∈ F

2m+1

M

([a, b]), rząd zbieżności kwadratury ¯

T

m

k

wynosi

k

(2m+2)

. Rzeczywiście, sprawdziliśmy, że jest to prawdą dla m = 0, 1.

Niech m ≥ 2. Postępując indukcyjnie ze względu na s = 1, 2, . . . , m

mamy

S

(f) ¯

T

s

k

(f) =

4

s

(S(f) ¯

T

s−1

2k

(f)) (S(f) ¯

T

s−1

k

(f))

4

s

1

=

4

s

m

X

i=s

c

(s−1)
i

(f)(2k)

2i

+ c

(s−1)
m+1,2k

(f)(2k)

(2m+2)

!

m

X

i=s

c

(s−1)
i

(f)k

2i

+ c

(s−1)
m+1,k

(f)k

(2m+2)

!!

1

4

s

1

=

m

X

i=s+1

c

(s)
i

(f)k

2i

+ c

(s)
m+1,k

(f)k

(2m+2)

,

ponieważ współczynniki przy k

2s

redukują się. c

(s)
i

(f) są tutaj pew-

nymi nowymi stałymi, a c

(s)
m+1,k

(f) może być w klasie F

2m+1

M

([a, b]) ogra-

niczona przez stałą niezależną od f. Ostatecznie, dla s = m mamy więc

S

(f) ¯

T

m

k

(f) = c

(m)
m+1,k

(f)k

(2m+2)

i w klasie F

2m+1

M

([a, b])

|S(f) ¯

T

m

k

(f)| ≤ c

m

k

(2m+2)

dla pewnej stałej c

m

niezależnej od f.

Zauważmy jeszcze, że ¯

T

m

k

wykorzystuje n = k2

m

+ 1 wartości f

w punktach równoodległych na [a, b] co oznacza, że w terminach n
rząd zbieżności wynosi też n

(2m+2)

, a więc jest optymalny w klasie

F

2m+1

M

([a, b]).

background image

9.4. PRZYSPIESZANIE ZBIEŻNOŚCI KWADRATUR

113

Kwadratury ¯

T

s

k

nazywane są kwadraturami Romberga. Dla danej

funkcji f, można je łatwo konstruować budując następującą tablicę trój-
kątną:

¯

T

0

1

(f)

¯

T

0

2

(f)

¯

T

1

1

(f)

¯

T

0

4

(f)

¯

T

1

2

(f)

¯

T

2

1

(f)

¯

T

0

8

(f)

¯

T

1

4

(f)

¯

T

2

2

(f)

¯

T

3

1

(f)

...

...

...

...

...

¯

T

0

2

s

(f) ¯

T

1

2

s−1

(f) ¯

T

2

2

s−2

(f) ¯

T

3

2

s−3

(f) · · · ¯

T

s

1

(f),

(9.5)

w której pierwsza kolumna jest tworzona indukcyjnie zgodnie ze wzorem
(9.3), a kolejne zgodnie z (9.4).

Uwagi i uzupełnienia

U. 9.1 Pokażemy, że jeśli dowolny algorytm A daje przybliżoną wartość
całki S(f) =

R

b

a

f (x)dx na podstawie jedynie wartości lub pochodnych funk-

cji f w n różnych punktach, tzn.

A(f ) = φ(f (x

1

), . . . , f

(r+1)

(x

1

), . . . , f(x

n

), . . . , f

(r+1)

(x

n

))

dla pewnych x

i

[a, b], to błąd takiego przybliżenia w klasie F

r

M

([a, b]),

sup

f ∈F

r

M

([a,b])

|S(f) − A(f)| ≥ C

1

M n

(r+1)

,

(9.6)

gdzie C

1

jest pewną stałą dodatnią niezależną od A i n.

W tym celu, podobnie jak w U. 7.2, wybierzmy dowolną nieujemną funk-

cję ψ : R R spełniającą warunki:

1. ψ ∈ F

r

1

(R),

2. ψ(x) = 0 dla x 6∈ [0, 1].

Oznaczmy x

0

= a, x

n+1

= b, h

i

= x

i+1

− x

i

, 0 ≤ i ≤ n, oraz zdefiniujmy

funkcje

ψ

i

(x) = Mh

r+1

i

ψ

x

− x

i

h

i

.

background image

114

ROZDZIAŁ 9. CAŁKOWANIE NUMERYCZNE

Wtedy dla g

1

(x) = −g

2

(x) =

P

n

i=0

ψ

i

(x) mamy g

l

∈ F

r

M

([a, b]) oraz infor-

macja o g

l

jest zerowa, g

(p)

l

(x

j

) = 0 dla 0 ≤ p ≤ r + 1, 1 ≤ j ≤ n. Stąd

φ

0

= φ(0, . . . , 0

|

{z

}

n(r+2)

) jest aproksymacją dla całek obu funkcji ψ

l

i

max{|S(g

1

) − φ

0

|, |S(g

2

) − φ

0

|} ≥ |S(g

1

) − S(g

2

)|/2 = S(g

1

)

=

n

X

i=0

Z

x

i

x

i−1

ψ

i

(x) dx = M

n

X

i=0

h

r+1

i

Z

x

i

x

i−1

ψ

x

− x

i

h

i

dx

= M

Z

1

0

ψ(x) dx +

n

X

i=0

h

r+2

i

.

Zauważmy jeszcze, że suma

P

n

i=0

h

r+2

i

jest minimalna dla h

i

= (b−a)/(n+1),

∀i, a stąd

S(g

1

) ≥ M

(b − a)

r+2

(n + 1)

r+1

Z

1

0

ψ(x) dx.

Nierówność (9.6) zachodzi więc z C

1

= (2(b − a))

r+1

R

1

0

ψ(x)dx.

U. 9.2 Jeśli f ∈ C

(2)

([a, b]) i f

(a) 6= f

(b) to dla dużych k mamy

S(f )

¯

T

k

(f) ≈ c(f)k

2

,

gdzie c(f) = (b − a)

2

(f

(b) − f

(a))/12. Stąd

¯

T

k

(f) ¯

T

k/2

(f) = (S(f) ¯

T

k/2

(f)) (S(f) ¯

T

k

(f))

c(f )

k

2

c(f )

(k/2)

2

=

3c(f)

k

2

≈ −3 (S(f) ¯

T

k

(f)),

a więc

S(f )

¯

T

k

(f)

1
3

( ¯

T

k/2

(f) ¯

T

k

(f)),

gdy k → ∞. Ostatnia przybliżona równość może sugerować kryterium koń-

czenia obliczeń, gdy chcemy otrzymać przybliżenie całki S(f) z zadaną do-
kładnością ε > 0. Mianowicie, obliczając kolejne kwadratury ¯

T

2

s

(f) dla

s = 0, 1, . . ., sprawdzamy jednocześnie, czy

| ¯

T

2

s−1

(f) ¯

T

2

s

(f)| ≤ 3 ε.

Jeśli ten warunek jest spełniony dla kilku kolejnych s to z dużym prawdo-
podobieństwem możemy stwierdzić, że |S(f) ¯

T

2

s

(f)| ≤ ε.

Oczywiście, podobne kryteria kończenia obliczeń mogą być konstruowane

dla innych ciągów kwadratur, jeśli tylko znamy teoretyczne zachowanie się
błędu.

background image

9.4. PRZYSPIESZANIE ZBIEŻNOŚCI KWADRATUR

115

Ćwiczenia

Ćw. 9.1 Pokazać, że w kwadraturze Newtona-Cotesa opartej na n + 1 rów-
noodległych węzłach x

i

= a + (b − a)i/n, współczynniki a

i

dane są wzorami

a

i

=

(1)

n−i

(b − a)

n i!(n

− i)!

Z

n

0

x(x

1) · · · (x − (i − 1))(x − (i + 1)) · · · (x − n) dx.

Ćw. 9.2 Pokazać, że jeśli f ∈ C

(2)

([a, b]) to dla kwadratury prostokątów

Q

0

(f) = f((a + b)/2)(b − a)/2 mamy

S(f )

− Q

0

(f) =

(b − a)

3

24

f

(2)

(ξ

0

),

(ξ

0

[a, b]), a w konsekwencji

max

f ∈F

1

M

([a,b])

|S(f) − Q

0

(f)| =

M (b

− a)

3

24

.

Błąd w klasie F

1

M

([a, b]) jest więc dla kwadratury prostokątów dwa razy

mniejszy niż dla kwadratury trapezów. Wywnioskować stąd, że złożona kwa-
dratura prostokątów,

¯

Q

0

(f) =

b

− a

k

k

X

i=1

f

2i − 1

2k

,

ma optymalny rząd zbieżności nie tylko w klasie F

0

M

([a, b]), ale też w klasie

F

1

M

([a, b]).

Ćw. 9.3 Rozpatrzmy kwadratury interpolacyjne oparte na dwóch węzłach
x

0

, x

1

[a, b]. Pokazać, że wśród tych kwadratur najmniejszy błąd w klasie

F

1

M

([a, b]) jest osiągany przez kwadraturę

Q

I

(f) =

b

− a

2

f

3a + b

4

+ f

a + 3b

4

,

a jej błąd

sup

f ∈F

1

M

([a,b])

|S(f) − Q

I

(f)| =

M (b

− a)

3

32

.

background image

116

ROZDZIAŁ 9. CAŁKOWANIE NUMERYCZNE

Ćw. 9.4 Uzasadnić, że jeśli kwadratura interpolacyjna Q

I

oparta jest na

węzłach Czebyszewa

x

i

=

a + b

2

+

b

− a

2

cos

2i + 1

2r + 2

π

,

0 ≤ i ≤ r,

to dla f ∈ F

r

M

([a, b]) błąd

|S(f) − Q

I

(f)| ≤

M (b

− a)

r+2

2

2r+1

(r + 1)!

,

a dla odpowiadającej węzłom Czebyszewa kwadratury złożonej

|S(f) ¯

Q

I

(f)| ≤

M (b

− a)

r+2

2

2r+1

(r + 1)!

1

k

r+1

.

Ćw. 9.5 Rozpatrzmy kwadraturę

¯

Q

k

(f) = ¯

T

k

(f)

(b − a)

2

12k

2

(f

(b) − f

(a)).

Pokazać, nie korzytając z formuły Eulera-Maclaurina, że jeśli f ∈ F

2

M

([a, b])

to błąd |S(f) ¯

Q

k

(f)| zbiega do zera co najmniej tak szybko jak k

4

, gdy

k

→ ∞. W szczególności, dla funkcji spełniających f

(a) = f

(b) rząd zbież-

ności złożonej kwadratury trapezów wynosi k

4

.

Ćw. 9.6 Opracować ekonomiczny algorytm obliczania ciągu kolejnych zło-
żonych kwadratur parabol ¯

P

2

s

(f) dla s = 0, 1, 2, . . ..

Ćw. 9.7 Opracować kryterium kończenia obliczeń analogiczne do tego z U.
9.2, dla ciągu złożonych kwadratur parabol ¯

P

2

s

(f), s = 0, 1, . . ..

Ćw. 9.8 Pokazać, że drugą kolumnę tabeli (9.5) kwadratur Romberga two-
rzą złożone kwadratury parabol, tzn.

¯

P

k

(f) =

4 ¯

T

2k

(f) ¯

T

k

(f)

3

.

Ćw. 9.9 Opracować program obliczający wartość ¯

T

s

1

(f) kwadratury Rom-

berga, korzystając ze wzorów (9.3) i budując tabelę (9.4).

æ

background image

Rozdział 10

Całkowanie a aproksymacja

W poprzednim rozdziale badaliśmy kwadratury ze względu na kryte-
rium błędu w pewnych klasach funkcji. W tym rozdziale zajmiemy się
badaniem kwadratur ze względu na inne, bardziej klasyczne kryterium,
którym jest rząd kwadratury. Będziemy przy tym rozpatrywać nieco
ogólniejsze zadanie całkowania, tzw. całkowanie z wagą,

S

(f) = S

ρ

(f) =

Z

b

a

f

(x)ρ(x) dx,

gdzie waga ρ jest prawie wszędzie dodatnia i jest całkowalna,

Z

b

a

(x)| dx < +∞.

Dopuścimy również możliwość nieskończonych przedziałów całkowania,
a więc −∞ ≤ a < b ≤ +.

10.1 Rząd kwadratury

Zaczniemy od definicji.

Definicja 10.1 Rzędem kwadratury Q nazywamy taką liczbę r, że

(i) kwadratura Q daje dokładną wartość całki dla wszystkich wielomia-

nów stopnia mniejszego niż r,

Q

(w) = S

ρ

(w),

∀w ∈ Π

r−1

,

117

background image

118

ROZDZIAŁ 10. CAŁKOWANIE A APROKSYMACJA

(i) istnieje wielomian stopnia r dla którego kwadratura nie jest równa

całce,

∃w

Π

r

,

Q

(w

) 6= S

ρ

(w

).

Rząd kwadratury Q oznaczymy przez rz(Q). Dla przykładu, za-

łóżmy, że ρ ≡ 1 i przedział [a, b] jest skończony. Wtedy rząd kwa-

dratury prostokątów wynosi 2, tak jak rząd kwadratury trapezów T ,
natomiast rząd kwadratury parabol P wynosi 4. Rzeczywiście, to wy-
nika bezpośrednio ze wzorów na błędy tych kwadratur danych w Ćw.
9.2 i Twierdzeniu 9.2. Ogólniej, mamy następujące twierdzenie, które
przytaczamy bez dowodu.

Twierdzenie 10.1 Niech waga ρ

1 i niech przedział [a, b] będzie

skończony. Rząd kwadratury Newtona-Cotesa Q

N C

n

, tzn. opartej na jed-

nokrotnych węzłach równoodległych x

i

= a + (b − a)i/n, 0 ≤ i ≤ n,

wynosi

rz(Q

N C

) =

(

n

+ 1

dla n nieparzystych,

n

+ 2

dla n parzystych.

2

Jasne jest, że interesują nas kwadratury o jak najwyższym rzędzie.

Chcielibyśmy wiedzieć, jaki jest maksymalny rząd kwadratury korzy-
stającej z ustalonej liczby węzłów i jak konstruować kwadratury o mak-
symalnym rzędzie. Jak przekonamy się później, nie jest to tylko aka-
demickie pytanie, bowiem kwadratury o maksymalnym rzędzie mają
również dobre własności ze względu na błąd.

Częściową odpowiedź na pytanie o maksymalny rząd kwadratur

daje następujący lemat.

Lemat 10.1 Niech Q będzie kwadraturą opartą na węzłach o łącznej
krotności n
+ 1.
(i) Jeśli
rz(Q)

≥ n + 1 to Q jest kwadraturą interpolacyjną.

(ii) Jeśli Q jest kwadraturą interpolacyjną to

n

+ 1 rz(Q) 2(n + 1).

background image

10.2. CIĄGI WIELOMIANÓW ORTOGONALNYCH

119

Dowód (i) Dla dowolnej funkcji f , niech w

f

będzie wielomianem inter-

polacyjnym dla f stopnia co najwyżej n, opartym na tej samej informa-
cji o f, z jakiej korzysta kwadratura Q. Wtedy mamy Q(f) = Q(w

f

),

a ponieważ rz(Q) ≥ n + 1 to również Q(w

f

) = S

ρ

(w

f

). Stąd

Q

(f) = S

ρ

(w

f

),

a to oznacza, że Q jest interpolacyjna.
(ii) Jeśli Q jest interpolacyjna to dla każdego w ∈ Π

n

mamy Q(w) =

S

ρ

(w), bo w jest dla siebie wielomianem interpolacyjnym. Stąd rz(Q)

n

+ 1.

Dla dowodu drugiej nierówności załóżmy, że Q korzysta z węzłów

x

0

, x

1

, . . . , x

n

(być może powtarzających się). Wtedy dla wielomianu

w

1

(x) = (x − x

0

)

2

(x − x

1

)

2

· · · (x − x

n

)

2

mamy w

1

Π

2(n+1)

oraz S

ρ

(w

1

) > 0, bo w

1

jest prawie wszędzie do-

datni. Z drugiej strony, Q(w

1

) = 0, bo informacja o w

1

jest zerowa.

Stąd

Q

(w

1

) 6= S

ρ

(w

1

)

i w konsekwencji rz(Q) 2(n + 1). 2

Lemat 10.1 mówi nam, że w poszukiwaniu kwadratur o najwyż-

szym rzędzie możemy ograniczyć się do kwadratur interpolacyjnych.
Ponadto, maksymalny rząd jest na pewno nie mniejszy niż n + 1 i na
pewno nie większy niż 2(n + 1). Aby jednak odpowiedzieć na pytanie
jaki jest rzeczywisty maksymalny rząd, musimy odwołać się do pewnych
faktów z teorii aproksymacji w przestrzeniach unitarnych, a ściślej, do
własności ciągów wielomianów ortogonalnych.

10.2 Ciągi wielomianów ortogonalnych

Waga ρ definiuje nam przestrzeń L

2

(a, b) funkcji ciaągłych o warto-

ściach rzeczywistych, określonych na przedziale (a, b) i takich, że całka

R

b

a

f

2

(x)ρ(x) dx istnieje i jest skończona. W L

2

(a, b) wprowadzimy ilo-

czyn skalarny

hf, gi =

Z

b

a

f

(x)g(x)ρ(x) dx

background image

120

ROZDZIAŁ 10. CAŁKOWANIE A APROKSYMACJA

i generowaną przez ten iloczyn normę

kfk =

q

hf, fi =

s

Z

b

a

f

2

(x)ρ(x) dx.

W ten sposób, L

2

(a, b) jest przestrzenią unitarną i można mówić o

ortogonalności (prostopadłości) elementów w tej przestrzeni.

Definicja 10.2 Ciąg wielomianów p

k

, k = 0, 1, 2, . . ., nazywamy cią-

giem wielomianów ortogonalnych w przestrzeni

L

2

(a, b) jeśli

(i) wielomian p

k

jest stopnia dokładnie k,

deg p

k

= k,

∀k ≥ 0,

(ii) wielomiany te są wzajemnie ortogonalne w przestrzeni

L

2

(a, b),

tzn.

hp

i

, p

j

i =

Z

b

a

p

i

(x)p

j

(x)ρ(x) dx = 0,

i

6= j.

Pokażemy, że ta definicja ma sens.

Lemat 10.2 Ciąg wielomianów ortogonalnych

{p

k

}

k≥0

w przestrzeni

unitarnej

L

2

(a, b) istnieje. Jeśli dodatkowo założymy, że p

k

(x) = x

k

+

. . ., tzn. współczynnik przy najwyższej potędzie wielomianu p

k

wynosi

1, to ciąg taki jest wyznaczony jednoznacznie.

Dowód Wielomiany p

k

można skonstruować stosując proces ortogo-

nalizacji Grama-Schmidta, tzn. ortogonalizując dowolny ciąg wielomia-
nów {w

k

}

k≥0

spełniający deg w

k

= k. Rzeczywiście, weźmy np. w

k

(x) =

x

k

. Jeśli położymy p

0

= w

0

i dalej indukcyjnie

p

k

= w

k

k−1

X

j=0

hw

k

, p

j

i

hp

j

, p

j

i

p

j

,

k

1,

to, jak łatwo bezpośrednio sprawdzić, {p

k

}

k≥0

będzie ciągiem wielomia-

nów ortogonalnych i p

k

(x) = x

k

+ . . ..

Aby pokazać jednoznaczność załóżmy, że istnieje inny ciąg {q

k

}

k≥0

wielomianów ortogonalnych, w którym współczynniki przy najwyższych

background image

10.2. CIĄGI WIELOMIANÓW ORTOGONALNYCH

121

potęgach wynoszą 1. Ponieważ deg p

k

= k, ∀k, wielomiany p

0

, p

1

, . . . , p

k

tworzą bazę ortogonalną w Π

k

(ze względu na iloczyn skalarny h·, ·i), a

stąd

q

k

=

k

X

j=0

hq

k

, p

j

i

hp

j

, p

j

i

p

j

.

Z drugiej strony, dla 0 ≤ j ≤ k−1, mamy hq

k

, p

j

i = 0, bo ortogonalność

q

k

do wielomianów bazowych q

j

, 0 ≤ j ≤ k − 1, jest równoważna

ortogonalności do całej przestrzeni Π

k−1

, a w szczególności do p

j

. Stąd

q

k

= h

q

k

, p

k

i

hp

k

, p

k

i

p

k

,

a ponieważ współczynniki przy x

k

w wielomianach q

k

i p

k

są takie same,

to q

k

= p

k

. To kończy dowód.

2

Pokazaliśmy, że ciąg wielomianów ortogonalnych jest wyznaczony

jednoznacznie z dokładnością do współczynników przy najwyższych po-
tęgach x

k

. Podamy teraz kilka przykładów takich ciągów.

Wielomiany Legendre’a L

k

.

Jest to najbardziej naturalnie zdefiniowany ciąg wielomianów ortogo-
nalnych, bowiem w tym przypadku [a, b] = [1, 1] i waga jest jednost-

kowa, ρ ≡ 1. Mamy

L

k

(x) =

1

2

k

k

!

d

k

dx

k

(x

2

1)

k

,

albo

L

0

(x) = 1,

L

1

(x) = x,

L

k

(x) =

2k − 1

k

xL

k−1

(x)

k

1

k

L

k−2

(x),

k

2.

Wielomiany Czebyszewa T

k

.

Ten ciąg wielomianów poznaliśmy już w Rozdziale 7.2. Są one ortogo-
nalne w przedziale [1, 1] z wagą ρ(x) = (1 − x

2

)

1/2

. Przypomnijmy,

że T

k

(x) = cos(k arccos(x)) albo

T

0

(x) = 1,

T

1

(x) = x,

T

k

(x) = 2xT

k−1

(x) − T

k−2

(x),

k

2.

background image

122

ROZDZIAŁ 10. CAŁKOWANIE A APROKSYMACJA

Wielomiany Hermite’a H

k

.

Jest to przykład wielomianów ortogonalnych na całej prostej rzeczywi-
stej, a więc (a, b) = (−∞, +), przy czym waga ρ(x) = e

−x

2

. Wielo-

miany Hermite’a dane są wzorami

H

k

(x) = (1)

k

e

x

2

d

k

dx

k

e

−x

2

,

albo

H

0

(x) = 1,

H

1

(x) = 2x,

H

k

(x) = 2xH

k−1

(x) (2k − 2)H

k−2

(x),

k

2.

Zauważmy, że we wszystkich tych przykładach kolejny wielomian

ortogonalny zależał tylko od dwóch poprzednich. Nie jest to przypadek,
ale ogólna reguła. Wielomiany ortogonalne spełniają bowiem formułę
trójczłonową, zob. U. 10.1.

Ciągi wielomianów ortogonalnych mają również szereg innych cie-

kawych własności, co powoduje, że często używane są jako narzędzie
do aproksymacji funkcji wielomianami, zob. U. 10.2. Teraz pokażemy
tylko jedną bardzo ważną ich własność, a dokładniej, własność zer tych
wielomianów, która będzie nam potrzebna do rozwiązania problemu
kwadratur maksymalnego rzędu.

Lemat 10.3 Wielomian ortogonalny p

k

ma dokładnie k pojedynczych

i różnych zer w przedziale otwartym (a, b).

Dowód Niech y

1

, y

2

, . . . , y

s

będą wszystkimi punktami z przedziału

(a, b), w których wielomian p

k

zmienia znak. Gdyby lemat nie był praw-

dziwy to mielibyśmy s < k. Wtedy, kładąc

w

(x) = (x − y

1

)(x − y

2

) · · · (x − y

s

),

mamy hw, p

k

i = 0, bo w ∈ Π

s

i s < k. Z drugiej strony,

hw, p

k

i =

Z

b

a

w

(x)p

k

(x)ρ(x) dx 6= 0,

bo funkcja podcałkowa jest albo stale dodatnia, albo stale ujemna (z
wyjątkiem zbioru miary zero). Ta sprzeczność kończy dowód.

2

background image

10.3. KWADRATURY GAUSSA

123

10.3 Kwadratury Gaussa

Dla dowolnej n, niech x

0

, x

1

, . . . , x

n

będą (różnymi) zerami (n+1)-szego

wielomianu p

n+1

w ciągu wielomianów ortogonalnych w przestrzeni uni-

tarnej L

2

(a, b), tzn.

p

n+1

(x) = (x − x

0

)(x − x

1

) · · · (x − x

n

).

(10.1)

Ponieważ x

j

leżą w przedziale (a, b), możemy mówić o kwadraturze

interpolacyjnej opartej na tych węzłach.

Definicja 10.3 Kwadraturę interpolacyjną Q

GS

n

opartą na zerach wie-

lomianu ortogonalnego p

n+1

nazywamy kwadraturą Gaussa.

Okazuje się, że właśnie kwadratury Gaussa mają najwyższy rząd.

Dokładniej, mamy następujące twierdzenie.

Twierdzenie 10.2 Kwadratura Gaussa Q

GS

n

ma najwyższy rząd spo-

śród wszystkich kwadratur opartych na węzłach o łącznej krotności n+1,
oraz

rz(Q

GS

n

) = 2n + 2.

Dowód Wobec Lematu 10.1(ii) wystarczy pokazać, że kwadratura Q

GS

n

jest dokładna dla każdego wielomianu stopnia nie większego niż 2n + 1.
Niech f ∈ Π

2n+1

. Niech w

f

Π

n

będzie wielomianem interpolującym

f

w węzłach-zerach x

0

, . . . , x

n

wielomianu p

n+1

. Jeśli deg f ≤ n to

oczywiście w

f

= f i Q

GS

n

(f) = S

ρ

(w

f

) = S

ρ

(f). Jeśli zaś

n

+ 1 deg f ≤ 2n + 1,

to f − w

f

jest wielomianem stopnia tego samego co f i zeruje się w x

j

,

0 ≤ j ≤ n. Stąd

f

(x) − w

f

(x) = (x − x

0

)(x − x

1

) · · · (x − x

n

)g(x),

gdzie g jest wielomianem,

deg g = deg f − (n + 1) (2n + 1) (n + 1) = n.

background image

124

ROZDZIAŁ 10. CAŁKOWANIE A APROKSYMACJA

Korzystając z (10.1) i faktu, że p

n+1

jest prostopadły do Π

n

, ostatecznie

otrzymujemy

S

ρ

(f) − Q

GS

n

(f) =

Z

b

a

(f(x) − w

f

(x))ρ(x) dx

=

Z

b

a

(x − x

0

) · · · (x − x

n

)g(x)ρ(x) dx

=

Z

b

a

p

n+1

(x)g(x)ρ(x) = hp

n+1

, g

i = 0,

co kończy dowód.

2

Zajmiemy się teraz błędem kwadratur Gaussa. Pokażemy, że również

ze względu na błąd mają one dobre własności.

Twierdzenie 10.3 Jeśli f

C

2n+2

([a, b]) to błąd kwadratury Gaussa

Q

GS

n

wyraża się wzorem

S

ρ

(f) − Q

GS

n

(f) = kp

n+1

k

2

f

(2n+2)

(ξ)

(2n + 2)!

,

gdzie ξ

[a, b]. Stąd, w szczególności,

max

f ∈F

2

n+1

M

([a,b])

|S

ρ

(f) − Q

GS

n

(f)| =

M

kp

n+1

k

2

(2n + 2)!

.

Dowód Niech w

f

Π

n

będzie wielomianem interpolującym f w zerach

x

j

wielomianu p

n+1

. Niech ˜

w

f

Π

2n+1

będzie z kolei wielomianem

(Hermite’a) interpolującym f w dwukrotnych węzłach x

j

, tzn. takim,

że ˜

w

f

(x

j

) = f(x

j

) i ˜

w

f

(x

j

) = f

(x

j

), 0 ≤ j ≤ n. Ponieważ rz(Q

GS

n

) =

2n + 2 to Q

GS

n

( ˜

w

f

) = S

ρ

( ˜

w

f

), a stąd i ze wzoru na błąd interpolacji

Hermite’a mamy

S

ρ

(f) − Q

GS

n

(f) = S

ρ

(f) − Q

GS

n

(w

f

) = S

ρ

(f) − Q

GS

n

( ˜

w

f

)

= S

ρ

(f) − S

ρ

( ˜

w

f

) =

Z

b

a

(f(x) ˜

w

f

(x))ρ(x) dx

=

Z

b

a

(x − x

0

)

2

· · · (x − x

n

)

2

f

(x

0

, . . . , x

n

, x

)ρ(x) dx

=

Z

b

a

p

2

n+1

(x)ρ(x)f(x

0

, . . . , x

n

, x

) dx.

background image

10.3. KWADRATURY GAUSSA

125

Ponieważ funkcja p

2

n+1

(x)ρ(x) jest prawie wszędzie dodatnia, możemy

teraz zastosować twierdzenie o wartości średniej, aby ostatecznie otrzy-
mać

S

ρ

(f) − Q

GS

n

(f) =

f

(2n+2)

(ξ)

(2n + 2)!

Z

b

a

p

2

n+1

(x)ρ(x) dx

=

f

(2n+2)

(ξ)

(2n + 2)! k

p

n+1

k

2

,

co kończy dowód.

2

Na końcu, zwrócimy jeszcze uwagę na inną, bardzo ważną własność

kwadratur Gaussa, a mianowicie, że ich współczynniki są dodatnie.
Rzeczywiście, zapisując

Q

GS

n

(f) =

n

X

j=0

a

j

f

(x

j

)

i podstawiając

f

j

(x) = (x − x

0

)

2

· · · (x − x

j−1

)

2

(x − x

j+1

)

2

· · · (x − x

n

)

2

mamy, że f

j

Π

2n

i f

j

jest prawie wszędzie dodatnia. Stąd

0 < S

ρ

(f

j

) = Q

GS

n

(f

j

) = a

j

f

j

(x

j

)

i a

j

>

0, bo f

j

(x

j

) > 0. Przypomnijmy, że dodatniość współczynni-

ków kwadratury ma duże znaczenie przy numerycznym ich obliczaniu,
zwłaszcza gdy funkcja podcałkowa f ma stały znak, zob. Rozdział 2.5.2.

Mimo niewątpliwych zalet kwadratur Gaussa, ich stosowalność ogra-

niczają trudności w wyliczeniu pierwiastków wielomianów ortogonal-
nych, gdy stopień wielomianu jest duży. Wyjątkiem są tutaj kwadra-
tury interpolacyjne oparte na zerach wielomianów Czebyszewa, zob. U.
10.3.

Uwagi i uzupełnienia

U. 10.1 Pokażemy teraz, że wielomiany ortogonalne {p

k

}

k≥0

w danej prze-

strzeni L

2

(a, b) spełniają następującą formulę trójczłonową. Załóżmy dla

background image

126

ROZDZIAŁ 10. CAŁKOWANIE A APROKSYMACJA

uproszczenia, że współczynnik przy x

k

w wielomianie p

k

jest dla każdego k

jednością. Wtedy istnieją liczby β

k

(dla k ≥ 1) i γ

k

> 0 (dla k

2) takie, że

p

0

(x) = 1,

p

1

(x) = (x − β

1

),

(10.2)

p

k

(x) = (x − β

k

)p

k−1

(x) − γ

k

p

k−2

(x),

k

2.

Aby to pokazać zauważmy, że p

k

można dla k ≥ 1 przedstawić w postaci

rozwinięcia

p

k

(x) = (x − c

k−1

)p

k−1

(x) +

k−2

X

j=0

c

j

p

j

(x).

Mnożąc skalarnie obie strony tego równania przez p

s

dla 0 ≤ s ≤ k − 3,

otrzymujemy

0 = hp

k

(x), p

s

(x)i = h(x − c

k−1

)p

k−1

(x), p

s

(x)i + c

s

hp

s

(x), p

s

(x)i.

Wobec tego, że (x−c

k−1

)p

s

(x) jest wielomianem stopnia mniejszego niż k−1,

mamy

h(x − c

k−1

)p

k−1

(x), p

s

(x)i = hp

k−1

(x), (x − c

k−1

)p

s

(x)i = 0,

a stąd c

s

hp

s

(x), p

s

(x)i = 0 i c

s

= 0. Możemy więc napisać, że dla k = 1

mamy p

1

(x) = (x − β

1

), a dla k ≥ 2,

p

k

(x) = (x − β

k

)p

k−1

(x) − γ

k

p

k−2

(x),

(10.3)

gdzie β

k

= c

k−1

i γ

k

= c

k−2

. Aby jawnie wyznaczyć β

k

i γ

k

, pomnożymy

skalarnie obie strony równania (10.3) kolejno przez p

k−1

i p

k−2

. Otrzymujemy

0 = hp

k

(x), p

k−1

i

= h(x − β

k

)p

k−1

(x), p

k−1

(x)i − γ

k

hp

k−2

(x), p

k−1

(x)i

= hxp

k−1

(x), p

k−1

(x)i − β

k

hp

k−1

(x), p

k−1

(x)i,

czyli

β

k

= h

xp

k−1

(x), p

k−1

(x)i

hp

k−1

(x), p

k−1

(x)i

,

oraz

0 = hp

k

(x), p

k−2

(x)i

= h(x − β

k

)p

k−1

(x), p

k−2

(x)i − γ

k

hp

k−2

(x), p

k−2

(x)i

= hp

k−1

(x), xp

k−2

(x)i − γ

k

hp

k−2

(x), p

k−2

(x)i,

background image

10.3. KWADRATURY GAUSSA

127

a stąd i z równości hp

k−1

(x), xp

k−2

(x)i = hp

k−1

(x), p

k−1

(x)i,

γ

k

= h

p

k−1

(x), p

k−1

(x)i

hp

k−2

(x), p

k−2

(x)i

.

Zauważmy, że z formuły trójczłonowej wynika w szczególności algorytm

wyznaczenia ciągu wielomianów ortogonalnych. Wystarczy bowiem wyzna-
czać kolejne współczynniki β

k

i γ

k

(obliczając odpowiednie iloczyny skalarne

hxp

k

(x), p

k

(x)i i hp

k

(x), p

k

(x)i) i stosować wzór rekurencyjny (10.2). Do-

dajmy jeszcze, że w obliczeniach numerycznych najlepiej jest przechowywać
informację o ciągu {p

k

}

k≥0

po prostu w postaci liczb β

k

i γ

k

.

U. 10.2 Wygodnie jest posłużyć się wielomianami ortogonalnymi w przy-
padku, gdy chcemy znaleźć najlepszą aproksymację danej funkcji f wielomia-
nem ustalonego stopnia n, i błąd mierzymy w normie przestrzeni L

2

(a, b).

Rzeczywiście, jak wiadomo, najlepszą aproksymacją dla f w przestrzeni Π

n

jest jej rzut prostopadły na Π

n

. Ponieważ n + 1 początkowych wielomianów

ortogonalnych p

k

, 0 ≤ k ≤ n, tworzy bazę w Π

n

, rzut ten wyraża się wzorem

w

f

=

n

X

k=0

hf, p

k

i

hp

k

, p

k

i

p

k

.

U. 10.3 Zachodzi następujące twierdzenie Łuzina. Niech przedział [a, b] bę-
dzie skończony. Niech Q

n

(f) =

P

n

j=0

a

(n)
j

f (x

(n)
j

) będzie takim ciągiem kwa-

dratur, że:

(i) wszystkie współczynniki a

(n)
j

są dodatnie,

(ii) rząd kwadratur Q

n

rośnie do nieskończoności gdy n → ∞.

Wtedy ciąg Q

n

(f) zbiega do

R

b

a

f (x)dx dla każdej funkcji ciągłej f .

Zauważmy, że twierdzenie to stosuje się do ciągu kwadratur Gaussa Q

GS

n

,

ale nie do ciągu kwadratur Newtona-Cotesa Q

N C

m

, ponieważ w tych ostatnich

pojawiają się dla dużych n współczynniki ujemne.

W praktyce, najczęściej stosuje się ciąg kwadratur interpolacyjnych opar-

tych na zerach kolejnych wielomianów Czebyszewa, ponieważ zera te dane są
jawnie i “zagęszczają się”, tzn. zera wielomianu Czebyszewa T

k

są też zerami

wielomianu T

2k

. Powstające w ten sposób kwadratury noszą nazwę formuł

Clanshow-Curtis’a. Są one w pewnym sensie uniwersalne, bowiem posiadają
optymalną szybkość zbieżności n

(r+1)

w klasach F

r

M

([a, b]) dla dowolnych

r i M .

background image

128

ROZDZIAŁ 10. CAŁKOWANIE A APROKSYMACJA

U. 10.4 Jeśli przedział całkowania jest skończony i waga jest jednostkowa
to kwadratury Gaussa (a dokładniej kwadratury Legendre’a) można użyć
do tworzenia kwadratur złożonych ¯

Q

GS

r,k

, gdzie k oznacza liczbę podprzedzia-

łów. Łatwo widać, że dla f ∈ F

2r+1

M

([a, b]), błąd takiej kwadratury można

oszacować przez

|S(f) ¯

Q

GS

r,k

| ≤

M (b

− a)

2r+3

(2r + 2)!

1

k

2r+2

,

czyli jest on porównywalny do błędu “zwykłej” złożonej kwadratury interpo-
lacyjnej. Jednak złożona kwadratura Legendre’a korzysta z dwa razy mniej-
szej liczby węzłów.

U. 10.5 Błąd złożonej kwadratury Legendre’a w klasie F

2r+1

M

([a, b]) można

podać dokładnie. Wystarczy wykorzystać wzory z Ćw. 10.4 i 10.5, aby otrzy-
mać

max

f ∈F

2

r+1

M

([a,b])

|S(f) ¯

Q

GS

r,k

| = C

1

n

2r+2

,

gdzie

C =

M 2

2r+3

(r + 1)

2r+2

(2r + 3)!

(r + 2) · · · (2r + 2)

1 · 2 · · · (r + 1)

2

i n = k(r + 1) jest ogólną liczbą węzłów na [a, b].

Ćwiczenia

Ćw. 10.1 Uzasadnić, że:
(a) jeśli kwadratura jest dokładna dla dowolnych n + 1 wielomianów tworzą-
cych bazę w Π

n

, to jest ona rzędu co najmniej n + 1, oraz

(b) jeśli kwadratura jest rzędu n + 1 to jest ona niedokładna dla każdego
wielomianu stopnia dokładnie n + 1.

Ćw. 10.2 Uzasadnić, że kwadratura prostokątów jest kwadraturą Legen-
dre’a, natomiast żadna z kwadratur Newtona-Cotesa Q

N C

n

nie jest kwadra-

turą Gaussa.

Ćw. 10.3 Załóżmy, że dane są liczby β

k

i γ

k

definiujące ciąg wielomia-

nów ortogonalnych przez formułę trójczłonową. Zaproponować ekonomiczny
(tzn. o koszcie proporcjonalnym do n) algorytm obliczania wartości n-tego
wielomianu ortogonalnego w danym punkcie x, wykorzystujący formułę trój-
członową.

background image

10.3. KWADRATURY GAUSSA

129

Ćw. 10.4 Niech x

j

, 0 ≤ j ≤ n, będą zerami (n + 1)-szego wielomianu

Legendre’a. Pokazać, że

Z

1

1

(x − x

0

)

2

(x − x

1

)

2

· · · (x − x

n

)

2

dx

=

2

2n+3

2n + 3

1 · 2 · · · n · (n + 1)

(n + 2)(n + 3) · · · (2n + 2)

2

.

Wskazówka. Wykorzystać fakt, że dla n-tego wielomianu Legendre’a mamy

R

1

1

L

2

n

(x)dx = (2n + 1)

1

.

Ćw. 10.5 Niech

Q

GS

n

(f) =

n

X

j=0

a

j

f (x

j

)

będzie kwadraturą interpolacyjną opartą na zerach (n+1)-ezego wielomianu
Legendre’a. Niech −∞ < a < b < ∞. Pokazać, że wtedy kwadratura

˜

Q

GS

n

(f) =

b

− a

2

n

X

j=0

f

a +

x

j

+ 1

2

(b − a)

jest kwadraturą Gaussa opartą na n + 1 węzłach, dla całki na przedziale
(a, b) z wagą jednostkową. Ponadto, jeśli f ∈ C

(2n+2

)([a, b]), to

Z

b

a

f (x) dx

˜

Q

GS

n

(f) =

b

− a

2

2n+3

1 · 2 · · · (n + 1)

(n + 2) · · · (2n + 2)

2

f

(2n+2)

(ξ)

(2n + 3)!

.

Ćw. 10.6 Niech ρ ≡ 1 i −∞ < a < b < +. Pokazać, że jeśli kwadratura
Q oparta na n + 1 węzłach jest rzędu r

≥ n + 1, to odpowiadająca jej

kwadratura złożona ¯

Q

k

ma następującą własność. Jeśli f ∈ C

(r)

([a, b]) to

|S(f) ¯

Q

k

(f)| ≤

1

k

r−1

(b − a)

r

r!

kf

(r)

k

C

([a,b])

.

Ćw. 10.7 Niech x

j

, 0 ≤ j ≤ n, będą zerami (n + 1)-szego wielomianu

ortogonalnego Legendre’a (tzn. na przedziale [1, 1] z wagą 1). Niech dla

0 ≤ j ≤ n,

w

j

=

Z

1

1

(x − x

0

) · · · (x − x

j−1

)(x − x

j+1

) · · · (x − x

n

)

(x

j

− x

0

) · · · (x

j

− x

j−1

)(x

j

− x

j+1

) · · · (x

j

− x

n

)

dx.

Pokazać, że jeśli f i g są wielomianami stopnia nie większego niż n, to ich
iloczyn skalarny w L

2,1

(1, 1),

hf, gi =

Z

1

1

f (x)g(x) dx =

n

X

j=0

w

j

f (x

j

)g(x

j

).

background image

130

ROZDZIAŁ 10. CAŁKOWANIE A APROKSYMACJA

background image

Rozdział 11

Iteracje dla równań
liniowych

Algorytmy rozwiązywania układów równań liniowych postaci

A~x

= ~b,

gdzie A jest nieosobliwą macierzą rzeczywistą n × n, a ~b jest wektorem

rzeczywistym w R

n

, które rozpatrywaliśmy w Rozdziałach 3, 4 i 5, na-

leżą do grupy algorytmów dokładnych albo bezpośrednich. To znaczy, że
po wykonaniu skończonej liczby dopuszczalnych operacji elementarnych
dostajemy w arytmetyce idealnej dokładne rozwiązanie

~x

= A

1

~b.

W tym rozdziale zajmiemy się algorytmami iteracyjnymi rozwiązy-

wania układów równań liniowych. Polegają one na tym, że, startując
z pewnego przybliżenia początkowego ~x

0

, konstruuje się ciąg kolejnych

przybliżeń

~x

k

= Φ

k

(A,~b; ~x

0

),

k

= 1, 2, . . . ,

które w granicy osiągają rozwiązanie dokładne,

lim

k→∞

~x

k

= ~x

.

131

background image

132

ROZDZIAŁ 11. ITERACJE DLA RÓWNAŃ LINIOWYCH

11.1 Kiedy stosujemy iteracje?

Jasne jest, że algorytmy iteracyjne stosujemy wtedy, gdy są one konku-
rencyjne w stosunku do algorytmów bezpośrednich. Dlatego przekształ-
cenia Φ

k

należy wybierać tak, aby kolejne przybliżenia można było ła-

two obliczać i jednocześnie kolejne błędy k~x

k

− ~x

k szybko zbiegały do

zera.

Zwykle zakłada się również, że dokładne rozwiązanie ~x

jest punk-

tem stałym przekształcenia Φ

k

(A,~b; ·). Wtedy kolejne błędy spełniają

zależność

~x

k

− ~x

= Φ

k

(A,~b; ~x

0

) Φ

k

(A,~b; ~x

).

Jeśli teraz Φ

k

(A,~b; ·) są lipschitzowskie ze stałymi m

k

<

+, tzn. dla

pewnej normy wektorowej k · k mamy

kΦ

k

(~x) Φ

k

(~y)k ≤ m

k

k~x − ~yk,

∀~x, ~y,

to

k~x

k

− ~x

k ≤ m

k

k~x

0

− ~x

k.

Warunek lim

k→∞

m

k

= 0 jest więc dostateczny na to, aby metoda była

zbieżna dla dowolnego przybliżenia początkowego ~x

0

, przy czym szyb-

kość zbieżności zależy od tego, jak szybko m

k

maleją do zera. Dla więk-

szości stosowanych metod Φ

k

jest funkcją liniową błędu początkowego,

tzn.

Φ

k

(A,~b; ~x

0

− ~x

) = M

k

(~x

0

− ~x

),

gdzie M

k

jest pewną macierzą. Wtedy jako m

k

można przyjąć normę

tej macierzy,

m

k

= kM

k

k = sup

k~

xk=1

kM

k

~x

k.

Dla ilustracji, rozpatrzmy ogólną metodę iteracji prostej, w której

~x

k

= B~x

k−1

+ ~c,

(11.1)

dla pewnej macierzy B wymiaru n × n i wektora ~c ∈ R

n

. W tym

przypadku

~x

k

− ~x

= B

k

(~x

0

− ~x

),

background image

11.1. KIEDY STOSUJEMY ITERACJE?

133

a stąd i z nierówności kB

k

k ≤ kBk

k

, mamy

k~x

k

− ~x

k ≤ kBk

k

k~x

0

− ~x

k.

Warunkiem dostatecznym zbieżności iteracji prostych jest więc kBk <

1. Mówimy, że metoda jest zbieżna liniowo z ilorazem kBk.

Przykład 11.1 Rozkładając macierz A = (a

i,j

)

n

i,j=1

na sumę

A

= D + C,

gdzie D jest macierzą diagonalną składającą się z wyrazów stojących
na głównej przekątnej macierzy A, układ A~x = ~b jest równoważny
układowi

D~x

= −C~x + ~b,

a stąd (o ile na przekątnej macierzy A nie mamy zera) otrzymujemy
metodę iteracyjną

~x

k

= B~x

k−1

+ ~c,

gdzie B = −D

1

C

i ~c = D

1

~b, zwaną metodą Jacobiego.

W metodzie Jacobiego warunek dostateczny zbieżności, kBk < 1,

jest spełniony wtedy, gdy macierz A ma dominującą przekątną, tzn.
gdy

2|a

i,i

| >

n

X

j=1

|a

i,j

|,

1 ≤ i ≤ n.

(11.2)

Rzeczywiście, ponieważ wyraz (i, j) macierzy D

1

C

wynosi 0 dla i = j

i a

i,j

/a

i,i

dla i 6= j, to

kD

1

C

k

= max

1≤i≤n

n

X

j=1,j6=i

|a

i,j

|/|a

i,i

|

= max

1≤i≤n

n

X

j=1

|a

i,j

|/|a

i,i

| − 1 < 1,

przy czym ostatnia nierówność wynika z (11.2).

Inne przykłady iteracji prostych podane są w U. 11.3 i Ćw. 11.2.
Zastanówmy się teraz nad złożonością metod iteracyjnych. Ponieważ

możemy jedynie znaleźć pewne przybliżenie rozwiązania dokładnego ~x

,

background image

134

ROZDZIAŁ 11. ITERACJE DLA RÓWNAŃ LINIOWYCH

przez złożoność metody będziemy rozumieli koszt kombinatoryczny ob-
liczenia ~x

k

z zadaną dokładnością ε > 0. Dla uproszczenia założymy, że

medoda jest zbieżna liniowo z ilorazem m. Zauważmy, że aby zreduko-
wać błąd początkowy do ε > 0, wystarczy wykonać k = k(ε) iteracji,
gdzie k spełnia

m

k

k~x

0

− ~x

k ≤ ε,

czyli

k

log(1) log(1/k~x

0

− ~x

k)

log(1/m)

.

Liczba ta zależy więc w istotny sposób od błędu początkowego i (przede
wszystkim) od stałej Lipschitza m, natomiast zależność od dokładności
ε

i wymiaru n układu jest dużo mniej istotna. Zakładając, że koszt jed-

nej iteracji wynosi c = c(n) (zwykle c(n) jest tym mniejszy, im mniejsza
jest liczba niezerowych elementów macierzy A), złożoność metody jest
proporcjonalna do

c

(n)

log(1)

log(1/m)

.

Stąd oczywisty wniosek, że metody iteracyjne warto stosować zamiast
metod bezpośrednich w przypadku gdy

wymiar n układu A~x = ~b jest “duży”, oraz

macierz A układu jest “rozrzedzona”, tzn. ma stosunkowo nie-

wielką liczbę elementów niezerowych, np. proporcjonalną do n.

Układy o tych własnościach powstają często przy numerycznym roz-
wiązywaniu równań różniczkowych cząstkowych.

Zaletą metod iteracyjnych jest również ich prostota, przez co są one

łatwe do zaprogramowania.

11.2 Metoda Czebyszewa

Zauważyliśmy, że ze względu na szybkość zbieżności metody iteracyjnej
ważne jest, aby stałe lipschitzowskie m

k

odwzorowań Φ

k

malały jak

najszybciej. Metoda Czebyszewa, którą przedstawimy w tym rozdziale,
jest właśnie próbą minimalizacji tych stałych.

background image

11.2. METODA CZEBYSZEWA

135

Przy opisie metody będziemy korzystać z następujących dwóch fak-

tów, które sformułujemy jako lematy.

Lemat 11.1 Jeśli macierz A jest symetryczna, to istnieje ortonor-
malna w
R

n

baza jej wektorów własnych ~

ξ

j

, 1

≤ j ≤ n, tzn.

h~ξ

i

, ~

ξ

j

i

2

=

T

i

~

ξ

j

=

(

0

i

6= j,

1

i

= j,

a odpowiadające im wartości własne λ

j

, A~

ξ

j

= λ

j

~

ξ

j

, są rzeczywiste.

Jeśli ponadto A jest dodatnio określona to λ

j

są dodatnie.

Lemat 11.2 Niech macierz A będzie symetryczna i niech

1

| ≥ |λ

2

| ≥ · · · ≥ |λ

n

|

będą jej wartościami własnymi. Wtedy

kAk

2

= sup

~

x6=~0

kA~xk

2

k~xk

2

=

1

|.

Jeśli ponadto A jest nieosobliwa, tzn.

n

| > 0, to

kA

1

k

2

=

1

n

|

.

Lemat 11.1 jest znanym faktem z algebry liniowej, więc dowód po-

miniemy. Dowód Lematu 11.2 podany jest w U. 11.1.

Zakładamy, że macierz A wyjściowego układu równań jest syme-

tryczna i dodatnio określona.

A

= A

T

>

0,

a jej wartości własne λ

j

leżą w znanym przedziale [a, b],

0 < a ≤ λ

n

≤ · · · ≤ λ

1

= kAk

2

≤ b < ∞.

W metodzie Czebyszewa kolejne przybliżenia ~x

k

konstruujemy tak,

aby była spełniona równość

(~x

k

− ~x

) = W

k

(A)(~x

0

− ~x

),

(11.3)

background image

136

ROZDZIAŁ 11. ITERACJE DLA RÓWNAŃ LINIOWYCH

gdzie W

k

(A) jest macierzą, która wielomianowo zależy od A,

W

k

(A) =

k

X

j=0

a

(k)
j

A

k

,

i ma możliwie małą normę. (Dalej będziemy również używać tego sa-
mego symbolu W

k

do oznaczenia wielomianu zmiennej rzeczywistej,

tzn. dla t ∈ R mamy W

k

(t) =

P

k

j=0

a

(k)
j

t

k

.) Możemy więc napisać, że

~x

k

= W

k

(A)~x

0

+ (I − W

k

(A))~x

.

Aby zapewnić konstruowalność przybliżenia ~x

k

, musimy umieć obliczać

(I − W

k

(A))~x

. Ponieważ

(I − W

k

(A))~x

=

k

X

j=1

a

(k)
j

A

j

~x

+ (1 − a

(k)
0

)~x

=

k−1

X

j=0

a

(k)
j+1

A

j

~b + (1 − a

(k)
0

)~x

,

dla konstruowalności ~x

k

wystarczy założyć, że a

(k)
0

= 1, co odpowiada

warunkowi

W

k

(0) = 1,

∀k.

(11.4)

Z nierówności (11.3) mamy

k~x

k

− ~x

k

2

≤ kW

k

(A)k

2

k~x

0

− ~x

k

2

.

Idea metody polega teraz na wyborze wielomianów W

k

tak, aby miały

one jak najmniejszą normę kW

k

(A)k

2

. W tym celu zauważmy, że ma-

cierz W

k

(A) jest symetryczna, a jej wartości własne wynoszą W

k

(λ

j

),

gdzie λ

j

są wartościami własnymi macierzy A, zob. Ćw. 11.1. Stąd

kW

k

(A)k

2

max

a≤t≤b

|W

k

(t)| = kW

k

k

C

([a,b])

.

Rozwiązanie problemu minimalizacji ostatniego maksimum ze względu
na wszystkie wielomiany W

k

Π

k

takie, że W

k

(0) = 1, jest podane

w Rozdziale 7 (zob. Ćw. 7.8). Przypomnijmy, że optymalny wielomian
dany jest wzorem

W

k

(t) =

T

k

(h(t))

T

k

(h(0))

,

background image

11.2. METODA CZEBYSZEWA

137

gdzie T

k

jest k-tym wielomianem Czebyszewa, a

h

(t) =

2t − (b + a)

b

− a

.

Przypomnijmy również, że wielomiany Czebyszewa spełniają formułę
trójczłonową, T

0

(t) = 1, T

1

(t) = t, oraz T

k

(t) = 2tT

k−1

(t)−T

k−2

dla k ≥

2. Pozwala to na rekurencyjną konstrukcję kolejnych ~x

k

w zależności od

~x

k−1

i ~x

k−2

. Dokładniej, dla pierwszego przybliżenia mamy

W

1

(A) =

T

1

(h(A))

T

1

(h(0))

=

2A−(b+a)I

b−a

b+a
b−a

= I −

2

b

+ a

A,

a stąd

~x

1

= W

1

(A)~x

0

+ (I − W

1

(A))~x

= ~x

0

+

2

b

+ a

(~b − A~x

0

)

= ~x

0

+

2

b

+ a

~r

0

,

gdzie ~r

0

= ~b − A~x

0

jest początkowym residuum.

Dla k ≥ 2 wykorzystamy formułę rekurencyjną dla wielomianów

Czebyszewa. Oznaczając t

j

= T

j

(h(0)), j ≥ 0, mamy

W

k

(A) =

T

k

(h(A))

t

k

=

2h(A)T

k−1

(h(A)) − T

k−2

(h(A))

t

k

= 2

t

k−1

t

k

h

(A)

T

k−1

(h(A))

t

k−1

t

k−2

t

k

T

k−2

(h(A))

t

k−2

= 2

t

k−1

t

k

h

(A)W

k−1

(A)

t

k−2

t

k

W

k−2

(A).

Stąd

~x

k

− ~x

= W

k

(A)(~x

0

− ~x

)

= 2

t

k−1

t

k

h

(A)W

k−1

(~x

0

− ~x

)

t

k−2

t

k

W

k−2

(A)(~x

0

− ~x

)

= 2

t

k−1

t

k

h

(A)(~x

k−1

− ~x

)

t

k−2

t

k

(~x

k−2

− ~x

)

background image

138

ROZDZIAŁ 11. ITERACJE DLA RÓWNAŃ LINIOWYCH

= 2

t

k−1

t

k

2

b

− a

A

b

+ a

b

− a

I

(~x

k−1

− ~x

)

t

k−2

t

k

(~x

k−2

− ~x

)

=

4

b

− a

t

k−1

t

k

~r

k−1

2

t

k−1

t

k

b

+ a

b

− a

~x

k−1

t

k−2

t

k

~x

k−2

+

2

t

k−1

t

k

b

+ a

b

− a

+

t

k−2

t

k

~x

.

Wykorzystując wynikającą z formuły trójczłonowej równość

t

k

= 2

b

− a

b

+ a

t

k−1

− t

k−2

otrzymujemy ostatecznie

~x

k

= (1 + α

k

)~x

k−1

− α

k

~x

k−2

− β

k

~r

k−1

,

gdzie α

k

= t

k−2

/t

k

i β

k

= (4t

k−1

)/(t

k

(b + a)). Algorytm wynikający z

metody Czebyszewa można więc zapisać następująco.

~x

0

:= {dowolne};

~r

0

:= ~b − A~x

0

;

~x

1

:= ~x

0

+ 2~r

0

/

(b + a);

~r

1

:= ~b − A~x

1

;

t

0

:= 1;

t

1

:= (b + a)/(b − a);

β

:= 4/(b − a);

for j = 2, 3, . . .

do

begin

t

k

:= 2t

1

t

k−1

− t

k−2

;

α

k

:= t

k−2

/t

k

;

~x

k

:= (1 + α

k

)~x

k−1

− α

k

~x

k−2

+ β(t

k−1

/t

k

)~r

k−1

;

~r

k

:= ~b − A~x

k

end.

Zauważmy, że opisana metoda Czebyszewa jest metodą dwupunktową,
bowiem do konstrukcji kolejnego przybliżenia ~x

k

wykorzystuje się dwa

poprzednie przybliżenia ~x

k−1

i ~x

k−2

.

Zastanowimy się jeszcze nad szybkością zbieżności metody Czeby-

szewa. Wobec

kW

k

(A)k

2

= k

T

k

(h(·))k

C

([a,b])

|T

k

(h(0))|

=

1

T

k

b+a
b−a

background image

11.3. METODA NAJSZYBSZEGO SPADKU

139

mamy

k~x

k

− ~x

k

2

k~x

0

− ~x

k

T

k

b+a
b−a

.

Aby oszacować T

1

k

((b + a)/(b − a)), wykorzystamy jawną formułę na

T

k

(t) z Ćw. 7.2. Oznaczając t = (b + a)/(b − a) mamy dla dużych k

1

T

k

(t)

=

2

(t +

t

2

1)

k

+ (t −

t

2

1)

k

2

(t +

t

2

1)

k

=

2

b−a
b
+a

+

r

(b+a)

2

(b−a)

2

(b−a)

2

k

=

2(b − a)

k

(

b

+ √a)

2k

= 2

b

a

b

+ √a

!

k

,

a stąd w przybliżeniu

k~x

k

− ~x

k

2

2

q

b/a

1

q

b/a

+ 1

k

k~x

0

− ~x

k

2

.

Metoda Czebyszewa jest więc zbieżna co najmniej liniowo z ilorazem
(

q

b/a

1)/(

q

b/a

+ 1). Zauważmy jeszcze, że jeśli a i b są odpowiednio

najmniejszą i największą wartością własną macierzy A, to b = kAk

2

,

1/a = kA

1

k

2

, a stąd b/a = kAk

2

kA

1

k

2

= cond(A) i metoda jest

zbieżna z ilorazem

q

cond(A) 1

q

cond(A) + 1

.

Po raz kolejny widzimy tu ważną rolę uwarunkowania macierzy. Im
uwarunkowanie jest gorsze tym gorsza zbieżność metody Czebyszewa.

11.3 Metoda najszybszego spadku

Tak jak poprzednio, będziemy zakładać, że macierz A układu jest sy-
metryczna i dodatnio określona. Wtedy zachodzi następujący fakt.

background image

140

ROZDZIAŁ 11. ITERACJE DLA RÓWNAŃ LINIOWYCH

Lemat 11.3 Rozwiązanie ~x

układu A~x = ~b jest jedynym wektorem

minimalizującym formę kwadratową

Q

(~x) =

1
2

~x

T

A~x

− ~x

T

~b.

Dowód Zauważmy, że dla dowolnych ~x i ~z mamy

Q

(~x + ~z) =

1
2

(~x

T

+ ~z

T

)A(~x + ~z) (~x

T

+ ~z

T

)~b

=

1
2

~x

T

A~x

− ~x

T

~b +

1
2

(~z

T

A~x

+ ~x

T

A~z

) − ~z

T

~b +

1
2

~z

T

A~z

= Q(~x) − z

T

(~b − ~

A~x

) +

1
2

~z

T

A~z,

przy czym w ostatniej równości wykorzystaliśmy symetrię macierzy A.
Stąd dla ~x = ~x

i ~z 6= ~0 dostajemy

Q

(~x

+ ~z) = Q(~x

) +

1
2

~z

T

A~z > Q

(~x

),

co z kolei wynika z dodatniej określoności A.

2

W metodzie najszybszego spadku konstruuje się kolejne przybliżenie

~x

k

przesuwając się od ~x

k−1

w kierunku przeciwnym do gradientu formy

Q

tak długo jak długo wartość tej formy maleje. (Przypomnijmy, że

minus gradient wyznacza kierunek lokalnie najszybszego spadku.) Po-
nieważ gradient Q w punkcie ~x

k−1

wynosi

∂Q

∂x

i

(~x

k−1

)

!

n

i=1

= A~x

k−1

−~b = −~r

k−1

,

metoda ma postać

~x

k

= ~x

k−1

+ γ

k

~r

k−1

,

(11.5)

gdzie γ

k

jest dobrane tak, aby zminimalizować Q(~x

k

). Jak łatwo się

przekonać,

Q

(~x

k

) = Q(~x

k−1

+ γ~r

k−1

)

= Q(~x

k−1

) +

1
2

γ

2

~r

T

k−1

A~r

k−1

+ γ~r

T

k−1

A~x

k−1

− γ~r

T

k−1

~b

= Q(x

k−1

) +

1
2

γ

2

~r

T

k−1

A~r

k−1

− γ~r

T

k−1

~r

k−1

background image

11.3. METODA NAJSZYBSZEGO SPADKU

141

jest jako funkcja γ parabolą, która przyjmuje minimum w

γ

k

=

~r

T

k−1

~r

k−1

~r

T

k−1

A~r

k−1

.

(11.6)

Wzory (11.5) i (11.6) definiują już w pełni metodę najszybszego spadku.

Pokażemy jeszcze zbieżność metody. W tym celu zauważmy, że

Q

(~x

k

) = Q(~x

k−1

)

1
2

(~r

T

k−1

~r

k−1

)

2

~r

k−1

A~r

k−1

≤ Q(~x

k−1

).

Ciąg Q(~x

k

) jest nierosnący i ograniczony z dołu przez Q(~x

), a więc

jest zbieżny. To wymusza

lim

k→∞

(~r

T

k−1

~r

k−1

)

2

~r

k−1

A~r

k−1

= 0,

co z kolei oznacza, że ~r

k

= ~b − A~x

k

zbiega do zera i w konsekwencji

lim

k→∞

~x

k

= ~x

.

Uwagi i uzupełnienia

U. 11.1 (Dowód Lematu 11.2) Jeśli (

j

)

n

j=1

jest ortonormalną bazą wek-

torów własnych macierzy A, to dla dowolnego wektora ~x =

P

n

j=1

α

j

~

ξ

j

mamy

kA~xk

2

2

= hA~x, A~xi

2

=

*

n

X

i=1

α

i

A(~

ξ

i

),

n

X

j=1

α

j

A(~

ξ

j

)

+

2

=

*

n

X

i=1

α

i

λ

i

~

ξ

i

,

n

X

j=1

α

j

λ

j

~

ξ

j

+

2

=

n

X

j=1

α

2

j

λ

2

j

≤ λ

2

1

n

X

j=1

α

2

j

= λ

2

1

k~xk

2

2

,

a stąd kA~xk

2

≤ |λ

1

|k~xk

2

. Z drugiej strony,

kA~ξ

1

k

2

=

1

~

ξ

1

k

2

=

1

|k~ξ

1

k

2

=

1

|,

a więc kAk

2

=

1

|.

Aby pokazać drugą część lematu zauważmy, że macierz A

1

jest też sy-

metryczna. Ma ona te same wektory własne co A, a wartości własne wynoszą
1

j

, przy czym |1

n

| ≥ · · · ≥ |1

1

|. Stąd kA

1

k

2

= |1

n

|.

background image

142

ROZDZIAŁ 11. ITERACJE DLA RÓWNAŃ LINIOWYCH

U. 11.2 Pokazaliśmy, że warunkiem dostatecznym zbieżności metody ite-
racji prostej ~x

k

= B~x

k−1

+ ~c jest kBk < 1. Okazuje się, że można podać

warunek konieczny i dostateczny. Metoda iteracji prostej jest zbieżna dla
dowolnego przybliżenia początkowego ~x

0

wtedy i tylko wtedy, gdy promień

spektralny macierzy B jest nie większy od jedności, tzn.

ρ(A) = max

|λ| < 1,

gdzie maksimum wzięte jest po wszystkich wartościach własnych macierzy
A.

U. 11.3 Przedstawiając macierz A w postaci A = L + U, gdzie L jest ma-
cierzą trójkątną dolną elementów występujących na i pod główną przekątną
A, układ równań A~x = ~b jest równoważny układowi L~x =

−U~x + ~b. Stąd

wynika metoda iteracji prostej

~x

k

= −L

1

U~x

k−1

+ L

1

~b,

zwana metodą Seidla. Można pokazać, że metoda ta jest zbieżna gdy macierz
A jest symetryczna i dodatnio określona.

U. 11.4 Pokazana metoda Czebyszewa dla macierzy A = A

T

> 0 o war-

tościach własnych z przedziału [a, b], 0 < a < b < ∞, jest metodą dwu-

punktową. Rozpatruje się też jednopunktowe, cykliczne metody Czebyszewa
postaci

~x

k

= ~x

k−1

+ α

k

~r

k−1

,

gdzie parametry α

k

są wybierane cyklicznie, α

j+m

= α

j

dla wszystkich j i

pewnej ustalonej m, oraz tak, aby zminimalizować normę macierzy przejścia
w każdym cyklu. Dokładniej, mamy ~x

k

− ~x

= (I − α

k

A)(~x

k−1

− ~x

), a stąd

~x

m

− ~x

= W

m

(A)(~x

0

− ~x

),

gdzie

W

m

(A) = (I − α

m

A)(I

− α

m−1

A)

· · · (I − α

1

A).

Wielomian W

m

(t) jest więc stopnia m, a jego pierwiastki wynoszą t

j

= 1

j

,

1 ≤ j ≤ m. Ponadto W

m

(0) = 1. Jak już wiemy, norma macierzy kW

m

(A)k

2

jest minimalna gdy W

m

(t) = W

m

(t) = T

m

(h(t))/T

m

(h(0)), gdzie h(t) =

(2x − (a + b))/(b − a). Stąd parametry α

j+m

najlepiej jest wybrać tak, aby

α

j

były odwrotnościami pierwiastków W

m

(t), czyli

α

j

=

b + a

2

b

− a

2

cos

2j − 1

2j

π

1

,

1 ≤ j ≤ m.

background image

11.3. METODA NAJSZYBSZEGO SPADKU

143

U. 11.5 Metoda najszybszego spadku należy do rodziny metod gradiento-
wych
postaci

~x

k

= ~x

k−1

+ α

k

~r

k−1

,

gdzie parametr α

k

wybiera się tak, aby zminimalizować normę

k~x

k

− ~x

k

B

=

q

(~x

k

− ~x

)

T

B(~x

k

− ~x

),

a B jest pewną macierzą, B = B

T

> 0. Zwykle przyjmuje się B = A

p

. Jak

łatwo się przekonać, metodę najszybszego spadku otrzymujemy w przypadku
p = 1, czyli B = A.

Można pokazać, że dla metod gradientowych

k~x

k

− ~x

k

B

cond(A) 1
cond(A) + 1

k

k~x

0

− ~x

k

B

.

Ćwiczenia

Ćw. 11.1 Niech A będzie macierzą symetryczną o wartościach własnych
λ

j

, 1 ≤ j ≤ n. Pokazać, że dla dowolnego wielomianu W (t) =

P

k

j=0

a

j

t

j

,

macierz

W (A) =

n

X

j=1

a

j

A

j

jest też symetryczna. Ponadto wektory własne A i W (A) są takie same, a
wartości własne W (A) wynoszą W (λ

j

) dla 1 ≤ j ≤ n.

Ćw. 11.2 Niech A = A

T

> 0. Rozpatrzmy metodę Richardsona postaci

~x

k

= (I − αA)~x

k−1

+ α~b.

gdzie α dobieramy tak, aby zminimalizować normę macierzy kI − αAk

2

.

Zauważyć, że jest to metoda iteracji prostej, ale równocześnie jednopunktowa
metoda Czebyszewa z U. 11.4 przy m = 1. Pokazać, że optymalne α wyraża
się wzorem

α

opt

=

2

λ

1

+ λ

n

,

gdzie λ

1

i λ

n

są odpowiednio największą i najmniejszą wartością własną A.

Ponadto

kI − α

opt

A

k

2

=

λ

1

− λ

n

λ

1

+ λ

n

=

cond(A) 1
cond(A) + 1

,

gdzie cond(A) = kAk

2

kA

1

k

2

.

background image

144

ROZDZIAŁ 11. ITERACJE DLA RÓWNAŃ LINIOWYCH

Ćw. 11.3 Pokazać, że warunkiem koniecznym i dostatecznym zbieżności
metody Richardsona z Ćw. 11.2, dla dowolnego przybliżenia początkowego
~x

0

, jest

0 < α <

2

kAk

2

.

(11.7)

Ponadto dla α spełniającego (11.7) iloraz zbieżności wynosi

kI − αAk

2

=

(

αλ

1

1

α

opt

< 2

1

,

1 − αλ

n

0 < α ≤ α

opt

,

gdzie α

opt

= 2/(λ

1

+ λ

n

).

Ćw. 11.4 Wykazać, że m-cykliczna jednopunktowa metoda Czebyszewa z
U. 11.4 jest zbieżna liniowo z ilorazem równym (b − a)/(b + a) dla m = 1 i

dążącym do (

b

a)/(

b +

a), gdy m

→ ∞.

Ćw. 11.5 Niech A = A

T

> 0 i niech

Q(~x) =

1
2

~x

T

A~x + ~x

T

~b.

Pokazać, że zbiór

{ ~x ∈ R

n

: Q(~x) = const. }

tworzy hiperelipsoidę w R

n

o środku A

1

~b i osiach w kierunkach wektorów

własnych macierzy A o długościach proporcjonalnych do 1/

p

λ

j

, gdzie λ

j

wartościami własnymi A.
Wskazówka. Wykorzystać Lemat 11.1.

background image

Rozdział 12

Iteracje dla równań
nieliniowych

W Rozdziale 11 analizowaliśmy metody iteracyjne dla rozwiązywania
równań liniowych A~x = ~b. Teraz zajmiemy się równaniami nielinio-
wymi
, w których zamiast operatora liniowego (macierzy) A mamy od-
wzorowanie nieliniowe f : D → R

n

, gdzie D jest podzbiorem w R

n

. Dla

uproszczenia będziemy zakładać, że ~b = ~0, gdyż w przeciwnym przy-
padku możemy zastąpić f funkcją f

1

(~x) = f(~x) −~b. Będziemy również

zakładać, że f należy do pewnej znanej klasy F funkcji przekształcają-
cych D w R

n

i mających co najmniej jedno zero w D. Zadanie polega

więc na znalezieniu rozwiązania ~x

= ~x

(f) równania nieliniowego

f

(~x) = ~0,

dla

f

∈ F.

(12.1)

Jak zwykle w przypadku, gdy danymi są funkcje zakładamy, że jedyną
informacją “a priori” o f jest, że f ∈ F . Dodatkową informację mo-

żemy zdobyć przez obliczanie wartości, a niekiedy i pochodnych f (o
ile istnieją) w wybranych punktach. Zauważmy, że metody iteracyjne
Czebyszewa i najszybszego spadku z Rozdziału 11 dla równań linio-
wych korzystały właśnie z takiej (częściowej) informacji o macierzy A,
chociaż formalnie zakładaliśmy, że dostępna jest pełna informacja o jej
współczynnikach. Dla równań nieliniowych możliwość obliczenia jedy-
nie informacji częściowej jest założeniem modelowym, a to wymusza
już fakt, że każda metoda rozwiązywania równania (12.1) może dawać
co najwyżej wynik przybliżony.

145

background image

146 ROZDZIAŁ 12. ITERACJE DLA RÓWNAŃ NIELINIOWYCH

12.1 Bisekcja

Metoda bisekcji, czyli połowienia, jest dość naturalną metodą obliczania
zer skalarnych funkcji ciągłych określonych na danym przedziale [a, b] i
zmieniających znak. Dokładniej, rozpatrzmy klasę funkcji

F

= { f ∈ C([a, b]) : f(a) < 0 < f(b) }.

(12.2)

Oczywiście, każda funkcja f ∈ F ma co najmniej jedno zero w [a, b].

Startując z przedziału [a, b], w kolejnych krokach metody bisekcji obli-
czamy informację o wartości f w środku przedziału, co pozwala nam,
w zależności od znaku obliczonej wartości, zmniejszyć o połowę prze-
dział, w którym na pewno znajduje się zero funkcji. Bisekcję realizuje
następujący ciąg poleceń, po wykonaniu którego x jest przybliżeniem
zera funkcji f z zadaną dokładnością ε.

xl

:= a; xr := b;

x

:= (a + b)/2; e := (b − a)/2;

while (e > ε) do
begin

if

(f(x) < 0) then xr := x else xl := x;

x

= (xl + xr)/2; e := e/2

end.

Z konstrukcji metody łatwo wynika, że po wykonaniu k iteracji (albo

po obliczeniu k wartości funkcji) otrzymujemy x = x

k

, które odległe jest

od pewnego rozwiązania x

o co najwyżej

|x

k

− x

| ≤

1
2

k

b

− a

2

.

(12.3)

Metoda bisekcji jest więc zbieżna liniowo z ilorazem 1/2. Choć ta zbież-
ność nie jest imponująca, bisekcja ma kilka istotnych zalet. Oprócz jej
prostoty, należy podkreślić fakt, że bisekcja jest w pewnym sensie uni-
wersalna. Dla jej zbieżności wystarcza bowiem jedynie ciągłośc funkcji.
Poza tym możemy łatwo kontrolować jej błąd. Konsekwencją (12.3) jest
bowiem następujący wniosek.

background image

12.2. ITERACJE PROSTE

147

Wniosek 12.1 Dla znalezienia zera z dokładnością ε > 0, wystarczy
obliczyć w metodzie bisekcji

k

= k(ε) =

l

log

2

(b − a)

ε

m

1

wartości funkcji.

Dodajmy jeszcze, że bisekcja minimalizuje błąd najgorszy w klasie

F

zdefiniowanej przez (12.2), wśród wszystkich algorytmów korzysta-

jących z określonej liczby obliczeń wartości funkcji, zob U. 12.1.

12.2 Iteracje proste

Przedstawimy teraz metodę iteracji prostych dla rozwiązywania rów-
nań nieliniowych, którą można traktować jako uogólnienie iteracji pro-
stych dla równań liniowych. Najpierw równanie (12.1) przekształcamy
do równania równoważnego (tzn. mającego te same rozwiązania)

~x

= φ(~x).

(12.4)

Następnie, startując z pewnego przybliżenia początkowego ~x

0

, konstru-

ujemy ciąg kolejnych przybliżeń ~x

k

według wzoru

~x

k

= φ(~x

k−1

),

k

1.

Twierdzenie 12.1 Niech D

0

będzie domkniętym podzbiorem dziedziny

D,

D

0

= D

0

⊂ D,

w którym φ jest odwzorowaniem zwężającym. To znaczy, φ(D

0

) ⊂ D

0

,

oraz istnieje stała 0

≤ L < 1 taka, że

(~x) − φ(~y)k ≤ L k~x − ~yk,

∀~x, ~y ∈ D

0

.

Wtedy równanie (12.4) ma dokładnie jedno rozwiązanie ~x

, oraz

~x

= lim

k→∞

~x

k

,

dla dowolnego przybliżenia początkowego ~x

0

∈ D

0

.

background image

148 ROZDZIAŁ 12. ITERACJE DLA RÓWNAŃ NIELINIOWYCH

Dowód Wobec

k~x

k

− ~x

k−1

k = (~x

k−1

) − φ(~x

k−2

)k ≤ L k~x

k−1

− ~x

k−2

k

≤ · · · ≤ L

k−1

k~x

1

− ~x

0

k,

dla k ≥ s mamy

k~x

k

− ~x

s

k ≤

k

X

j=s+1

k~x

j

− ~x

j−1

k ≤

k

X

j=s+1

L

j−1

k~x

1

− ~x

0

k

= L

s

(1 + L + · · · + L

k−s−1

)k~x

1

− ~x

0

k ≤

L

s

1 − L

k~x

1

− ~x

0

k.

Ciąg {~x

k

}

k

jest więc ciągiem Couchy’ego. Stąd istnieje granica =

lim

k→∞

~x

k

, która należy do D

0

, wobec domkniętości tego zbioru. Po-

nieważ lipschitzowskość φ implikuje jej ciągłość, mamy też

φ

() = φ

lim

k→∞

~x

k

= lim

k→∞

φ

(~x

k

) = lim

k→∞

~x

k

= ~α,

tzn. jest punktem stałym odwzorowania φ. Dla jednoznaczności za-
uważmy, że jeśliby istniał drugi, różny od , punkt stały , to mieliby-
śmy

k~α − ~βk = () − φ()k ≤ L k~α − ~βk.

Stąd 1 < L, co jest sprzeczne z założeniem, że φ jest zwężająca.

2

Z powyższych rozważań otrzymujemy natychmiastowy wniosek do-

tyczący zbieżności iteracji prostych.

Wniosek 12.2 Przy założeniach twierdzenia 12.1, metoda iteracji pro-
stych jest zbieżna co najmniej liniowo z ilorazem L, tzn.

k~x

k

− ~x

k ≤ L

k

k~x

0

− ~x

k.

Dla ilustracji, rozpatrzmy natępujące proste równanie skalarne:

x

= cos(x),

dla

x

∈ D = R.

(12.5)

W tym przypadku φ(x) = cos(x). Zauważamy, że w przedziale [0, 1]
funkcja φ jest zwężająca ze stałą

L

= max

0≤x≤1

| cos

(x)| = sin(1) < 1.

background image

12.3. METODY INTERPOLACYJNE

149

Stąd istnieje dokładnie jedno rozwiązanie równania (12.5) w przedziale
[0, 1]. Rozwiązanie to może być aproksymowane z dowolnie małym błę-
dem przy pomocy iteracji prostych, startując z dowolnego przybliżenia
początkowego ~x

0

[0, 1].

Zaletą iteracji prostych jest fakt, że zbieżność nie zależy od wymiaru

n

zadania, ale tylko od stałej Lipschitza L. Ma ona szczególne zastoso-

wanie w przypadku, gdy funkcja φ jest zwężająca na całym zbiorze D,
tzn. D

0

= D. Jeśli ponadto D ma skończoną średnicę diam(D), to dla

osiągnięcia ε-sproksymacji zera funkcji f wystarczy wykonać

k

= k(ε) =

l

log(k~x

0

− ~x

k/ε)

log(1/L)

m

=

l

log(diam(D))

log(1/L)

m

iteracji, niezależnie od x

0

. Metody zbieżne dla dowolnego przybliżenia

początkowego, nazywamy zbieżnymi globalnie.

12.3 Metody interpolacyjne

Metody iterpolacyjne dla równań nieliniowych powstają podobnie jak
kwadratury interpolacyjne dla całkowania. Najpierw daną funkcję in-
terpolujemy wielomianem Lagrange’a albo Hermite’a ustalonego stop-
nia, a następnie jako przybliżenie zera bierzemy zero tego wielomianu
iterpolacyjnego. Proces taki można iterować (powtarzać) wymieniając
za każdym razem jeden z punktów interpolacyjnych na punkt nowo
obliczony. Zauważmy, że w ogólności takie metody muszą korzystać w
kolejnych iteracjach nie tylko z ostatniego przybliżenia x

k−1

, ale również

z kilku poprzednich, tzn.

x

k

= φ(x

k−1

, . . . , x

k−s

).

Wymagają one również podania nie jednego, ale s przybliżeń począt-
kowych x

0

, . . . , x

s−1

.

W praktyce stosuje się jednak tylko interpolację wielomianami ni-

skich stopni, np. wielomianami liniowymi lub najwyżej kwadratowymi,
których zera można łatwo obliczyć korzystając z bezpośrednich formuł.

Jak się przekonamy, metody interpolacyjne należą do grupy metod

zbieżnych lokalnie. Znaczy to, że zbieżność ciągu

{x

k

}

k

do zera danej

background image

150 ROZDZIAŁ 12. ITERACJE DLA RÓWNAŃ NIELINIOWYCH

funkcji f jest zapewniona jedynie wtedy, gdy przybliżenia początkowe
zostały wybrane dostatecznie blisko x

.

W dalszych rozważaniach będziemy zakładać dla uproszczenia, że

dziedzina D = R.

W przypadku, gdy wielomianem interpolacyjnym jest wielomian li-

niowy Hermite’a, mówimy o metodzie Newtona, albo stycznych. Star-
tując z pewnego przybliżenia początkowego x

0

, w kolejnych krokach

metody, k-te przybliżenie x

k

jest punktem przecięcia stycznej do wy-

kresu f w punkcie x

k−1

. Ponieważ równanie stycznej wynosi y(x) =

f

(x

k−1

) + f

(x

k−1

)(x − x

k−1

), otrzymujemy wzór

x

k

= x

k−1

f

(x

k−1

)

f

(x

k−1

)

.

Oczywiście, aby metoda Newtona była dobrze zdefiniowana, musimy
założyć, że f

(x

k−1

) istnieje i nie jest zerem.

Zauważmy, że metodę Newtona można traktować jako szczególny

przypadek iteracji prostych, gdzie

φ

(x) = x −

f

(x)

f

(x)

.

Widać też, że nie jest ona zbieżna globalnie. Nawet jeśli pochodna w
x

k−1

się nie zeruje, ciąg {x

k

}

k

może nie zbiegać do zera funkcji f, zob.

Ćw. 12.2. Okazuje się jednak, że jeśli wystartujemy dostatecznie blisko
rozwiązania x

, to metoda Newtona jest zbieżna. Dokładniej, załóżmy

najpierw, że f(x

) = 0 oraz

f

(x

) 6= 0.

Ponadto załóżmy, że f jest dwukrotnie różniczkowalna w sposób ciągły,
f

C

2

(D). Rozwijając φ w szereg Taylora w punkcie x

otrzymujemy

x

k

− x

= φ(x

k−1

) − φ(x

) = (x

k−1

− x

)φ

(x

) + (x

k−1

− x

)

2

φ

′′

(ξ

k

)/2,

gdzie min(x

, x

k−1

) ≤ ξ

k

max(x

, x

k−1

). Wobec tego, że φ

(x

) =

f

(x)f

′′

(x)/(f

(x))

2

= 0 i φ

′′

(ξ

k

) = f

′′

(ξ

k

)/f

(ξ

k

), mamy

x

k

− x

= (x

k−1

− x

)

2

f

′′

(ξ

k

)

2f

(ξ

k

)

.

(12.6)

background image

12.3. METODY INTERPOLACYJNE

151

Zdefiniujmy liczbę

R

f

= sup

r≥0

sup

{x:|x−x

|≤r}

2(x − x

)f

′′

(x)

f

(x)

<

1.

Oczywiście R

f

>

0. Dla x

k−1

spełniającego |x

k−1

− x

| ≤ R < R

f

,

mamy z równości (12.6)

|x

k

− x

| ≤ q |x

k−1

− x

|,

gdzie q < 1 i q zależy tylko od R.

Niech teraz x

będzie zerem m-krotnym,

f

(x

) = f

(x

) = · · · = f

(m−1)

(x

) = 0 6= f

(m)

(x

),

gdzie m ≥ 2, oraz niech f będzie m-krotnie różniczkowalna w sposób

ciągły. Wtedy

x

k

− x

= (x

k−1

− x

)

(x

k−1

− x

)

m

f

(m)

(η

(1)

k

)/m!

(x

k−1

− x

)

m−1

f

(m−1)

(η

(2)

k

)/(m − 1)!

= (x

k−1

− x

)

1

1

m

f

(m)

(η

(1)

k

)

f

(m)

(η

(2)

k

)

(x

k−1

− x

)

1

1

m

,

(12.7)

o ile x

k−1

jest “blisko” x

.

Metoda Newtona jest więc zbieżna lokalnie. Z (12.6) i (12.7) można

też wywnioskować, jaki jest charakter zbieżności metody Newtona. Dla
zera jednokrotnego x

oraz f

′′

(x

) 6= 0 mamy bowiem

(x

k

− x

) (x − x

k−1

)

2

f

′′

(x

)

2f

(x

)

.

Mówimy, że zbieżność jest kwadratowa. Jeśli zaś f

′′

(x

) = 0 to zbieżnośc

jest nawet szybsza. Z kolei dla zera m-krotnego zbieżność jest liniowa
z ilorazem (1 1/m).

Metoda Newtona jest pierwszą poznaną tutaj metodą iteracyjną,

która jest (dla zer jednokrotnych) zbieżna szybciej niż liniowo. Dla ta-
kich metod wprowadza się pojęcie wykładnika zbieżności, który jest
zdefiniowany następująco.

background image

152 ROZDZIAŁ 12. ITERACJE DLA RÓWNAŃ NIELINIOWYCH

Powiemy, że metoda iteracyjna φ jest w klasie funkcji F rzędu co

najmniej p ≥ 1, gdy spełniony jest następujący warunek. Niech f ∈
F

i f(x

) = 0. Wtedy istnieje stała C < ∞ taka, że dla dowolnych

przybliżeń początkowych x

0

, . . . , x

s−1

dostatecznie bliskich x

, kolejne

przybliżenia x

k

= φ(x

k−1

, . . . , x

k−s

) generowane tą metodą spełniają

|x

k

− x

| ≤ C |x

k−1

− x

|

p

.

Ponadto, jeśli p = 1 to dodatkowo żąda się, aby C < 1.

Definicja 12.1 Wykładnikiem zbieżności metody iteracyjnej φ w klasie
F nazywamy liczbę p

zdefiniowaną równością

p

= sup { p ≥ 1 : φ jest rzędu co najmniej p }.

Możemy teraz sformułować następujące twierdzenie, które natych-

miast wynika z poprzednich rozważań.

Twierdzenie 12.2 Wykładnik zbieżności metody Newtona (stycznych)
wynosi p

= 2 w klasie funkcji o zerach jednokrotnych, oraz p

= 1 w

klasie funkcji o zerach wielokrotnych.

Inną znaną i często używaną metodą interpolacyjną jest metoda

siecznych, w której stosuje się liniowy wielomian interpolacyjny La-
grange’a. Metoda ta wykorzystuje więc do konstrukcji x

k

przybliżenia

x

k−1

i x

k−2

. Musimy również wybrać dwa różne punkty startowe x

0

i

x

1

. Ponieważ prosta interpolująca f w x

k−1

i x

k−2

ma wzór

y

(x) =

x

− x

k−2

x

k−1

− x

k−2

f

(x

k−1

) +

x

− x

k−1

x

k−2

− x

k−1

f

(x

k−2

),

otrzymujemy

x

k

= x

k−1

x

k−1

− x

k−2

f

(x

k−1

) − f(x

k−2

)

f

(x

k−1

).

Zauważmy, że jeśli x

k−1

i x

k−2

są blisko siebie, to x

k

jest podobny do

tego z metody Newtona, bowiem wtedy iloraz różnicowy (f(x

k−1

)

background image

12.4. OBLICZANIE ZER WIELOMIANÓW

153

f

(x

k−2

))/(x

k−1

− x

k−2

) dobrze przybliża pochodną f

(x

k−1

). Nie wy-

starcza to jednak, aby osiągnąć zbieżność z wykładnikiem 2. Dokład-
niej, można pokazać, że wykładnik zbieżności metody siecznych dla zer
jednokrotnych wynosi p

= (1 +

5)/2 = 1.618 . . ., zob. U. 12.3.

Niewątpliwą zaletą metody siecznych jest jednak to, że nie wymaga

ona obliczania pochodnej funkcji (co w praktyce jest często bardzo
trudne, a niekiedy nawet niemożliwe), a tylko jej wartości.

12.4 Obliczanie zer wielomianów

Obliczanie zer w przypadku, gdy funkcja f jest wielomianem jest wła-
ściwie osobnym zadaniem–my tylko dotkniemy tego tematu.

Załóżmy, że wielomian w : R R jest dany poprzez jego współ-

czynniki a

j

w bazie potęgowej,

w

(x) =

n

X

j=0

a

j

x

j

(a

n

6= 0), i zastosujmy metodę Newtona dla znalezienia największego

zera tego wielomianu. Jedna iteracja metody Newtona jest wtedy sto-
sunkowo prosta, gdyż obliczenie wartości i pochodnej wielomianu w ko-
lejnym pukcie ξ = x

k−1

polega po prostu na dwukrotnym zastosowaniu

schematu Hornera. Rzeczywiście, przypomnijmy, że schemat Hornera
oblicza nie tylko wartość w(ξ), ale również współczynniki w bazie potę-
gowej ilorazu w

1

(x) przy dzieleniu w(x) przez jednomian (x − ξ), zob.

Ćw. 6.2. Zauważmy dalej, że równość

w

(x) = (x − ξ)w

1

(x) + w(ξ)

implikuje w

(ξ) = w

1

(ξ). Stąd schemat obliczania jednocześnie w(ξ) i

w

(ξ) wygląda następująco.

w

0 := w1 := a

n

;

for j := n

1 downto 1 do

begin

w

0 := w0 ∗ ξ + a

j

;

w

1 := w1 ∗ ξ + w0

end;
w

0 := w0 + a

0

.

background image

154 ROZDZIAŁ 12. ITERACJE DLA RÓWNAŃ NIELINIOWYCH

Po wykonaniu tych poleceń mamy w0 = w(ξ) i w1 = w

(ξ).

Twierdzenie 12.3 Załóżmy, że wielomian w(x) =

P

n

j=0

a

j

x

j

ma zera

rzeczywiste

ξ

1

≥ ξ

2

≥ · · · ≥ ξ

n

.

Jeśli tylko przybliżenie początkowe x

0

> ξ

1

, to ciąg x

k

generowany me-

todą Newtona jest ściśle malejący i zbieżny do ξ

1

.

Dowód Wielomian w można przedstawić w postaci

w

(x) = (x − ξ

1

)w

1

(x),

gdzie w

1

(x) = a

n

(x − ξ

2

) · · · (x − ξ

n

). Wtedy

w

(x) = w

1

(x) + (x − ξ

1

)w

1

(x),

a stąd

x

k

− ξ

1

= (x

k−1

− ξ

1

)

w

(x

k−1

)

w

(x

k−1

)

(12.8)

= (x

k−1

− ξ

1

)

1

w

1

(x

k−1

)

w

1

(x

k−1

) + (x

k−1

− ξ

1

)w

1

(x

k−1

)

!

.

Zauważmy teraz, że wielomiany w

1

(x) i w

1

(x) mają stały znak dla

x > ξ

1

, który równy jest znakowi a

n

. Rzeczywiście, ponieważ w

1

(x)

ma wszystkie n − 1 pierwiastków w przedziale (−∞, ξ

1

], to w

1

(x) ma

również wszystkie n − 2 pierwiastki w tym samym przedziale. Stąd oba

wielomiany mają ten sam znak na (ξ

1

,

+) równy znakowi współczyn-

nika przy najwyższych potęgach tych wielomianów. Wspłczynnik ten
jest w obu przypadkach równy a

n

.

Z rozważań tych wynika, że mnożnik przy (x

k−1

− ξ

1

) w prawej

stronie równania (12.8) jest dla x

k−1

> ξ

1

dodatni i mniejszy od 1,

a stąd, że ciąg x

k

jest malejący i ograniczony z dołu przez ξ

1

. Niech

g

= lim

k→∞

x

k

≥ ξ

1

. Biorąc granicę obu stron (12.8) przy k → ∞

otrzymujemy

g

− ξ

1

= (g − ξ

1

)

1

w

1

(g)

w

1

(g) + (g − ξ

1

)w

1

(g)

!

,

background image

12.4. OBLICZANIE ZER WIELOMIANÓW

155

co wymusza g = ξ

1

, kończąc dowód.

2

Dodajmy, że jeśli zero ξ

1

jest jednokrotne, ξ

1

> ξ

2

, to mamy zbież-

ność kwadratową. Należy jednak podkreślić, że zbieżność kwadratową
uzyskujemy dopiero pod koniec procesu iteracyjnego. Mamy bowiem

lim

x→+

w

1

(x)

w

1

(x) + (x − ξ

1

)w

1

(x)

= lim

x→+

1 +

xw

1

(x)

w

1

(x)

1

=

1

n

.

Jeśli więc wystartujemy z x

0

≫ ξ

1

to początkowo zaobserwujemy zbież-

ność tylko liniową z ilorazem 11/n. W miarę zbliżania się do ξ

1

zbież-

ność będzie rosła, aż osiągnie w końcu poziom zbieżności kwadratowej,

x

k

− ξ

1

(x

k−1

− ξ

1

)

2

w

1

(ξ

1

)

w

1

(ξ

1

)

,

Dla zera wielokrotnego, ξ

1

= · · · = ξ

m

> ξ

m+1

, m < n, zbieżność pozo-

stanie jednak cały czas na poziomie liniowym, przy czym iloraz zbież-
ności wzrośnie do 1 1/m. W końcu, jeśli ξ

1

jest zerem o maksymalnej

krotności n, to łatwo zauważyć, że

x

k

− ξ

1

=

1

1

n

(x

k−1

− ξ

1

).

Pozostaje jeszcze problem znalezienia przybliżenia x

0

> ξ

1

. Można

to zrobić na kilka sposobów. Na przykład, zauważmy, że dla

x > M

= max

1,

n−1

X

j=0

|a

j

|

|a

n

|

mamy

w

(x)

a

n

≥ x

n

1

n−1

X

j=0

|a

j

|

|a

n

x

n−j

|

≥ x

n

1

1

M

n−1

X

j=0

|a

j

|

|a

n

|

>

0.

Stąd w(x) ma stały znak na (M, +), a to oznacza, że ξ

1

≤ M. Jako

x

0

można więc wziąć dowolną liczbę większą od M.

background image

156 ROZDZIAŁ 12. ITERACJE DLA RÓWNAŃ NIELINIOWYCH

Uwagi i uzupełnienia

U. 12.1 Metoda bisekcji jest optymalna w następującym sensie. Niech A :
F

R będzie dowolną metodą (algorytmem) aproksymującą zero x

(f)

funkcji f z klasy F zdefiniowanej w (12.2), korzystającą jedynie z obliczeń
(informacji o) f w k punktach. Wtedy dla dowolnego γ > 0 istnieje funkcja
f

γ

∈ F mająca tylko jedno zero x

(f

γ

) w [a, b] i taka, że

|A(f

γ

) − x

(f

γ

)| ≥

1
2

k

b

− a

2

+ γ.

Co więcej, można pokazać, że fakt ten zachodzi też w węższej klasie F

1

funkcji f ∈ F , które są dowolnie wiele razy różniczkowalne. Oczywiście,

nie wyklucza to istnienia metod iteracyjnych (takich jak metoda Newtona),
które dla f ∈ F

1

są zbieżne szybciej niż liniowo.

U. 12.2 Wszystkie metody iteracyjne opisane w tym rozdziale należą do
grupy metod adaptacyjnych. Są to metody, które obliczają kolejną wartość
(ew. pochodną) funkcji f w punkcie x

k

, którego wybór istotnie zależy od po-

przednio obliczonych wartości f, tzn. x

k

= x

k

(f(x

0

), . . . , f(x

k−1

)). Okazuje

się, że metody nieadaptacyjne są dużo gorsze przy rozwiązywaniu równań
nieliniowych. Na przykład, najlepsza metoda korzystająca z k wartości funk-
cji wybranych nieadaptacyjnie ma w klasie (12.2) błąd najgorszy równy tylko
(b − a)/(2k + 2).

Zauważmy jeszcze, że dla zadania całkowania z Rozdziałów 9 i 10, opty-

malne metody okazały się nieadaptacyjne.

U. 12.3 Uzasadnimy teraz, że dla zer jednokrotnych wykładnik zbieżności
metody siecznych wynosi p

= (1 +

5)/2.

Niech f ∈ C

2

(D). Wykorzystując ilorazy różnicowe otrzymujemy

x

k

− x

= (x

k−1

− x

)

f (x

k−1

)

f (x

k−2

, x

k−1

)

= (x

k−1

− x

)

1

f (x

k−1

, x

)

f (x

k−2

, x

k−1

)

= (x

k−1

− x

)(x

k−2

− x

)

f (x

k−2

, x

k−1

, x

)

f (x

k−2

, x

k−1

)

= (x

k−1

− x

)(x

k−2

− x

)

f

′′

(ξ

(1)

k

)

2f

(ξ

(2)

k

)

.

background image

12.4. OBLICZANIE ZER WIELOMIANÓW

157

Stąd widać, że dla x

k−2

i x

k−1

dostatecznie bliskich x

, ciąg x

k

zbiega do x

.

Aby znaleźć wykładnik zbieżności, załóżmy bez zmniejszenia ogólności, że
f

′′

(x

) 6= 0 (w przeciwnym przypadku zbieżność jest jeszcze szybsza). Wtedy

x

k

− x

≈ C(x

k−1

− x

)(x

k−2

− x

),

(12.9)

gdzie C = f

′′

(x

)/(2f

(x

)). Stąd, po podstawieniu z

j

= ln(|C(x

j

− x

)|),

dostajemy

z

k

≈ z

k−1

+ z

k−2

.

Ostatnie równanie jest równaniem różnicowym, którego rozwiązaniem jest
z

k

≈ q

k

, gdzie q = (1 +

5)/2 jest dominującym pierwiastkiem równania

z

2

= z + 1. Ostatecznie więc |x

k

− x

| ≈ |C

1

e

q

k

|, czyli

|x

k

− x

| ≈ |C|

q−1

|C

1

e

q

k−1

q

≈ |C|

q−1

|x

k−1

− x

|

q

.

U. 12.4 Dla znalezienia zera funkcji f : R

n

R

n

można zastosować wielo-

wymiarową metodę Newtona. Jest ona zdefiniowana następującym wzorem
rekurencyjnym:

~x

k

= ~x

k−1

(f

(~x

k−1

))

1

f (~x

k−1

),

gdzie f

() jest macierzą–Jacobianem funkcji f wziętym w punkcie , tzn.

f

() =

∂f

1

∂x

1

() · · ·

∂f

1

∂x

n

()

...

...

∂f

n

∂x

1

() · · ·

∂f

n

∂x

n

()

,

f (~

ξ) =

f

1

()

...

f

n

()

,

~

ξ =

ξ

1

...

ξ

n

.

W praktyce metodę tą realizuje się rozwiązując w każdym kroku iteracyjnym
układ równań liniowych n × n. Dokładniej,

~x

k

= ~x

k−1

− ~y

k−1

,

gdzie ~y

k−1

jest rozwiązaniem układu

f

(~x

k−1

)~y

k−1

= f(~x

k−1

).

Tak jak w przypadku jednowymiarowym, wielowymiarowa metoda Newtona
jest zbieżna lokalnie do zera ~x

z wykładnikiem 2, o ile Jacobian w punkcie

~x

jest nieosobliwy, tzn. det(f

(~x

)) 6= 0.

background image

158 ROZDZIAŁ 12. ITERACJE DLA RÓWNAŃ NIELINIOWYCH

Ćwiczenia

Ćw. 12.1 Uzasadnić, że metoda iteracji prostych x

k

= cos(x

k−1

) jest zbie-

żna do jedynego rozwiązania równnania x = cos(x) dla dowolnego przybli-
żenia początkowego x

0

R.

Ćw. 12.2 Podać przykład funkcji f i przybliżenia początkowego x

0

takich,

że ciąg generowany metodą Newtona oscyluje, tzn. x

2s

= x

0

i x

2s+1

= x

1

,

dla wszystkich s.

Ćw. 12.3 Jeśli w modelu obliczeniowym liczenie pierwiastka kwadratowego

a (a > 0) nie jest dopuszczalne, to możemy go przybliżyć stosując wzór

rekurencyjny

x

k

=

1
2

x

k−1

+

a

x

k−1

,

który powstaje przez zastosowanie metody Newtona do równania f(x) =
x

2

−a = 0. Pokazać, że ciąg x

k

jest zbieżny do √a dla dowolnego przybliżenia

początkowego x

0

> 0. Scharakteryzować szybkość zbieżności.

Ćw. 12.4 Zaproponować metodę iteracyjną obliczania 1/a dla a > 0 nie
używającą dzielenia. Jak wybrać przybliżenie początkowe aby metoda była
zbieżna? Jaki jest wykładnik zbieżności?
Wskazówka. Zastosować metodę Newtona do funkcji f(x) = 1/x − a.
Ćw. 12.5 Rozpatrzmy metodę iteracyjną

x

k

= x

k−1

x

k−1

− a

f (x

k−1

) − f(a)

f (x

k−1

),

gdzie a jest pewnym parametrem. Pokazać, że metoda ta jest zbieżna liniowo,
o ile a jest dostatecznie blisko zera x

.

Ćw. 12.6 Pokazać, że metoda Steffensena

x

k

= x

k−1

f

2

(x

k−1

)

f (x

k−1

+ f(x

k−1

)) − f(x

k−1

)

jest zbieżna lokalnie z wykładnikiem 2.

Ćw. 12.7 Rozpatrzmy metodę iteracyjną daną wzorem

x

k

= x

k−1

− m

f (x

k−1

)

f

(x

k−1

)

.

Pokazać, że jeśli f ma m-krotne zero x

to metoda ta jest lokalnie zbieżna

do x

z wykładnikiem 2.


Wyszukiwarka

Podobne podstrony:
Marcinkowski L Zadania do wykładu z matematyki obliczeniowej
Matematyka Obliczeniowa Wyklad 2
Matematyka Obliczeniowa Wyklad 1
Matematyka Obliczeniowa Wyklad 2
Wyklady z matematyki V sciaga
Ochrona wlasnosci intelektualnej wyklad 1, Matematyka studia, Ochrona Własności Intelektualnej
wykladnicza, Matematyka, Liceum
wyklad3(1), matematyka, 0, httpmath.uni.lodz.pl~kowalcr, Topologia 1
Wyklady z matematyki II sciaga, MATMA, matematyka, Matma, Matma, Stare, I semestr
Wyklady z matematyki I sciaga
Algorytmy wyklady, Złożoność obliczeniowa algorytmów
notacja wykładnicza, Matematyka, Liceum
Wyklady z matematyki II sciaga
Matematyka obliczeniowa ćwiczenia
funkcja wykładnicza, Matematyka, Liceum
21 04 07 wykład matematyka
Wyklady z Matematyki czesc VI, MATMA, matematyka, Matma, Matma, Stare, II semestr, Wykłady mini
Wyklady z Matematyki czesc VI, MATMA, matematyka, Matma, Matma, Stare, II semestr, Wykłady mini

więcej podobnych podstron