102
Metody Numeryczne Rozwiązywanie ukladów równań liniowych Wojciech Szewczuk Wojciech Szewczuk MN

Metody Numeryczne Rozwiązywanie układów równań liniowych

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Metody Numeryczne Rozwiązywanie układów równań liniowych

Metody NumeryczneRozwiązywanie układów równań liniowych

Wojciech Szewczuk

Wojciech Szewczuk MN

Page 2: Metody Numeryczne Rozwiązywanie układów równań liniowych

Równania liniowe

Układ n równań liniowych z n niewiadomymi x1, x2, ..., xn można zapisać następująco:

a11x1 + a12x2 + ...+ a1nxn = b1

a21x1 + a22x2 + ...+ a2nxn = b2

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

an1x1 + an2x2 + ...+ annxn = bn

aij , bi i rozwiązanie x1, x2, ..., xn są liczbami rzeczywistymi.Układ w formie macierzowej można wyrazić następująco:

a11 a12 . . . a1na21 a22 . . . a2n

......

. . ....

an1 an2 . . . ann

Ax = b

Wojciech Szewczuk MN

Page 3: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

ilość wierszy, m, × ilość kolumn, n – rozmiar macierzy

maciecrz 1× n – wektor wierszowy

maciecrz m × 1 – wektor kolumnowy

macierz n × n – macierz kwadratowa o stopniu n

aij lub (A)ij – element znajdujący się na przecięciu i-tego wiersza i j-tej kolumny

(aij ) – macierz o elementach aij

AT – macierz transponowana – (AT)ij = aji

A = AT – macierz symetryczna

maciecrz stopnia n I =

1 0 . . . 00 1 . . . 0...

.... . .

...0 0 . . . 1

– macierz jednostkowa

IA = A = AI

Wojciech Szewczuk MN

Page 4: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

λA, gdzie λ jest skalarem, a A maciecrzą zdefiniowana jest wzorem (λA)ij = λaij

suma dwóch macierzy (m× n) A+B określona jest wzorem (A+B)ij = aij + bij

iloczyn macierzy A o rozmiarze m × p i macierzy B o rozmiarze p × n jestmacierzą o rozmiarze m × n określoną wzorem

(AB)ij =p∑

k=1

aikbkj (1 ≤ i ≤ m, 1 ≤ j ≤ n)

mnożenie macierzy nie jest przemienne AB 6= BA

Wojciech Szewczuk MN

Page 5: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Wyznacznik

Definicja 1

Wyznacznikiem macierzy kwadratowej A,

A =

a11 a12 . . . a1na21 a22 . . . a2n

......

. . ....

an1 an2 . . . ann

nazywamy liczbę

detA =∑f

(−1)If a1α1a2α2 ...anαn ,

gdzie∑

f oznacza sumowanie po wszystkich permutacjach liczb naturalnych 1, 2, ..., n,a If to liczba inwersji w permutacji f .

Definicja ma niewielkie znaczenie praktyczne

Wojciech Szewczuk MN

Page 6: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Przykład 1

Obliczanie wyznacznika macierzy z definicji

n = 1 det(a11) = a11

n = 2możliwe permutacje: 1, 2 If = 0

2, 1 If = 1

detA =

∣∣∣∣ a11 a12

a21 a22

∣∣∣∣ = (−1)0a11a22 + (−1)1a12a21 =

= a11a22 − a12a21

Wojciech Szewczuk MN

Page 7: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

można policzyć wyznacznik z rozwinięcia Laplace’a wzdłuż i-tego wiersza lubj-tej kolumny,

detA =n∑

j=1

aijAij ,

detA =n∑

j=1

ajkAjk ,

gdzie Aij jest dopełnieniem algebraicznym elementu aij macierzy A.

rozwinięcie Laplace’a wymaga n! mnożeń

praktyczne zastosowanie ma tylko dla małych n

Definicja 2

Dopełnienie algebraiczne elementu aij macierzy kwadratowej A stopnia n jest toiloczyn (−1)i+j oraz minora Mij , czyli wyznacznika podmacierzy stopnia n − 1powstałego z usunięcia i-tego wiersza oraz j-ej kolumny macierzy A.

Wojciech Szewczuk MN

Page 8: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

UkładyAx = b

Bx = d

są równoważne, jeśli mają identyczne rozwiązania. Dzięki tej własności dany układrównań możemy przekształcić za pomocą pewnych elementarnych operacji na prostszyukład równoważny i dopiero ten rozwiązujemy.

Operacje elementarne:

1 przestawienie dwóch równań w układzie: Ei ↔ Ej (Ei oznacza i-te równanie)

2 pomnożenie obu stron przez liczbę różną od zera: λEi → Ei3 dodanie stronami do równania wielokrotności innego równania: Ei + λEj (i 6= j)

Wojciech Szewczuk MN

Page 9: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Twierdzenie 1

Jeśli układ równań wynika z innego układy przez skończony ciąg operacjielementarnych, to te dwa układy są równoważne.

Wojciech Szewczuk MN

Page 10: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

AB = I

B jest prawą odwrotnością macierzy A

A jest lewą odwrotnością macierzy B

jeśli maciecrz ma prawą odwrotność, to nie musi być ona określonajednoznacznie, np.

[1 0 00 1 0

] 1 00 1α β

=

[1 00 1

]

Wojciech Szewczuk MN

Page 11: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Twierdzenie 2

Macierz kwadratowa ma co najwyżej jedną prawą odwrotność.

DowódWeźmy

AB = I

Oznaczmy j-tą kolumnę macierzy A przez A(j). Z AB = I mamy

n∑j=1

bjkA(j) = I(k) (1 ≤ k ≤ n).

Każda kolumna I jest więc kombinacją liniową kolumn A. Ponieważ kolumny macierzyjednostkowej są bazą przestrzeni Rn, więc to samo jest prawdą dla kolumn A. Z tegowynika, że współczynniki bjk w powyższych równościach są określone jednoznacznie.

Wojciech Szewczuk MN

Page 12: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Twierdzenie 3

Jeśli A i B są macierzami kwadratowymi takimi, że AB = I, to BA = I.

DowódWeźmy C = BA− I+ BAC = ABA− AI+ AB = A− A+ I = IC (podobnie jak B) jest więc prawą odwrotnością A. Z Twierdzenia 2 C = B, czyli

B = BA− I+ B

BA = I

Wojciech Szewczuk MN

Page 13: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

odwrotność macierzy A (macierz odwrotną) oznaczamy A−1

jeśli macierz kwadratowa ma macierz odwrotną to jest nieosobliwa

jeśli macierz A jest nieosobliwa, to układ równań

Ax = b

ma rozwiązaniex = A−1b

Odwrotność A−1 pozwala znaleźć wektor x. Nie należy jednak rozwiązywaćukładów równań w ten sposób. Istnieją metody, które są efektywniejsze i dajądokładniejsze wyniki.

Wojciech Szewczuk MN

Page 14: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Twierdzenie 4

Jeśli A jest macierzą nieosobliwą, to macierz

A−1 =1

detAAD

jest macierzą odwrotną do macierzy A.

Macierzą dołączaną AD macierzy kwadratowej A = (aik ) nazywamy macierztransponowaną macierzy utworzonej z dopełnień algebraicznych elementów macierzyA, tzn.

AD =

A11 A21 . . . An1A11 A22 . . . An2

......

. . ....

A1n A2n . . . Ann

gdzie Aik jest dopełnieniem algebraicznym elementu aik .UWAGA! Istnieją efektywniejsze sposoby wyznaczania macierzy odwrotnych.

Wojciech Szewczuk MN

Page 15: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Przykład 2

Oblicz macierz odwrotną do macierzy

A =

1 0 −10 2 −3−4 1 3

A =

