• Nie Znaleziono Wyników

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
16
0
0

Pełen tekst

(1)

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

Plan wykładu:

1. Przykłady macierzy rzadkich i formaty ich zapisu 2. Metody: Jacobiego, Gaussa-Seidla, nadrelaksacji 3. Zbieżność metod iteracyjnych

4. Metody: największego spadku, sprzężonego gradientu.

Literatura: Yousef Saad „Iterative methods for sparse linear systems”

(2)

DWT 87: WIeża DWT 234: Wieża z platformą DWT 607: Wirnik Wankela Matrix Market - DWT: Everstine's collection from the Harwell-Boeing Collection

Łopata turbiny 2802 x 2802, 6342 NZ

Cylinder z kołnierzem 2919 x 2919,

7593 NZ

(3)

3 Wybrane formaty zapisu macierzy rzadkich

- CSR (compressed sparse row) – trzy wektory: wartości, numery kolumn, początki wierszy (pierwsze nie-zero w wierszu)

- CSC (compressed sparse column) – trzy wektory: wartości, numery wierszy, początki kolumn (pierwsze nie-zero w kolumnie)

- CF (coordinate format) – trzy wektory dla: wartości, oraz numery kolumn i wierszy dla nie-zer

CSR dla macierzy symetrycznej – zapamiętujemy tylko macierz U

CSR dla macierzy niesymetrycznej

wartości = (1 -1 -3 5 4 6 4 7 -5) kolumna = (1 2 4 2 3 4 5 4 5) wiersz = (1 4 5 8 9 10)

wartości = (1 -1 -3 -2 5 4 6 4 -4 2 7 8 -5) kolumna = (1 2 4 1 2 3 4 5 1 3 4 2 5) wiersz = (1 4 6 9 12 14)

(4)

Mnożenie Ax=y w formacie CSR dla macierzy niesymetrycznej

a[ ] - elementy macierzowe, k[] - numery kolumn, w[]-indeksy z poczatkami wierszy

y=0;

for(i=1; i<n; i++){

l1=w[i]; // początek indeksow dla i-tego wiersza l2=w[i+1]-1; // koniec indeksów dla i-tego wiersza

for(l=l1; l<=l2; l++){

j=k[l]; //numer kolumny y[i]=y[i]+a[l]*x[j];

} }

X

n j=1

a

ij

x

j

= y

i

(5)

5 Mnożenie Ax=y w formacie CSR dla macierzy symetrycznej

A=U+D+L oraz L=UT

(U+D+L)x = y =(D+U)x + (x

T

U)

T

Czyli

Jeśli zamienimy wskaźniki w drugiej sumie to element aij*xi będzie dawać wkład do yj , które zostanie wyznaczone później (j>i) – w ten sposób dochodząc do wiersza j-tego wartość drugiej sumy będzie znana.

a[ ] - wektor elementów macierzowych, k[] - numery kolumn, w[]-indeksy z początkami wierszy y=0;

for(i=1; i<=n; i++){

l1=w[i]; // początek indeksow dla i-tego wiersza l2=w[i+1]-1; // koniec indeksów dla i-tego wiersza

for(l=l1; l<=l2; l++){

j=k[l]; //numer kolumny y[i]=y[i]+a[l]*x[j];

if( i!=j ) y[j]=y[j]+a[l]*x[i]; // sumowanie tyko po elementach pozadiagonalnych // modyfikacja pochodzi od drugiej sumy

} }

X

n j=1

a

ij

x

j

= y

i

! X

n

j=i

a

ij

x

j

+ X

j<i

x

j

a

ji

(6)

Oznaczmy A jako sumę 3 macierzy

Metoda Jacobiego

Dla dowolnie wybranego przybliżenia rozwiązania x0 chcemy tak przekształacać iteracyjnie wektor x(k) aby doprowadzić do znikania składowych wektora reszt w k iteracjach

co można zapisać Szukamy rozwiązania układu n równań

liniowych

Dlaczego używamy metod iteracyjnych?

Przykład

N=50000 – liczba równań w układzie fl2 = 8 bajtów/liczbę – podwójna precyzja a) Ograniczenia pamięci

Pd<N2fl2= 20 GB (10GB) – zaalokowana pamięć w komputerze