∣∣∣∣∣∣1 0 −1 1 00 2 −3 0 2−4 1 3 −4 1

∣∣∣∣∣∣detA =1∗2∗3+0∗(−3)∗(−4)+(−1)∗0∗1−((−1) ∗ 2 ∗ (−4) + 1 ∗ (−3) ∗ 1 + 0 ∗ 0 ∗ 3) = 1

Wojciech Szewczuk MN

Page 16: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Przykład c.d.

Obliczamy dopełnienia algebraiczne elementów macierzy A:

A11 =∣∣∣∣ 2 −3

1 3

∣∣∣∣ = 9

A12 = −∣∣∣∣ 0 −3−4 3

∣∣∣∣ = 12

A13 =∣∣∣∣ 0 2−4 1

∣∣∣∣ = 8

A21 = −∣∣∣∣ 0 −1

1 3

∣∣∣∣ = −1

...

Wojciech Szewczuk MN

Page 17: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Przykład c.d.

AD =

9 −1 212 −1 38 −1 2

A−1 =1

1∗

9 −1 212 −1 38 −1 2

Wojciech Szewczuk MN

Page 18: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

operacje elementarne możemy traktować jako mnożenie macierzy

macierzą elementarną jest macierz stopnia n, która powstaje z macierzy

jednostkowej stopnia n przez wykonanie którejś z operacji elementarnych1 zamiana dwóch wierszy: As ↔ At2 mnożenie wiersza przez niezerową stałą: λAs → As3 dodawanie do wiersza wielokrotności innego wiersza: As + λAt → As

Wojciech Szewczuk MN

Page 19: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Każdą z operacji z poprzedniego slajdu można wykonać, mnożąc macierz A z lewejstrony przez pewną macierz elementarną.

Przykład 3 1 0 00 0 10 1 0

a11 a12 a13a21 a22 a23a31 a32 a33

=

a11 a12 a13a31 a32 a33a21 a22 a23

1 0 0

0 λ 00 0 1

a11 a12 a13a21 a22 a23a31 a32 a33

=

a11 a12 a13λa21 λa22 λa23a31 a32 a33

1 0 0

0 1 00 λ 1

a11 a12 a13a21 a22 a23a31 a32 a33

=

a11 a12 a13a21 a22 a23

λa21 + a31 λa22 + a32 λa23 + a33

Wojciech Szewczuk MN

Page 20: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

EmEm−1...E2E1A – ciąg operacji elementarnych na A

jeśli maciecrz jest nieosobliwa, to stosując do niej ciąg operacji elementarnychmożemy ją zredukować do I

EmEm−1...E2E1A = I

A−1 = EmEm−1...E2E1I – odwrotność A−1 można otrzymać stosując do I tensam ciąg operacji

Wojciech Szewczuk MN

Page 21: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Przykład 4

Oblicz macierz odwrotną do macierzy

A =

1 0 −10 2 −3−4 1 3

za pomocą przekształceń elementarnych.Dostawiamy do A macierz jednostkową

A =

1 0 −1 1 0 00 2 −3 0 1 0−4 1 3 0 0 1

Wojciech Szewczuk MN

Page 22: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Przykład c.d.

Stosując przekształcenia elementarne dążymy po lewej stronie do macierzyjednostkowej

A =

1 0 −1 1 0 00 2 −3 0 1 00 1 −1 4 0 1

w3 + 4w1

A =

1 0 −1 1 0 00 0 −1 −8 1 −20 1 −1 4 0 1

w2 − 2w3

A =

1 0 −1 1 0 00 0 −1 −8 1 −20 1 −1 4 0 1

w2 ∗ (−1) w2 ↔ w3

A =

1 0 −1 1 0 00 1 −1 4 0 10 0 1 8 −1 2

w2 ∗ (−1) w2 ↔ w3

Wojciech Szewczuk MN

Page 23: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Przykład c.d.

A =

1 0 0 9 −1 20 1 0 12 −1 30 0 1 8 −1 2

w2 + w3 w1 + w3

Ostatecznie

A−1 =

9 −1 212 −1 38 −1 2

Wojciech Szewczuk MN

Page 24: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Twierdzenie 5

Dla macierzy kwadratowej A stopnia n następujące własności są równoważne:

1 Istnieje odwrotność macierzy A, czyli ta macierz jest nieosobliwa.

2 Wyznacznik macierzy A jest różny od 0.

3 Wiersze macierzy A tworzą bazę przestrzeni Rn.

4 Kolumny macierzy A tworzą bazę przestrzeni Rn.

5 Odwzorowanie Rn na Rn określone przez macierz A jest iniekcją (jest wzajemniejednoznaczne).

6 Odwzorowanie z 5 jest suriekcją (odwzorowanie „na”).

7 Z równości Ax = 0 wynika, że x = 0.

8 Dla każdego b ∈ Rn istnieje dokładnie jedno x ∈ Rn takie, że Ax = b.9 Macierz A jest iloczynem macierzy elementarnych.

10 Liczba 0 nie jest wartością własną macierzy A.

Wojciech Szewczuk MN

Page 25: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy

Definicja 3

Macierz A jest dodatnio określona, jeśli xTAx > 0 dla każdego niezerowego wektorax ∈ Rn. xTAx nazywamy formą kwadratową.

Przykład 5

A =

[2 11 2

]

xTAx =[

x1 x2] [ 2 1

1 2

] [x1x2

]= (x1 + x2)2 + x2

1 + x22 > 0,

jeśli x1 6= 0 lub x2 6= 0.

W praktyce z definicji nie jest łatwo ustalić, czy macierz jest dodatnio określona.

Definicja 4

Macierz A jest dodatnio półokreślona, jeśli xTAx ≥ 0 dla każdego x ∈ Rn.

Wojciech Szewczuk MN

Page 26: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy – macierze blokowe

Macierze można podzielić na podmacierze (bloki) i mnożyć macierze tak, jakby blokibyły liczbami:

1 2 1 −1 0 1−1 1 1 0 −1 10 1 −1 1 0 11 −1 0 0 1 01 0 1 2 1 0

1 0 1 2 1−1 1 2 0 11 0 1 1 2−1 1 0 0 12 1 0 −2 10 1 1 −1 1

=

1 2 7 2 5−3 1 3 0 2−3 3 2 −2 14 0 −1 0 12 3 2 1 6

Bloki możemy oznaczyć symbolami i powyższą równość przepisać w formie:[A11 A12A21 A22

] [B11 B12B21 B22

]=

[C11 C12C21 C22

]

Cij =2∑

s=1

AisBsj

np.

C11 = A11B11 + A12B21 =[

1 2] [ 1 0 1−1 1 2

]+[

1 −1 0 1]

1 0 1−1 1 02 1 00 1 1

=

=[

1 2 7]

Wojciech Szewczuk MN

Page 27: Metody Numeryczne Rozwiązywanie układów równań liniowych

Własności macierzy – macierze blokowe

Twierdzenie 6

Przyjmijmy, że macierze A, B, C są podzielone na bloki w następujący sposób

A =

A11 A12 . . . A1nA21 A22 . . . A2n

.

.

....

. . ....

An1 An2 . . . Ann

B =

B11 B12 . . . B1nB21 B22 . . . B2n

.

.

....

. . ....

Bn1 Bn2 . . . Bnn

C =

C11 C12 . . . C1nC21 C22 . . . C2n

.

.

....

. . ....

Cn1 Cn2 . . . Cnn

Jeśli każdy z iloczynów AisBsj jest określony i jeśli Cij =

∑ns=1 AisBsj to C = AB.

Wojciech Szewczuk MN

Page 28: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy równań liniowych

a11 a12 . . . a1n

a21 a22 . . . a2n....... . .

...an1 an2 . . . ann

x1

x2...xn

=

b1

b2...bn

Ax = b

Wojciech Szewczuk MN

Page 29: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy równań liniowych

Układ z macierzą przekątniowąa11 0 . . . 00 a22 . . . 0...

.... . .

...0 0 . . . ann

x1x2...xn

=

b1b2...bn

x =

b1/a11b2/a22

...bn/ann

jeśli dla pewnego i jest aii = 0 i bi = 0, to xi może być dowolną liczbą

jeśli aii = 0 i bi 6= 0, to układ nie ma rozwiązań

Wojciech Szewczuk MN

Page 30: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy równań liniowych

Układ z macierzą trójkątną dolnąa11 0 . . . 0a21 a22 . . . 0

......

. . ....

an1 an2 . . . ann

x1x2...xn

=

b1b2...bn

załóżmy aii 6= 0

z pierwszego równania wyznaczmy x1

znane już x1 możemy podstawić do drugiego równania i wyznaczyć x2

postępując analogicznie możemy wyznaczyć kolejno x3, x4, ..., xn

otrzymaliśmy algorytm nazywany podstawieniem w przód

Wojciech Szewczuk MN

Page 31: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy równań liniowych – podstawienie w przód

input n, (aij ), (bi )for i = 1 to n do

xi ← (bi −∑i−1

j=1 aij xj )/aiiend dooutput (xi )

Wojciech Szewczuk MN

Page 32: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy równań liniowych – podstawienie wstecz

Układ z macierzą trójkątną górnąa11 a12 . . . a1n0 a22 . . . a2n...

.... . .

...0 0 . . . ann

x1x2...xn

=

b1b2...bn

input n, (aij ), (bi )for i = n to 1 step −1 do

xi ← (bi −∑n

j=i+1 aij xj )/aiiend dooutput (xi )

Wojciech Szewczuk MN

Page 33: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy równań liniowych – rozkład LU

Jeśli macierz A można wyrazić jako iloczyn maciecrzy trójkątnej dolenj L i trójkątnejgórnej U

L =

l11 0 . . . 0l21 l22 . . . 0...

.... . .

...ln1 ln2 . . . lnn

U =

u11 u12 . . . u1n0 u22 . . . u2n...

.... . .

...0 0 . . . unn

A = LU

to rozwiązanie układu równańAx = b

można podzielić na dwa etapy

rozwiązanie Lz = b względem z

rozwiązanie Ux = z względem x

Wojciech Szewczuk MN

Page 34: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy równań liniowych

nie każda macierz A ma rozkład LU

równość A = LU nie określa czynników L i U jednoznaczne

dla każdego i można wybrać dowolną wartość różną od 0 dla jednej z liczb lii ,uii (ale nie obu)

w szczególności można przyjąć, że lii = 1 lub uii = 1 dla każdego i (dostaniemyodpowiednio macierz jedynkową trójkątną dolną lub macierz jedynkowątrójkątną górną)

Wojciech Szewczuk MN

Page 35: Metody Numeryczne Rozwiązywanie układów równań liniowych

Rozkład LU

Istnieją różne wersje rozkładów LU

Doolittle’a

Crouta

Cholesky’ego

Eliminacja Gaussa

Wojciech Szewczuk MN

Page 36: Metody Numeryczne Rozwiązywanie układów równań liniowych

Podstawowa eliminacja Gaussa

Rozważmy układ: 6 −2 2 4

12 −8 6 103 −13 9 3−6 4 1 −18

x1x2x3x4

=

123427−38

odejmijmy stronami pierwsze równanie pomnożone przez 2 od drugiego

odejmijmy stronami pierwsze równanie pomnożone przez 12 od trzeciego

odejmijmy stronami pierwsze równanie pomnożone przez −1 od czwartego

liczby 2, 12 , −1 nazywamy mnożnikami dla pierwszego kroku eliminacji

liczbę 6 używaną jako dzielnik przy obliczaniu 2, 12 , −1 nazywamy elementem

głównym

pierwszy wiersz w pierwszym kroku nazywamy wierszem głównym

Wojciech Szewczuk MN

Page 37: Metody Numeryczne Rozwiązywanie układów równań liniowych

Podstawowa eliminacja Gaussa

Po wykonaniu pierwszego kroku otrzymamy6 −2 2 40 −4 2 20 −12 8 10 2 3 −14

x1x2x3x4

=

121021−26

w drugim kroku wierszem głównym jest wiersz drugi

elementem głównym jest liczba −4

w drugim kroku mnożnikami są liczby 3 i − 12

odejmijmy wiersz drugi pomnożony przez 3 od trzeciego

odejmijmy wiersz drugi pomnożony przez − 12 od czwartego

Wojciech Szewczuk MN

Page 38: Metody Numeryczne Rozwiązywanie układów równań liniowych

Podstawowa eliminacja Gaussa

Po wykonaniu drugiego kroku otrzymamy6 −2 2 40 −4 2 20 0 2 −50 0 4 −13

x1x2x3x4

=

1210−9−21

w trzecim, ostatnim kroku wierszem głównym jest wiersz trzeci

elementem głównym jest liczba 2

mnożnikiem jest liczba 2

odejmijmy wiersz trzeci pomnożony przez 2 od czwartego

Wojciech Szewczuk MN

Page 39: Metody Numeryczne Rozwiązywanie układów równań liniowych

Podstawowa eliminacja Gaussa

Ostatecznie otrzymamy układ o macierzy trójkątnej górnej6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

x1x2x3x4

=

1210−9−3

x =

1−3−21

Wojciech Szewczuk MN

Page 40: Metody Numeryczne Rozwiązywanie układów równań liniowych

Podstawowa eliminacja Gaussa

Mnożniki użyte do przekształcenia układu są elementami macierzy jedynkowejtrójkątnej dolnej (każdy mnożnik występuje na pozycji zera w macierzy układu, doktórego powstania posłużył):

L =

1 0 0 02 1 0 012 3 1 0−1 − 1

2 2 1

U =

6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

A = LU

6 −2 2 4

12 −8 6 103 −13 9 3−6 4 1 −18

=

1 0 0 02 1 0 012 3 1 0−1 − 1

2 2 1

6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

Wojciech Szewczuk MN

Page 41: Metody Numeryczne Rozwiązywanie układów równań liniowych

Podstawowa eliminacja Gaussa

macierz Ak+1 powstaje w k-tym kroku eliminacji Gaussa

aby otrzymać zera w k-tej kolumnie pod elementem głównym a(k)kk , odejmujemy

odpowiednie wielokrotności k-tego wiersza od wierszy leżących niżej (wiersze1, 2, ..., k pozostają bez zmian)

a(k+1)ij =

a(k)ij gdy i ≤ k

a(k)ij − (a

(k)ik /a

(k)kk )a

(k)kj gdy i ≥ k + 1, j ≥ k + 1

0 gdy i ≥ k + 1, j ≤ k

U = A(n)

L określamy

lik =

a(k)ik /a

(k)kk gdy i ≥ k + 1

1 gdy i = k0 gdy i ≤ k − 1

eliminacja załamuje się, jeśli któryś z elementów głównych znika

Wojciech Szewczuk MN

Page 42: Metody Numeryczne Rozwiązywanie układów równań liniowych

Podstawowa eliminacja Gaussa

Twierdzenie 7

Jeśli wszystkie elementy główne a(k)kk są różne od zera, to A = LU

Dowód

a(k+1)ij = a

(k)ij gdy i ≤ k lub j ≤ k − 1

ukj = a(n)kj = a

(k)kj

lik = 0 gdy k > iukj = 0 gdy k > jgdy i ≤ j

(LU)ij =n∑

k=1

likukj =i∑

k=1

liku(k)kj =

i∑k=1

lika(k)kj =

i−1∑k=1