Ale jeśli układ jest np. pięcioprzekątniowy to do zapisu macierzy A (w postaci wektorowej)

potrzebujemy tylko Pi<5Nfl2 =2MB pamięci

b) większa wydajność dla macierzy rzadkich (liczba elementów macierzy różnych od 0 jest rzędu N) w stosunku do metod bezpośrednich Macierze takie często pojawiają się w

obliczeniach naukowych i inżynierskich (FEM, PDE)

Ax = b; A 2 R

n£n

; x; b 2 R

n

x = [»

1

; »

2

; : : : ; »

n

] b = [¯

1

; ¯

2

; : : : ; ¯

n

]

(b ¡ Ax

(k)

)

i

= 0

¯

i

¡ X

n

j

a

ij

»

j(k)

= 0 A = L + D + U

D

U

L

(7)

7 Składowe wektora reszt znikają w kolejnych

iteracjach, więc możemy zapisać

oraz dla całego wektora

W metodzie Jacobiego obliczamy kolejno wszystkie składowe nowego przybliżenia wektora rozwiązań.

Metoda Gaussa-Seidla

Różni się od metody Jacobiego tym, że obliczone już składniki

wykorzystywane są w obliczeniach składników j+1,j+2,...,n.

»

ik+1

= 1 a

ii

0

B @¯

i

¡ X

n

j j6=i

a

ij

»

j(k)

1 C A a

ii

»

i(k)

= ¯

i

¡

X

n

j j6=i

a

ij

»

j(k)

; i = 1; 2; : : : ; n

»

ik

; i = 1; 2; : : : ; j

»

i(k+1)

=

= 1 a

ii

0

i¡1

X

j=1

a

ij

»

j(k+1)

¡

X

n j=i+1

a

ij

»

j(k)

+ ¯

i

1 A

x

(k+1)

= ¡D

¡1

(L + U )x

(k)

+ D

¡1

b

b ¡ Lx

(k+1)

¡ Dx

(k+1)

¡ U x

(k)

= 0 x

(k+1)

= ¡D

¡1

Lx

(k+1)

¡ D

¡1

U x

(k)

+ D

¡1

b

¯

i

¡

i¡1

X

j=1

a

ij

»

j(k+1)

¡a

ii

»

i(k+1)

¡

X

n j=i+1

a

ij

»

j(k)

= 0

(8)

8 Metody Jacobiego i GS można zapisać ogólnie

w postaci

M x

(k+1)

= N x

(k)

+ b = (M ¡ A)x

(k)

+ b A = M ¡ N

metoda Jacobiego:

metoda Gaussa-Seidela:

Metoda relaksacji

Metoda nadrelaksacji (SOR) (Successive Over Relaxation)

M = D

»

i(k+1)

= !»

i(k+1)GS

+ (1 ¡ !)»

i(k)

! 2 (1; 2)

Macierze iterujące i ich przekształcenia (preconditioning)

Ogólny schemat iteracyjny

przy podziale macierzy A

definiujemy iterację do ustalonego punktu w jako

Z porównania obu zapisów dostajemy

A = M ¡ N

x

(k+1)

= M

¡1

N x

(k)

+ M

¡1

b

G = M

¡1

N = M

¡1

(M ¡ A) = I ¡ M

¡1

A f = M

¡1

b

x

(k+1)

= Gx

(k)

+ f G

J

(A) = I ¡ D

¡1

A

G

GS

(A) = I ¡ (D + L)

¡1

A M = D + L

(D + !L)x

(k+1)

= [ ¡!U + (1 ¡ !)D]x

k

+ !b A = L + D + U

!A = !D + !L + !U

!A = (D + !L) + (!U ¡ (1 ¡ !)D)

b ¡ Lx

(k+1)

¡ Dx

(k+1)

¡ U x

(k)

= 0

(9)

9 Zbieżność metod iteracyjnych

Dla macierzy

definiujemy liczbę

którą nazywamy promieniem spektralnym macierzy.

Dla dowolnej macierzy kwadratowej zgodnej z normą wektorów prawdziwa jest nierówność

Lemat

Tw. Dla każdego wektora elementy ciągu

dążą do zera wtedy i tylko wtedy gdy