lika(k)kj + liia

(i)ij =

=

i−1∑k=1

(a(k)ik /a

(k)kk )a

(k)kj + a

(i)ij =

i−1∑k=1

(a(k)ij − a

(k+1)ij ) + a

(i)ij = a

(1)ij = aij

gdy i > j

(LU)ij =

j∑k=1

lika(k)kj =

j∑k=1

(a(k)ij − a

(k+1)ij ) = a

(1)ij − a

(j+1)ij = a

(1)ij = aij

bo a(k)ij = 0 dla i ≥ j + 1 i k ≥ j + 1.

Wojciech Szewczuk MN

Page 43: Metody Numeryczne Rozwiązywanie układów równań liniowych

Podstawowa eliminacja Gaussa – algorytm

input n, (aij )for k = 1 to n − 1 do

for i = k + 1 to n doz ← aik/akkaik ← 0for j = k + 1 to n doaij ← aij − zakj

end doend do

end dooutput (aij )

Wojciech Szewczuk MN

Page 44: Metody Numeryczne Rozwiązywanie układów równań liniowych

Eliminacja Gaussa – elementy główne

Rozważmy układ [0 11 1

] [x1

x2

]=

[12

]

Wojciech Szewczuk MN

Page 45: Metody Numeryczne Rozwiązywanie układów równań liniowych

Eliminacja Gaussa – elementy główne

Rozważmy układ [ε 11 1

] [x1x2

]=

[12

],

gdzie ε jest małą liczbą i ε 6= 0. Stosując algorytm Gaussa otrzymamy[ε 10 1− ε−1

] [x1x2

]=

[1

2− ε−1

],

x2 = (2− ε−1)/(1− ε−1), x1 = (1− x2)ε−1

w obliczeniach komputerowych, gdy ε jest dostatecznie małe

2− ε−1 = 1− ε−1 = ε−1 ⇒ x2 = 1 x1 = 0

rozwiązanie dokładne x1 = 11−ε ≈ 1, x2 = 1−2ε

1−ε ≈ 1

Wojciech Szewczuk MN

Page 46: Metody Numeryczne Rozwiązywanie układów równań liniowych

Eliminacja Gaussa – elementy główne

problemy powoduje nie to, że element główny jest mały, ale że jest taki wporównaniu z innymi elementami wiersza w jakim się znajduje

kłopoty znikają po przestawieniu równań[1 1ε 1

]=

[x1x2

]=

[21

]z eliminacji dostaniemy[

1 10 1− ε

]=

[x1x2

]=

[2

1− 2ε

]x2 = 1 i x1 = 2− x2 = 1

Wojciech Szewczuk MN

Page 47: Metody Numeryczne Rozwiązywanie układów równań liniowych

Eliminacja Gaussa – algorytm

dobry algorytm musi uwzględniać przestawianie równań układu

nie przenosimy wierszy w pamięci komputera, ale inaczejwybieramy wiersze główne. Zamiast naturalnego porządku1, 2, ..., n − 1, wybieramy wiersze o wskaźnikachp1, p2, ..., pn−1, gdzie (p1, p2, ..., pn−1) jest pewną permutacjązbioru (1, 2, ..., n).

Wojciech Szewczuk MN

Page 48: Metody Numeryczne Rozwiązywanie układów równań liniowych

Eliminacja Gaussa – algorytm

input n, (aij ), (pi )for k = 1 to n − 1 do

for i = k + 1 to n doz ← api k

/apk kapi k← 0

for j = k + 1 to n doapi j← api j

− zapk jend do

end doend dooutput (aij )

Wojciech Szewczuk MN

Page 49: Metody Numeryczne Rozwiązywanie układów równań liniowych

Skalowany wybór wierszy głównych

Ax = b

szukamy pewnej permutacji (p1, p2, ..., pn) zbioru (1, 2, ..., n) i rozkładu

LU = PA,

gdzie P jest taka, że (P)ij = δpi j

Lz = Pb

Ux = z

Wojciech Szewczuk MN

Page 50: Metody Numeryczne Rozwiązywanie układów równań liniowych

Skalowany wybór wierszy głównych

wyznaczamy skalę każdego wiersza

si = max1≤j≤n

|aij | (1 ≤ i ≤ n)

tworzymy startowy wariant (1, 2, ..., n) permutacji (p1, p2, ..., pn)

w pierwszym kroku rozkładu wyznaczamy pierwszy wiersz główny – ten dlaktórego |ai1|/si jest największe (załóżmy, że jego wskaźnikiem jest j)

w tablicy p przestawiamy p1 z pj

teraz p1 jest wskaźnikiem wybranego wiersza głównego ⇒ |ap11|/sp1 ≥ |ai1|/sidla 1 ≤ i ≤ n

odejmujemy odpowiednie wielokrotności wiersza głównego od pozostałychwierszy macierzy A

w dalszych obliczenia wiersz p1 nie zmienia się

Wojciech Szewczuk MN

Page 51: Metody Numeryczne Rozwiązywanie układów równań liniowych

Skalowany wybór wierszy głównych

załóżmy, że po k − 1 przekształceniach A chcemy wyzerować jej k-tą kolumnę

wybieramy największą z liczb |api k |/spi dla k ≤ i ≤ n (załóżmy, że jej wskaźnikto j)

przestawiamy pk z pj

odejmujemy wiersz pk pomnożony przez api k/apkk od wiersz pi (k + 1 ≤ i ≤ n)

Wojciech Szewczuk MN

Page 52: Metody Numeryczne Rozwiązywanie układów równań liniowych

Skalowany wybór wierszy głównych

Przykład 6

A =

2 3 −61 −6 83 −2 1

p = (1, 2, 3)

s = (6, 8, 3)

z ilorazów 2/6, 1/8, 3/3 największy jest trzeci

pierwszym wierszem głównym będzie wiersz trzeci

przestawiamy p1 z p3 ⇒ p = (3, 2, 1)

od wierszy pierwszego i drugiego odejmujemy takie wielokrotności wierszatrzeciego, aby wyzerować w nich elementy pierwszej kolumny 2

3133 − 20

313 − 16

3233

3 −2 1

liczby na niebiesko są mnożnikami

Wojciech Szewczuk MN

Page 53: Metody Numeryczne Rozwiązywanie układów równań liniowych

Skalowany wybór wierszy głównych

Przykład 7

c.d.

w kolejnym kroku wybór wiersza głównego zależy od:

|ap22|/sp2 =163 /8 = 2/3

|ap32|/sp3 =133 /6 = 13/18

większa jest ta druga, j = 3 i przestawiamy p2 z p3

p = (3, 1, 2) 23

133 − 20

313 − 16

13 − 713

3 −2 1

P =

0 0 11 0 00 1 0

PA =

3 −2 12 3 −61 −6 8

=

1 0 023 1 013 − 16

13 1

3 −2 10 13

3 − 203

0 0 − 713

Wojciech Szewczuk MN

Page 54: Metody Numeryczne Rozwiązywanie układów równań liniowych

Skalowany wybór wierszy głównych – algorytm

Algorytm rozkładu dla eliminacji Gaussa ze skalowalnym wyborem wierszy głównych:input n, (aij )for i = 1 to n do

pi ← isi ← max

1≤j≤n|aij |

end dofor k = 1 to n − 1 do

wybór takiego j ≥ k, że|apj k |/spj ≥ |api k |/spi dla i = k, k + 1, ..., n

pk ↔ pjfor i = k + 1 to n doz ← api k

/apk kapi k← z

for j = k + 1 to n doapi j← api j

− zapk jend do

end doend dooutput (aij ), (pi )

Wojciech Szewczuk MN

Page 55: Metody Numeryczne Rozwiązywanie układów równań liniowych

Skalowany wybór wierszy głównych – algorytm

Rozwiązanie Ax = b po znalezieniu PA = LU wyznaczamy za pomocą:

input n, (aij ), (pi ), (bi )for k = 1 to n − 1 do

for i = k + 1 to n dobpi ← bpi − api k

bpkend do

end dofor i = n to 1 step -1 do

xi ← (bpi −∑n

j=i+1 api jxj )/api i

end dooutput (xi )

pierwsza część rozwiązuje układ Lz = Pb

druga część rozwiązuje układ Ux = z

Wojciech Szewczuk MN

Page 56: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wybór elementów głównych

częściowy wybór elementów głównych polega na tym, że k-ty z nich jest tymspośród n − k + 1 elementów dolnej części k-tej kolumny A(k), który manajwiększą wartość bezwzględną

pełny wybór elementów głównych polega na tym, że badamy (n − k + 1)2

elementów w dolnej prawej części macierzy A(k)

zwykle pełny wybór elementów głównych, bardziej kosztowny obliczeniowo, niema istotnych zalet w porównaniu z częściowym wyborem

Wojciech Szewczuk MN

Page 57: Metody Numeryczne Rozwiązywanie układów równań liniowych

PA = LU

Załóżmy, że p1, p2, ..., pn są wskaźnikami kolejnych wierszy głównych. Dla A(1) = Amacierze A(2), A(3), ...,A(n) określone są wzorem rekurencyjnym

a(k+1)pi j

=

a(k)pi j

gdy i ≤ k lub i > k > j

a(k)pi j− (a

(k)pi k/a

(k)pkk

)a(k)pk j

gdy i > k, j > k

a(k)pi k/a

(k)pkk

gdy i > k, j = k

Twierdzenie 8

Niech macierze: permutacji P, trójkątna górna U i jedynkowa trójkątna dolna L będąokreślone odpowiednio wzorami (P)ij = δpi j , uij = a

(n)pi j

dla j ≥ i oraz lij = a(n)pi j

dlaj < i Wtedy PA = LU.

Wojciech Szewczuk MN

Page 58: Metody Numeryczne Rozwiązywanie układów równań liniowych

PA = LUDowódZ definicji A(k) mamy

ukj = a(n)pk j

= a(k)pk j

(j ≥ k)

lik = a(n)pi k

= a(k+1)pi k

= a(k)pi k/a

(k)pkk

(i ≥ k)

wiersz pk macierzy ustala się w k-tym kroku, a k-tą kolumnę w (k + 1)-szymkroku

wzór dla lik jest poprawny dla i = k, bo daje wtedy wartość 1

Załóżmy, że i ≤ j

(LU)ij =i∑

k=1

likukj =

i−1∑k=1

(a(k)pi k/a

(k)pkk

)a(k)pk j

+liia(i)pi j

=

i−1∑k=1

(a(k)pi j−a(k+1)

pi j)+a

(i)pi j

= a(1)pi j

= api j

gdy i > j

(LU)ij =

j∑k=1

likukj =

j−1∑k=1

(a(k)pi k/a

(k)pkk

)a(k)pk j

+ (a(j)pi j/a

(j)pj j

)a(j)pj j

=

=

j−1∑k=1

(a(k)pi j− a

(k+1)pi j

) + a(j)pi j

= a(1)pi j

= api j

Wojciech Szewczuk MN

Page 59: Metody Numeryczne Rozwiązywanie układów równań liniowych

PA = LU

Z drugiej strony

(PA)ij =n∑

k=1

(P)ikakj =n∑

k=1

δpi kakj = api j

Dla wszystkich par (i , j) zachodzi więc (PA)ij = (LU)ij

Wojciech Szewczuk MN

Page 60: Metody Numeryczne Rozwiązywanie układów równań liniowych

Koszt obliczeń

czas wykonania mnożenia i dzielenia jest zwykle podobny

czas wykonania mnożenia i dzielenia jest dłuższy niż dodawania i odejmowania

przyjęło się mierzyć koszt obliczeń liczbą długich działań (op) – parmnożenie-dodawanie itp.

Twierdzenie 9

Jeśli eliminację Gaussa wykonano ze skalowanym wyborem elementów głównych, torozwiązanie m układów Ax = b o wspólnej macierzy A i m różnych wektorach bwymaga około 1

3n3 + (m + 1

2 )n2 długich działań.

odwrotność A−1 można obliczyć rozwiązując n układów Ax(i) = ei

Wojciech Szewczuk MN

Page 61: Metody Numeryczne Rozwiązywanie układów równań liniowych

Macierze dominujące przekątniowo

Definicja 5

Macierz jest dominująca przekątniowo jeśli

|aii | >n∑

j=0,j 6=i

|aij | (1 ≤ i ≤ n)

Przykład 8 4 −1 0 0 −1−1 4 0 −1 0−1 0 4 0 −10 −1 −1 −4 −10 0 0 0 −6

Wojciech Szewczuk MN

Page 62: Metody Numeryczne Rozwiązywanie układów równań liniowych

Macierze dominujące przekątniowo

Jeśli macierz układu równań jest dominująca przekątniowo, to w pierwszymkroku eliminacji Gaussa wierszem głównym może być wiersz pierwszy (na mocyDefinicji 5 a11 jest różny od 0).

Twierdzenie 10

Eliminacja Gaussa bez wyboru elementów głównych zachowuje dominacjęprzekątniową macierzy.

Wniosek 1

Każda macierz dominująca przekątniowo jest nieosobliwa i ma rozkład LU.

Wniosek 2

Niech macierz będzie dominująca przekątniowo. Jeśli w eliminacji Gaussa zeskalowalnym wyborem wierszy głównych tablicę skal oblicza się na nowo po każdymkroku, to wiersze główne mają naturalny porządek: 1, 2, ..., n, czyli można pominąćkroki określające wybór tych wierszy.

Wojciech Szewczuk MN

Page 63: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy trójprzekątniowe

Definicja 6

Macierz A jest trójprzekątniowa jeśli aij = 0 dla |i − j | > 1.

d1 c1a1 d2 c2

a2 d3 c3

. . .. . .

. . .an−2 dn−1 cn−1

an−1 dn

x1x2x3...

xn−1xn

=

b1b2b3...

bn−1bn

Wojciech Szewczuk MN

Page 64: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy trójprzekątniowe

d1 c1a1 d2 c2

a2 d3 c3

. . .. . .

. . .an−2 dn−1 cn−1

an−1 dn

x1x2x3

.

.

.xn−1xn

=

b1b2b3

.

.

.bn−1bn

załóżmy, że macierz nie wymaga stosowania wyboru elementów głównych (np.jest symetryczna dodatnio określona)

możemy użyć zwykłej eliminacji Gaussa z dodatkiem jednoczesnego

przetwarzania wektora bw pierwszym kroku od wiersza 2 odejmujemy taką wielokrotność wiersza 1, żeby wyzerowaćelement na pozycji zajmowanej dotąd przez a1d2 i b2 zmieniają się, ale nie c2mnożnikiem jest a1/d1w tym kroku wykonujemy podstawienia d2 ← d2 − (a1/d1)c1 oraz b2 ← b2 − (a1/d1)b1następne kroki eliminacji w przód są takie samepodstawienie wstecz zaczyna się od xn ← bn/dndrugim krokiem jest xn−1 ← (bn−1 − cn−1xn)/dn−1pozostałe podstawienia są podobne

kompletny algorytm o nazwie tri przedstawiony jest na kolejnym slajdzie

Wojciech Szewczuk MN

Page 65: Metody Numeryczne Rozwiązywanie układów równań liniowych

Algorytm tri

input n, (ai ), (bi ), (ci ), (di )for i = 2 to n do