Dowód Proces iteracyjny

możemy potraktować także jako problem rozwiązania układu

co dla G=I-M-1A daje układ równań

Układ ten ma identyczne rozwiązanie jak układ pierwotny. Co nam to daje?

Z przepisu iteracyjnego

wynika, że musimy w każdej iteracji obliczyć

Ponieważ M-1 nie znamy, więc chcemy

niewielkim kosztem rozwiązać układ równań

Dla metod Jacobiego, Gaussa-Seidla i SOR macierz ta ma postać:

x

(k+1)

= Gx

(k)

+ f

(I ¡ G)x = f

M

¡1

Ax = M

¡1

b

A 2 R

n£n

i

j · jjAjj; ¸

i

2 Z

x 2 R

n

½(A) < 1 Ax; A

2

x; : : : ; A

i

x; : : :

^

">0

_

jjAjjp

jjAjj

p

· ½(A) + "

M

J

= D

M

GS

= D + L M

SOR

= 1

! (D + !L)

½(A) = max

i=1;2;:::;n

i

j

x

(k+1)

= M

¡1

N x

(k)

+ M

¡1

b

M

¡1

N x

(k)

= M

¡1

y

(k)

= z

(k)

M z

(k)

= y

(k)

" = 1 ¡ ½(A) 2

jjAjj

p

· 1 + ½(A)

2 < 1

jjA

n

x jj

p

· jjAjj

np

jjxjj

p

! 0

A

n

x ! 0

(10)

Tw. Ciąg wektorów

którego elementy wyznaczamy według wzoru

jest zbieżny do jedynego punktu granicznego wtedy i tylko wtedy gdy

Dowód

x

(0)

; x

(1)

; : : : ; x

(i)

; : : :

x

(i+1)

= Gx

(i)

+ f; i = 0; 1; : : :

x

(i+1)

= Gx

(i)

+ f = G(Gx

(i¡1)

+ f ) + f = : : :

= G

i+1

x

(0)

+ (G

i

f + G

i¡1

f + : : : + f )

i

lim

!1

G

i+1

x

(0)

! 0

jjf + G

1

f + : : : + G

i

f + : : : jj

p

·

· X

1

i=0

jjfjj

p

jjGjj

ip

= jjfjj

p

1 ¡ jjGjj

p

Zbieżność w metodzie SOR

Jeśli macierz układu jest symetryczna,

dodatniookreślona i nieosobliwa to procedura iteracyjna jest zawsze zbieżna dla

G

SOR

= (D + !L)

¡1

[ ¡!U + (1 ¡ !)D]

det(G

SOR

) = det ¡

(D + !L)

¡1

¢

£ det (¡!U + (1 ¡ !)D)

det ( ¡!U + (1 ¡ !)D) = det((1 ¡ !)D)

= (1 ¡ !)

n

det(D) det(G

SOR

) = (1 ¡ !)

n

det(G

SOR

) = ¸

1

¸

2

: : : ¸

n

j1 ¡ !j · max

i=1;:::;n

¸

i

= ½(G

SOR

) < 1 0 < ! < 2

0 < ! < 2 det ¡

(D + !L)

¡1

¢

= 1

det(D + !L) = 1 det(D)

½(G) < 1

(11)

11 Minimalizacja formy kwadratowej

Jeśli Ax=b i r=b-Ax to możemy utworzyć formę kwadratową postaci

Która jest dodatniookreślona i przyjmuje wartość minimalną dla dokładnego rozwiązania x.

W dalszych rozważaniach zakładamy że macierz A jest symetryczna i dodatniookreślona, wówczas możemy użyć formy kwadratowej postaci

która ma minimum w x, ponieważ

Proces poszukiwania rozwiązania dokładnego przebiega iteracyjnie, tj. szukamy ciągu przybliżeń

gdzie:

Od sposobu wyznaczania αi i vi zależy zbieżność i szybkość metody.

R = r

T

r = (b ¡ Ax)

T

(b ¡ Ax)

Q(x + ¢x) ¡ Q(x) = 1

2 ¢x

T

A¢x > 0

x

1

; x

2

; x

3

; : : : x

i+1

= x

i

+ ®

i

v

i

x1

x2

x6 x5 x4 x3