di ← di − (ai−1/di−1)ci−1bi ← bi − (ai−1/di−1)bi−1

end doxn ← bn/dnfor i = n − 1 to 1 step -1 do

xi ← (bi − ci xi+1)/diend dooutput (xi )

Wojciech Szewczuk MN

Page 66: Metody Numeryczne Rozwiązywanie układów równań liniowych

Normy wektorów

Definicja 7

W przestrzeni wektorowej V norma jest funkcją ‖·‖ określoną na V , o wartościachrzeczywistych nieujemnych, która ma trzy własności:

‖x‖ > 0 dla x 6= 0, x ∈ V ,

‖λx‖ = |λ| ‖x‖ dla λ ∈ R, x ∈ V ,

‖x + y‖ ≤ ‖x‖+ ‖y‖ dla x , y ∈ V (nierówność trójkąta).

Normę ‖x‖ można uznać za długość albo wielkość wektora x .Jest to uogólnienie pojęcia wartości bezwzględnej

Wojciech Szewczuk MN

Page 67: Metody Numeryczne Rozwiązywanie układów równań liniowych

Normy wektorów

Definicja 8

‖x‖2 :=(∑n

i=1 x2i

)1/2, gdzie x = (x1, x2, ..., xn)T

‖x‖∞ := max1≤i≤n

|xi |

‖x‖1 :=∑n

i=1 |xi |

Przykład 9

Weźmy wektoryx := (4, 4− 4) v := (0, 5, 5) w := (6, 0, 0)

‖x‖1 ‖x‖2 ‖x‖∞x 12 6.93 4v 10 7.07 5w 6 6 6

Wojciech Szewczuk MN

Page 68: Metody Numeryczne Rozwiązywanie układów równań liniowych

Normy wektorów

Rozważmy przestrzeń R2 oraz zbiór{x : x ∈ R2, ‖x‖ ≤ 1}.

Rysunek po lewej przedstawia kostkę(kulę) jednostkowąw dwuwymiarowej przestrzeni.

Wojciech Szewczuk MN

Page 69: Metody Numeryczne Rozwiązywanie układów równań liniowych

Normy macierzy

Formalnie rzecz biorąc wystarczy, żeby norma macierzy spełniała warunki podane dlanormy wektorowej.

Definicja 9

Dla ustalonej normy ‖·‖ wektora indukowana przez nią norma macierzy kwadratowej Astopnia n jest określona wzorem

‖A‖ := sup‖u‖=1

{‖Au‖ : u ∈ Rn} (1)

Twierdzenie 11

Dla dowolnej normy ‖·‖ w Rn wzór 1 określa normę w przestrzeni liniowej macierzystopnia n.

Z definicji 9 wynika, że‖Ax‖ ≤ ‖A‖ ‖x‖ x ∈ Rn

Wojciech Szewczuk MN

Page 70: Metody Numeryczne Rozwiązywanie układów równań liniowych

Normy macierzy

Twierdzenie 12

Norma macierzowa indukowana przez normę wektorową „nieskończoność” wyraża sięwzorem

‖A‖∞ = max1≤i≤n

n∑j=1

|aij |

Twierdzenie 13

Norma macierzowa indukowana przez normę wektorową euklidesową zwana jest normąspektralną i wyraża się wzorem

‖A‖2 = sup‖x‖2=1

‖Ax‖2

lub równoważnie

‖A‖2 =√ρ(ATA),

gdzie promień spektralny ρ(ATA) jest z definicji największą wartością własną macierzyATA.

Wojciech Szewczuk MN

Page 71: Metody Numeryczne Rozwiązywanie układów równań liniowych

Normy macierzy

Oprócz poznanych własności, norma macierzowa indukowana przez dowolną normęwektorową ma jeszcze następujące własności:

‖I‖ = 1

‖AB‖ ≤ ‖A‖ ‖B‖

Wojciech Szewczuk MN

Page 72: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wskaźnik uwarunkowania

Rozważmy układ Ax = b o macierzy kwadratowej nieosobliwej.Jeśli macierz A−1 jest zaburzona (tzn. zamiast macierzy A−1 mamy macierz B), tozaburzenie przeniesie się na rozwiązanie x = A−1b , zamiast którego otrzymamyx = Bb .Zbadajmy jak duże jest zaburzenie rozwiązania.Dla dowolnej normy wektorowej i indukowanej przez nią normy macierzowej wielkośćzaburzenia bezwzględnego wynika z nierówności

‖x− x‖ = ‖x− Bb‖ = ‖x− BAx‖ = ‖(I− BA)x‖ ≤ ‖I− BA‖ ‖x‖ ,

a zaburzenia względnego‖x− x‖‖x‖

≤ ‖I− BA‖ .

Wojciech Szewczuk MN

Page 73: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wskaźnik uwarunkowania

Przykład 10

Załóżmy, że zamiast b mamy wektor zaburzony b. Niech x i x spełniają równania

Ax = b

Ax = b

Zbadajmy jak różnią się x i x. Jeśli macierz A jest nieosobliwa to

||x− x|| = ||A−1b− A−1b|| = ||A−1(b− b)|| ≤ ||A−1|| ||b− b||

Jest to zaburzenie bezwzględne.Zaburzenie względne otrzymamy zakładając b 6= 0.

||x− x|| ≤ ||A−1|| ||b− b|| = ||A−1|| ||Ax||||b− b||||b||

≤ ||A−1|| ||A|| ||x||||b− b||||b||

Stąd otrzymamy||x− x||||x||

≤ κ(A)||b− b||||b||

gdzie κ(A) = ||A−1|| ||A||.

Wojciech Szewczuk MN

Page 74: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wskaźnik uwarunkowania

Definicja 10

Wielkośćκ(A) := ‖A‖

∥∥A−1∥∥

nazywamy wskaźnikiem uwarunkowania.

Wojciech Szewczuk MN

Page 75: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wskaźnik uwarunkowania

Własności wskaźnika uwarunkowania:

wskaźnik uwarunkowania zależy od wybranej normy macierzy (κ∞(A), κ2(A),...)

κ(A) ≥ 1

błąd względny obliczonego rozwiązania x nie przewyższa błędu względnego

prawej strony pomnożonego przez wskaźnik uwarunkowania

⇒ jeśli wskaźnik uwarunkowania jest mały to małe zaburzenie prawejstrony b nieznacznie zaburzy rozwiązanie x

⇒ jeśli wskaźnik uwarunkowania jest duży to małe zaburzenie prawej

strony b znacznie zaburzy rozwiązanie x

Wojciech Szewczuk MN

Page 76: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wskaźnik uwarunkowania

Przykład 11

Weźmy macierz

A =

[1 1 + ε

1− ε 1

]A−1 = ε−2

[1 −1− ε

−1 + ε 1

]i ε > 0.Z Twierdzenia 12 otrzymamy||A||∞ = 2 + ε i ||A−1||∞ = ε−2 (2 + ε)

κ (A) = [(2 + ε) /ε]2 > 4/ε2

ε ≤ 0.01⇒ κ (A) > 40 000

A więc małe zburzenie względne wektora b może spowodować 40 000 razy większezaburzenie względne rozwiązania układu

Ax = b

.

Wojciech Szewczuk MN

Page 77: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wskaźnik uwarunkowania

Rozwiązując numerycznie układ równań

Ax = b

otrzymujemy zamiast rozwiązania dokładnego x rozwiązanie przybliżone x.Jego dokładność sprawdzamy porównując Ax z b.

r := b− Ax – wektor residualny

e := x− x – wektor błędu

Ae = r

Wojciech Szewczuk MN

Page 78: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wskaźnik uwarunkowania

Twierdzenie 14

Wektory residualny i wektor błędu oraz wskaźnik uwarunkowania spełniają nierówność

1

κ(A)‖r‖‖b‖≤‖e‖‖x‖≤ κ(A)

‖r‖‖b‖

. (2)

Wojciech Szewczuk MN

Page 79: Metody Numeryczne Rozwiązywanie układów równań liniowych

Dowód Twierdzenia 14.

Prawa strona nierówności 2 jest równoważna temu, że

||e|| ||b|| ≤ ||A|| ||A−1|| ||r|| ||x||

a to jest prawdą na podstawie:

||e|| ||b|| = ||A−1r || ||Ax|| ≤ ||A−1|| ||r|| ||A|| ||x||.

Lewą stronę nierówności 2 możemy zapisać w postaci

||r|| ||x|| ≤ ||A|| ||A−1|| ||b|| ||e||

a to mamy z faktu, że

||r|| ||x|| = ||Ae|| ||A−1b|| ≤ ||A|| ||e|| ||A−1|| ||b||

Wojciech Szewczuk MN

Page 80: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wskaźnik uwarunkowania

Macierz A o dużym κ(A) nazywamy źle uwarunkowaną. W takim przypadkurozwiązanie układu Ax = b może być bardzo czułe na zmiany wektora b.

Macierz A o małym κ(A) nazywamy dobrze uwarunkowaną.

Wojciech Szewczuk MN

Page 81: Metody Numeryczne Rozwiązywanie układów równań liniowych

Układy o kłopotliwych macierzach

Wstępne wyważanie wierszy.

Wstępne wyważanie kolumn.

Pełny wybór elementów głównych.

Wyważanie lub skalowanie w każdym kroku eliminacji.

Poprawianie iteracyjne rozwiązania końcowego.

Wojciech Szewczuk MN

Page 82: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wyważanie wierszy

Wyważanie wierszy polega na dzieleniu wszystkich elementów każdego wierszamacierzy współczynników przez ten z nich, który ma największą wartość bezwzględną(Przy rozwiązywaniu układu należy pamiętać, że wektor b też musi być odpowiedniopodzielony).i-te równanie układu:

n∑j=1

aijxj = bi −→n∑

j=1

(riaij )xj = ribi ,

gdzie ri := 1/ max1≤j≤n

|aij | (1 ≤ i ≤ n).

W praktyce lepiej jest wybrać ri równe 2m (m ∈ Z) najbliższe 1/ max1≤j≤n

|aij |.

Wojciech Szewczuk MN

Page 83: Metody Numeryczne Rozwiązywanie układów równań liniowych

Wyważanie kolumn

Wyważanie kolumn polega na tym, że j-tą kolumnę mnożymy przezcj := 1/ max

1≤i≤n|aij | (1 ≤ j ≤ n) (lub bliską tej wartości liczbę 2m).

i-te równanie układu:

n∑j=1

aijxj = bi −→n∑

j=1

(cjaij )xj

cj= bi .

Rozwiązanie da wielkościxjcj

, więc aby otrzymać rozwiązanie oryginalnego układu,

należy je pomnożyć przez cj .

Wojciech Szewczuk MN

Page 84: Metody Numeryczne Rozwiązywanie układów równań liniowych

Poprawianie iteracyjne

Niech x będzie obliczonym rozwiązaniem równania Ax = b.Poczynając od k = 0 aż do uzyskania pożądanej dokładności:

1 r(k) = b− Ax(k) (x(0) = x)2 Ae = r(k) (używamy znanego z poprzednich obliczeń rozkładu LU macierzy A)

3 x(k+1) = x(k) + e

Ze względu na znoszenie błędów wektor residualny powinien być liczony z większąprecyzją niż pozostałe obliczenia.

Wojciech Szewczuk MN

Page 85: Metody Numeryczne Rozwiązywanie układów równań liniowych

Poprawianie iteracyjne

Przykład 12 1 12

13

12

13

14

13

14

15

x1x2x3

=

323124330

x = [1, 2, 3]T

Rozkład LU wygląda następująco:

L =

1 0 012 1 013 1 1

, U =

1 12

13

0 112

112

0 0 1180

Wprowadźmy błąd do LU używając tylko sześciu cyfr do reprezentacji liczb:

L =

1 0 00.5 1 0

0.333333 1 1

, U =

1 12 0.333333

0 0.0833333 0.08333330 0 0.555556× 10−2

x(0) =

1.000029600035121.999824400142893.00017759985791

Wojciech Szewczuk MN

Page 86: Metody Numeryczne Rozwiązywanie układów równań liniowych

Poprawianie iteracyjne

Przykład c.d.

r(0) = 10−5 ×

−0.10000591998960−0.06666963332513−0.14866856774542

Rozwiązujemy układ LUe = r(0)

e = 10−3 ×

−0.029600080246190.17559977427749−0.17759977587713

x(1) = x(0) + e =

0.999999999954871.999999999917163.00000000008204

Wojciech Szewczuk MN

Page 87: Metody Numeryczne Rozwiązywanie układów równań liniowych

Rozwiązywanie układów równań liniowych metodami iteracyjnymi

Algorytm Gaussa jest metodą bezpośrednią rozwiązywanie układu Ax = b. Poskończonej liczbie kroków dostajemy rozwiązanie, które byłoby dokładne, gdybynie błędy zaokrągleń.

Metoda iteracyjna tworzy ciąg wektorów zbieżny do rozwiązania!

dla wielkich układów (tysiące równań) często górują nad metodamibezpośrednimi szybkością działania i wymaganiami dotyczącymi pamięcioperacyjnejsą często efektywne dla układów rzadkich

są zazwyczaj stabilne, błędy zaokrągleń są wygaszane w dalszych

obliczeniach

Wojciech Szewczuk MN

Page 88: Metody Numeryczne Rozwiązywanie układów równań liniowych

Rozwiązywanie układów równań liniowych metodami iteracyjnymi

Przykład 13

Rozważmy układ[7 −6−8 9

] [x1x2

]=

[3−4

]o rozwizaniem dokadnym x =

[ 15− 4

15

]Wyraźmy i−tą niewiadomą z i−tego równania przez:

x(k)1 =

6

7x(k−1)2 +

3

7

x(k)2 =

8

9x(k−1)1 −

4

9

Otrzymaliśmy metodę (iterację) Jacobiego.

W pierwszym kroku metody musimy wybrać przybliżenia początkowe x(0)1 i x(0)2 (jak

nie mamy lepszych, mogą to być zera).

Wojciech Szewczuk MN

Page 89: Metody Numeryczne Rozwiązywanie układów równań liniowych

Rozwiązywanie układów równań liniowych metodami iteracyjnymi

Przykład c.d.

k x(k)1 x

(k)2

0 0.00000 0.0000010 0.14865 −0.1982020 0.18682 −0.2490930 0.19662 −0.2621540 0.19913 −0.2655150 0.19978 −0.26637

Wojciech Szewczuk MN

Page 90: Metody Numeryczne Rozwiązywanie układów równań liniowych

Rozwiązywanie układów równań liniowych metodami iteracyjnymi

Przykład 14

Metodę z przykładu 13 można zmodyfikować tak, żeby ostatnio obliczone x(k)1 było od

razu użyte do wyznaczenia x(k)2 .

x(k)1 =

6

7x(k−1)2 +

3

7

x(k)2 =

8

9x(k)1 −

4

9

Otrzymaliśmy metodę (iterację) Gaussa-Seidela.

k x(k)1 x

(k)2

0 0.0000010 0.21978 −0.2490920 0.20130 −0.2653130 0.20009 −0.2665940 0.20001 −0.2666650 0.20000 −0.26667

Możemy przypuszczać, że dwie metody dają ciągi przybliżeń zbieżne do rozwiązaniadokładnego

( 15 , −

415

)i że druga jest zbieżna szybciej.

Wojciech Szewczuk MN