Związek gradientu Q z kierunkiem poszukiwania przybliżonego rozwiązania. Prosta interpretacja

geometryczna w 2D – powierzchnie o stałej wartości Q mają kształt elipsy (hiperelipsy w przestrzeni o większej liczbie wymiarów).

Q = 1

2 x

T

Ax ¡ x

T

b

(12)

Metoda największego spadku

Przybliżone rozwiązanie w i+1 iteracji ma postać

Jako vi wybieramy kierunek gradientu Q

W celu znalezienia współczynnika i obliczamy Q(xi+1)

i różniczkujemy je po parametrze

wariacyjnym w celu znalezienia minimum

x

i+1

= x

i

+ ®

i

v

i

rQ = Ax

i

¡ b = ¡r

i

v

i

= ¡r

i

Q(x

i

¡ ®

i

r

i

) = ¡ 1

2 x

Ti

r ¡ 1 2 x

Ti

b + 1

2 ®

2i

r

iT

Ar

i

+ ®

i

r

Ti

r

i

@Q

i

= r

Ti

r

i

+ ®

i

r

iT

Ar

i

@Q

i

= 0 ! ®

i

= ¡ r

Ti

r

i

r

iT

Ar

i

x

i+1

= x

i

+ r

iT

r

i

r

iT

Ar

i

r

i

Kolejne przybliżenie w metodzie największego spadku opisuje wyrażenie

dla którego zachodzi warunek

Metoda może być jednak wolnozbieżna w przypadku gdy hiperelipsoida ma wydłużony kształt co

odpowiada złemu uwarunkowaniu układu.

Q(x

i+1

) < Q(x

i

)

(13)

13 Metoda sprzężonego gradientu

Założenia:

- xd jest rozwiązaniem dokładnym - ciąg wektorów

stanowi bazę w n-wymiarowej przestrzeni euklidesowej

Różnicę rozwiązania dokładnego i przybliżonego możemy zapisać w postaci kombinacji liniowej elementów bazy

Jeśli elementy bazy są ortogonalne to można łatwo wyznaczyć współczynniki kombinacji liniowej

Ale powyższy wzór wymaga modyfikacji ponieważ nie znamy wektora xd, wiemy jednak, że Axd=b więc

v

1

; v

2

; v

3

; : : :

Żądamy więc, aby wektory bazy spełniały

warunek A-ortogonalności (wektory A-sprzężone)

Dla macierzy dodatniookreślonej zachodzi warunek

Jak skonstruować bazę A-ortogonalną?

Jeśli dysponujemy zwykłą bazą wektorów

to możemy ją poddać procesowi ortogonalizacji Grama-Schmidta

Jak utworzyć ciąg wektorów ui?

v

jT

Av

i

= 0 $ i 6= j

v

Ti

Av

i

6= 0

u

1

; u

2

; u

3

; : : :

v

1

= u

1

v

i+1

= u

i+1

+ X

i k=1

¯

i+1;k

v

k

¯

i+1;k

= ¡ v

kT

Au

i+1

v

Tk

Av

k

x

d

¡ x

i

=

X

n j=1

®

j

v

j

®

j

= v

jT

(x

d

¡ x

i

)

v

jT

v

j

; j = 1; 2; : : :

®

j

= v

jT

A(x

d

¡ x

i

)

v

jT

Av

j

= v

jT

r

i

v

jT

Av

j

(14)

W metodzie CG bazę stanowią wektory reszt (kierunki gradientów), które dzięki A-

ortogonalizacji są sprzężone.

Kolejne przybliżenia w podstawowej metodzie CG wyznaczamy zgodnie z poniższym schematem:

Dzięki A-ortogonalności w każdej iteracji

wystarczy wyznaczyć tylko jeden współczynnik  (reszta współczynników znika).

W podstawowej metodzie CG w każdej iteracji należy wykonać dwa mnożenia macierz-wektor

i to te dwie operacje determinują nakład obliczeń.

Algorytm metody CG można przedstawić w alternatywnej postaci, gdzie wymagamy tylko jednego mnożenia macierz-wektor:

Maksymalna liczba iteracji w metodzie CG wynosi n+1 – więc jest metodą skończoną. Zazwyczaj do uzyskania akceptowalnego rozwiązania wystarcza wykonanie znacznie mniejszej liczby iteracji.