Page 91: Metody Numeryczne Rozwiązywanie układów równań liniowych

Ogólna metoda iteracyjna

Rozważmy układ

Ax = b. (3)

Dla ustalonej macierzy Q wyraźmy ten układ w równoważnej postaci

Qx = (Q− A)x+ b. (4)

Spodziewamy się, że proces iteracyjny możemy opisać równaniem

Qx(k) = (Q− A)x(k−1) + b (k ≥ 1). (5)

wektor x(0) może być dowolny (warto wykorzystać jakąkolwiek informację orozwiązaniu dokładnym)

metoda iteracyjna oparta na równaniu 5 jest zbieżna, jeśli ciąg {x(k)} jestzbieżny do x dla dowolnego wektora początkowego x(0).

Wojciech Szewczuk MN

Page 92: Metody Numeryczne Rozwiązywanie układów równań liniowych

Ogólna metoda iteracyjna

Macierz Q powinna spełniać następujące warunki:

Obliczanie przybliżeń x(k) jest łatwe.

Ciąg {x(k)} jest zbieżny do rozwiązania.

Drugi warunek jest spełniony, jeśli Q−1 jest dobrym przybliżeniem A−1.

Wojciech Szewczuk MN

Page 93: Metody Numeryczne Rozwiązywanie układów równań liniowych

Ogólna metoda iteracyjna

Załóżmy, że macierz A i Q są nieosobliwe. Wtedy z równania 5 możemy napisaćteoretyczny wzór

x(k) := (I−Q−1A)x(k−1) +Q−1b (6)

Uwaga w praktyce numerycznej wektor x(k) oblicza się z równania 5.Dokładne rozwiązanie spełnia równanie

x = (I−Q−1A)x+Q−1b. (7)

x jest więc punktem stałym odwzorowania

x 7→ (I−Q−1A)x+Q−1b. (8)

Odejmijmy stronami równanie 7 od 6:

x(k) − x = (I−Q−1A)(x(k−1) − x) (9)

Wojciech Szewczuk MN

Page 94: Metody Numeryczne Rozwiązywanie układów równań liniowych

Ogólna metoda iteracyjna

Dla dowolnej normy wektorowej i indukowanej przez nią normy macierzowej równanie9 daje nierówność ∥∥∥x(k) − x∥∥∥ ≤ ∥∥I−Q−1A

∥∥∥∥∥x(k−1) − x∥∥∥ ,

a z tego wynika, że ∥∥∥x(k) − x∥∥∥ ≤ ∥∥I−Q−1A∥∥k ∥∥∥x(0) − x∥∥∥ .

A więc jeśli ∥∥I−Q−1A∥∥ < 1,

tolim

k→∞

∥∥∥x(k) − x∥∥∥ = 0

dla dowolnego x(0).

Wojciech Szewczuk MN

Page 95: Metody Numeryczne Rozwiązywanie układów równań liniowych

Ogólna metoda iteracyjna

Twierdzenie 15

Jeśli ∥∥I−Q−1A∥∥ < 1

dla pewnej normy indukowanej macierzy, to ciąg określony równaniem

Qx(k) = (Q− A)x(k−1) + b (k ≥ 1)

jest zbieżny do rozwiązania układuAx = b

dla dowolnego wektora początkowego x(0).

Zakładając, że norma δ :=∥∥I−Q−1A

∥∥ < 1, możemy zakończyć proces iteracyjny, gdywielkość

∥∥x(k) − xk−1∥∥ jest dostatecznie mała.∥∥∥x(k) − x∥∥∥ ≤ δ

1− δ

∥∥∥x(k) − xk−1∥∥∥

Wojciech Szewczuk MN

Page 96: Metody Numeryczne Rozwiązywanie układów równań liniowych

Metoda Jacobiego

W metodzie Jacobiego macierz Q jest macierzą przekątniową o elementach aii takichjak w A. Wtedy

(Q−1A)ij = aij/aii

i ta macierz ma jedynki na głównej przekątnej. Dlatego

∥∥I−Q−1A∥∥∞ = max

1≤i≤n

n∑j=1,j 6=i

|aij/aii |. (10)

Wojciech Szewczuk MN

Page 97: Metody Numeryczne Rozwiązywanie układów równań liniowych

Metoda Jacobiego

Twierdzenie 16

Jeśli macierz A jest dominująca przekątniowo, to dla dowolnego wektorapoczątkowego metoda Jacobiego tworzy ciąg zbieżny do rozwiązania układu Ax = b.

Dowód:Z założenia mamy

|aii | >n∑

j=1,j 6=i

|aij |

. Biorąc powyższe i równanie 10 dostaniemy∥∥I−Q−1A∥∥∞ < 1

i na mocy twierdzenia 15 metoda Jacobiego jest zbieżna.

Wojciech Szewczuk MN

Page 98: Metody Numeryczne Rozwiązywanie układów równań liniowych

Metoda Jacobiego – algorytm

input n, (aij ), (bi ), (xi ), Mfor k = 1 to M do

for i = 1 to n doui ← (bi −

∑nj=1,j 6=i aij xj )/aii

end dofor i = 1 to n doxi ← ui

end dooutput k, (xi )

end do

Algorytm można poprawić, wykonując wszystkie dzielenia przed rozpoczęciem iteracji.for i = 1 to n do

d ← 1/aiibi ← dbi

for j = 1 to n do

aij ← daij

end do

end do

Wtedy główna instrukcja uprości się do postaci

ui ← bi −n∑

j=1,j 6=i

aijxj

Wojciech Szewczuk MN

Page 99: Metody Numeryczne Rozwiązywanie układów równań liniowych

Metoda Gaussa-Seidela

W metodzie Gaussa-Seidela Q jest częścią trójkątną dolną (wraz z główną przekątną)macierzy A.

Twierdzenie 17

Jeśli macierz A jest dominująca przekątniowo, to metoda Gaussa-Seidela jest zbieżnadla dowolnego wektora początkowego.

Wojciech Szewczuk MN

Page 100: Metody Numeryczne Rozwiązywanie układów równań liniowych

Metoda Gaussa-Seidela – algorytm

input n, (aij ), (bi ), (xi ), Mfor k = 1 to M do

for i = 1 to n doxi ← (bi −

∑nj=1,j 6=i aij xj )/aii

end dooutput k, (xi )

end do

Wojciech Szewczuk MN

Page 101: Metody Numeryczne Rozwiązywanie układów równań liniowych

Metoda Gaussa-Seidela – algorytm

Efektywność metody Gaussa-Seidela można zwiększyć , odpowiednio przekształcającukład.

Przykład 15

Rozważmy układ 2 −1 01 6 −24 −3 8

x1x2x3

=

2−45

i weźmy x(0) = (0, 0, 0)T .Układ skalujemy, czyli wyrażamy w postaci:

D−1Ax = D−1b,

gdzie D = diag(aii ). 1 − 12 0

16 1 − 1

312 − 3

8 1

x1x2x3

=

1− 2

358

Wojciech Szewczuk MN

Page 102: Metody Numeryczne Rozwiązywanie układów równań liniowych

Metoda Gaussa-Seidela – algorytm

Przykład c.d.

x(k)1 =

1

2x(k−1)2 + 1

x(k)2 = −

1

6x(k)1 +

1

3x(k−1)3 −

2

3

x(k)3 = −

1

2x(k)1 +

3

8x(k)2 +

5

8

k x(k)1 x

(k)2 x

(k)3

1 1.000000 −0.833333 −0.1875005 0.622836 −0.760042 0.028566

10 0.620001 −0.760003 0.02999813 0.620000 −0.760000 0.030000

Rozwiązanie dokładne:

x =(

62

100, −

76

100,

3

100

)T

Wojciech Szewczuk MN