Av

i

Ar

i+1

v

1

= r

1

= b ¡ Ax

1

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

®

i

= r

iT

r

i

v

i

Av

i

x

i+1

= x

i

+ ®

i

v

i

r

i+1

= r

i

¡ ®

i

Av

i

¯

i

= ¡ r

i+1T

r

i+1

r

Ti

r

i

v

i+1

= r

i+1

+ ¯

i

v

i

v

1

= r

1

= b ¡ Ax

1

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

®

i

= v

iT

r

i

v

iT

Av

i

x

i+1

= x

i

+ ®

i

v

i

r

i+1

= r

i

¡ ®

i

Av

i

¯

i

= ¡ v

iT

Ar

i+1

v

iT

Av

i

v

i+1

= r

i+1

+ ¯

i

v

i

(15)

15 W metodzie CG bazę stanowią wektory reszt

(kierunki gradientów), które dzięki A- ortogonalizacji są sprzężone.

Kolejne przybliżenia w podstawowej metodzie CG wyznaczamy zgodnie z poniższym schematem:

Dzięki A-ortogonalności w każdej iteracji

wystarczy wyznaczyć tylko jeden współczynnik  (reszta współczynników znika).

W podstawowej metodzie CG w każdej iteracji należy wykonać dwa mnożenia macierz-wektor

i to te dwie operacje determinują nakład obliczeń.

Algorytm metody CG można przedstawić w alternatywnej postaci, gdzie wymagamy tylko jednego mnożenia macierz-wektor:

Maksymalna liczba iteracji w metodzie CG wynosi n+1 – więc jest metodą skończoną. Zazwyczaj do uzyskania akceptowalnego rozwiązania wystarcza wykonanie znacznie mniejszej liczby iteracji.

Av

i

Ar

i+1

v

1

= r

1

= b ¡ Ax

1

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

®

i

= r

iT

r

i

v

i

Av

i

x

i+1

= x

i

+ ®

i

v

i

r

i+1

= r

i

¡ ®

i

Av

i

¯

i

= ¡ r

i+1T

r

i+1

r

Ti

r

i

v

i+1

= r

i+1

+ ¯

i

v

i

v

1

= r

1

= b ¡ Ax

1

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

®

i

= v

iT

r

i

v

iT

Av

i

x

i+1

= x

i

+ ®

i

v

i

r

i+1

= r

i

¡ ®

i

Av

i

¯

i

= ¡ v

iT

Ar

i+1

v

iT

Av

i

v

i+1

= r

i+1

+ ¯

i

v

i

(16)

16 Macierz Anxn

a

ij

= 1

1 + ji ¡ jj ; ji ¡ jj · 5 _ a

ij

= 0; ji ¡ jj > 5

Cytaty

Powiązane dokumenty

Uwaga: gdyby w naszym zadaniu jako parametry przyjęto inne niewiadome, bądź pominięto inne równanie (w wyniku realizacji nieco innej koncepcji

W dalszych rozważaniach zakładamy że macierz A jest symetryczna i dodatniookreślona, wówczas możemy użyć formy kwadratowej postaci. która ma minimum w

Rozwiązanie pojedynczego układu równań można znaleźć przy zastosowaniu algorytmu postępowania odwrotnego (ilość operacji ~n 2 ). Pomija się elementy diagonalne,

Metodę GS można zastosować w przypadku niezerowych elementów diagonalnych macierzy A. Metoda jest zbieżna jeśli macierz jest symetryczna i dodatnio określona oraz gdy jest

Rozkłady macierzy używane do rozwiązywanie układów liniowych równań algebraicznych..

Definicja: Macierz diagonalnie dominująca to taka, dla której moduły elementów na diagonali są niemniejssze od sumy modułów pozostałych elementów w tym samym wierszu, tzn. |a ii |

Nie istnieje takie m, dla którego układ rów- nań będzie układem

Złotnik ma trzy pr¸ety wykonane ze stopów złota, srebra i miedzi.W pierwszym pr¸ecie znajduje si¸e 4 gramy złota, 8 gramów srebra i 12 gramów miedzi.W drugim 8 gramów złota,