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

Podobne dokumenty
Rozwiązywanie algebraicznych układów równań liniowych metodami iteracyjnymi. Plan wykładu:

Zaawansowane metody numeryczne

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Układy równań liniowych. Krzysztof Patan

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Metody Obliczeniowe w Nauce i Technice

5. Rozwiązywanie układów równań liniowych

Zaawansowane metody numeryczne

Wykład 5. Metoda eliminacji Gaussa

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

Rozwiązywanie układów równań liniowych metody przybliżone Materiały pomocnicze do ćwiczeń z metod numerycznych

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Matematyka stosowana i metody numeryczne

Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Plan wykładu. Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 6 p. Rozwiazywanie układów równań. metody bezpośrednie,

Rozwiązywanie algebraicznych układów równań liniowych metodami bezpośrednimi

Wykład 14. Elementy algebry macierzy

KADD Minimalizacja funkcji

Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 6

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Optymalizacja ciągła

Wartości i wektory własne

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Elementy metod numerycznych

1 Zbiory i działania na zbiorach.

Algebra liniowa. 1. Macierze.

Macierze. Rozdział Działania na macierzach

Optymalizacja (minimalizacja) funkcji. Plan wykładu: 1. Sformułowanie problemu, funkcja celu. 2. Metody bezgradientowe

3. Macierze i Układy Równań Liniowych

METODY NUMERYCZNE. wykład. konsultacje: wtorek 10:00-11:30 środa 10:00-11:30. dr inż. Grażyna Kałuża pokój

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

Wstęp do metod numerycznych Algebraiczna metoda gradientów sprzężonych. P. F. Góra

WYKŁAD 9 METODY ZMIENNEJ METRYKI

KADD Minimalizacja funkcji

Aproksymacja. funkcji: ,a 2. ,...,a m. - są funkcjami bazowymi m+1 wymiarowej podprzestrzeni liniowej X m+1

Całkowanie numeryczne przy użyciu kwadratur

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Wstęp do metod numerycznych Metody iteracyjne i metoda gradientów. P. F. Góra

1 Równania nieliniowe

Układy równań liniowych i metody ich rozwiązywania

13 Układy równań liniowych

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Obliczenia naukowe Wykład nr 8

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

Matematyka stosowana i metody numeryczne

Analiza numeryczna Lista nr 3 (ćwiczenia) x x 2 n x.

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

Układy równań liniowych

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Wstęp do metod numerycznych SVD, metody iteracyjne i metoda gradientów. P. F. Góra

= Zapiszemy poniższy układ w postaci macierzy. 8+$+ 2&=4 " 5 3$ 7&=0 5$+7&=4

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Algebra liniowa. Macierze i układy równań liniowych

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

1 Macierze i wyznaczniki

10. Metody obliczeniowe najmniejszych kwadratów

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Równania liniowe. Rozdział Przekształcenia liniowe. Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem

Wykład III Układy równań liniowych i dekompozycje macierzy

Numeryczna algebra liniowa

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

Programowanie celowe #1

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

1 Macierz odwrotna metoda operacji elementarnych

Wstęp do metod numerycznych Metody iteracyjne Algebraiczna metoda gradientów sprzężonych. P. F. Góra

Rozwiazywanie układów równań liniowych. Ax = b

Metody numeryczne. Równania nieliniowe. Janusz Szwabiński.

Własności wyznacznika

Komputerowa analiza zagadnień różniczkowych 3. Numeryczne zagadnienie własne

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

Rozwiązywanie równań nieliniowych

, A T = A + B = [a ij + b ij ].

Metody numeryczne I Równania nieliniowe

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Układy równań i nierówności liniowych

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

1. PODSTAWY TEORETYCZNE

Wprowadzenie do metod numerycznych Wykład 3 Metody algebry liniowej I Wektory i macierze

ALGEBRA LINIOWA. ĆWICZENIA Układy Równań Liniowych

NUMERYCZNE METODY ROZWIĄZYWANIA ROWNAŃ LINIOWYCH. PRZYGOTOWAŁA: ANNA BANAŚ KoMBo, WILiŚ

Lista nr 1 - Liczby zespolone

Sposoby tworzenia uwarunkowania wstępnego dla metody gradientów sprzężonych

RÓWNANIA NIELINIOWE Maciej Patan

2. Układy równań liniowych

cx cx 1,cx 2,cx 3,...,cx n. Przykład 4, 5

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

1 Elementy logiki i teorii mnogości

Komputerowa Analiza Danych Doświadczalnych

5. Metody stochastyczne (symulowane wyżarzanie, algorytmy genetyczne) -> metody Monte Carlo

Aproksymacja. j<k. L 2 p[a, b] l 2 p,n X = Lemat 1. Wielomiany ortogonalne P 0,P 1,...,P n tworza przestrzeni liniowej Π n. Dowód.

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

DB Algebra liniowa semestr zimowy 2018

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

Bardzo łatwa lista powtórkowa

Transkrypt:

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

Matrix Market - DWT: Everstine's collection from the Harwell-Boeing Collection DWT 87: WIeża DWT 234: Wieża z platformą DWT 607: Wirnik Wankela Łopata turbiny 2802 x 2802, 6342 NZ Cylinder z kołnierzem 2919 x 2919, 7593 NZ 2

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 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) CSR dla macierzy niesymetrycznej 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) 3

Mnożenie Ax=y w formacie CSR dla macierzy niesymetrycznej a ij x j = y i j=1 a[ ] - elementy macierzowe, k[] - numery kolumn, w[]-indeksy z poczatkami wierszy y=0; for(i=1; i<n; i++){ l 1 =w[i]; // początek indeksow dla i-tego wiersza l 2 =w[i+1]-1; // koniec indeksów dla i-tego wiersza for(l=l 1 ; l<=l 2 ; l++){ j=k[l]; //numer kolumny y[i]=y[i]+a[l]*x[j]; } } 4

Mnożenie Ax=y w formacie CSR dla macierzy symetrycznej A=U+D+L oraz L=U T (U+D+L)x = y =(D+U)x + (x T U) T Czyli a ij x j = y i! j=1 Jeśli zamienimy wskaźniki w drugiej sumie to element a ij *x i będzie dawać wkład do y j, 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++){ a ij x j + X x j a ji j<i j=i l 1 =w[i]; // początek indeksow dla i-tego wiersza l 2 =w[i+1]-1; // koniec indeksów dla i-tego wiersza for(l=l 1 ; l<=l 2 ; 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 5

Szukamy rozwiązania układu n równań liniowych Ax = b; A 2 R n n ; x; b 2 R n Oznaczmy A jako sumę 3 macierzy A = L + D + U Dlaczego używamy metod iteracyjnych? Przykład N=50000 liczba równań w układzie fl 2 = 8 bajtów/liczbę podwójna precyzja L D U a) Ograniczenia pamięci P d <N 2 fl 2 = 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 P i <5Nfl 2 =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) Metoda Jacobiego Dla dowolnie wybranego przybliżenia rozwiązania x 0 chcemy tak przekształacać iteracyjnie wektor x (k) aby doprowadzić do znikania składowych wektora reszt w k iteracjach co można zapisać x = [» 1 ;» 2 ; : : : ;» n ] b = [ 1; 2; : : : ; n] (b Ax (k) ) i = 0 i j a ij» (k) j = 0 6

a ii» (k) i = i Składowe wektora reszt znikają w kolejnych iteracjach, więc możemy zapisać» k+1 i = 1 a ii j j6=i 0 oraz dla całego wektora a ij» (k) j ; i = 1; 2; : : : ; n B @ i j j6=i a ij» (k) j 1 C A» (k+1) i = = 1 a ii i 0 @ Xi 1 j=1 Xi 1 j=1 a ij» (k+1) j a ii» (k+1) i j=i+1 a ij» (k+1) j a ij» (k) j = 0 j=i+1 a ij» (k) j + i 1 A x (k+1) = D 1 (L + U)x (k) + D 1 b W metodzie Jacobiego obliczamy kolejno wszystkie składowe nowego przybliżenia wektora rozwiązań. Metoda Gaussa-Seidla b Lx (k+1) Dx (k+1) Ux (k) = 0 x (k+1) = D 1 Lx (k+1) D 1 Ux (k) + D 1 b Różni się od metody Jacobiego tym, że obliczone już składniki» i k ; i = 1; 2; : : : ; j wykorzystywane są w obliczeniach składników j+1,j+2,...,n. 7

Metody Jacobiego i GS można zapisać ogólnie w postaci Mx (k+1) = Nx (k) + b = (M A)x (k) + b A = M N metoda Jacobiego: metoda Gaussa-Seidela: Metoda relaksacji M = D M = D + L b Lx (k+1) Dx (k+1) Ux (k) = 0 A = L + D + U!A =!D +!L +!U!A = (D +!L) + (!U (1!)D) Macierze iterujące i ich przekształcenia (preconditioning) Ogólny schemat iteracyjny x (k+1) = Gx (k) + f G J (A) = I D 1 A G GS (A) = I (D + L) 1 A przy podziale macierzy A A = M N definiujemy iterację do ustalonego punktu w jako x (k+1) = M 1 Nx (k) + M 1 b Z porównania obu zapisów dostajemy Metoda nadrelaksacji (SOR) (Successive Over Relaxation)» (k+1) i =!» (k+1)gs i! 2 (1; 2) + (1!)» (k) i (D +!L)x (k+1) = [!U + (1!)D]x k +!b G = M 1 N = M 1 (M A) = I M 1 A f = M 1 b 8

Proces iteracyjny x (k+1) = Gx (k) + f możemy potraktować także jako problem rozwiązania układu (I G)x = f co dla G=I-M -1 A daje układ równań M 1 Ax = M 1 b Układ ten ma identyczne rozwiązanie jak układ pierwotny. Co nam to daje? Z przepisu iteracyjnego x (k+1) = M 1 Nx (k) + M 1 b wynika, że musimy w każdej iteracji obliczyć M 1 Nx (k) = M 1 y (k) = z (k) Ponieważ M -1 nie znamy, więc chcemy niewielkim kosztem rozwiązać układ równań Mz (k) = y (k) Dla metod Jacobiego, Gaussa-Seidla i SOR macierz ta ma postać: M J = D M GS = D + L M SOR = 1 (D +!L)! 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 dążą do zera wtedy i tylko wtedy gdy Dowód ^ ">0 A 2 R n n j ij jjajj; _ ½(A) = max j ij i=1;2;:::;n i 2 Z jjajj p jjajj p ½(A) + " x 2 R n Ax; A 2 x; : : : ; A i x; : : : " = 1 ½(A) 2 jjajj p 1 + ½(A) < 1 2 jja n xjj p jjajj n p jjxjj p! 0 A n x! 0 elementy ciągu ½(A) < 1 9

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) lim i!1 Gi+1 x (0)! 0 jjf + G 1 f + : : : + G i f + : : : jj p 1X jjfjj p jjgjj i p = jjfjj p 1 jjgjj p i=0 ½(G) < 1 Zbieżność w metodzie SOR G SOR = (D +!L) 1 [!U + (1!)D] det(g SOR ) = det (D +!L) 1 det (D +!L) 1 = det (!U + (1!)D) det (!U + (1!)D) = det((1!)d) det(g SOR ) = (1!) n det(g SOR ) = 1 2 : : : n j1!j 1 det(d +!L) = 1 det(d) = (1!) n det(d) max i=1;:::;n i = ½(G SOR ) < 1 0 <! < 2 Jeśli macierz układu jest symetryczna, dodatniookreślona i nieosobliwa to procedura iteracyjna jest zawsze zbieżna dla 0 <! < 2 10

Minimalizacja formy kwadratowej Jeśli Ax=b i r=b-ax to możemy utworzyć formę kwadratową postaci R = r T r = (b Ax) T (b Ax) 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). 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 Q = 1 2 xt Ax x T b która ma minimum w x, ponieważ Q(x + x) Q(x) = 1 2 xt A x > 0 Proces poszukiwania rozwiązania dokładnego przebiega iteracyjnie, tj. szukamy ciągu przybliżeń x 1 ; x 2 ; x 3 ; : : : x 4 x 5 x 6 gdzie: x i+1 = x i + i v i x 3 Od sposobu wyznaczania α i i v i zależy zbieżność i x 1 x 2 szybkość metody. 11

Metoda największego spadku Przybliżone rozwiązanie w i+1 iteracji ma postać x i+1 = x i + i v i Jako v i wybieramy kierunek gradientu Q rq = Ax i b = r i v i = r i Kolejne przybliżenie w metodzie największego spadku opisuje wyrażenie x i+1 = x i + rt i r i ri T Ar i dla którego zachodzi warunek Q(x i+1 ) < Q(x i ) Metoda może być jednak wolnozbieżna w przypadku gdy hiperelipsoida ma wydłużony kształt co odpowiada złemu uwarunkowaniu układu. r i W celu znalezienia współczynnika i obliczamy Q(x i+1 ) Q(x i i r i ) = 1 2 xt i r 1 2 xt i b + 1 2 2 i r T i Ar i + i r T i r i i różniczkujemy je po parametrze wariacyjnym w celu znalezienia minimum @Q @ i = r T i r i + i r T i Ar i @Q @ i = 0! i = rt i r i r T i Ar i 12

Metoda sprzężonego gradientu Założenia: - x d jest rozwiązaniem dokładnym - ciąg wektorów v 1 ; v 2 ; v 3 ; : : : 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 x d x i = j v j j=1 Jeśli elementy bazy są ortogonalne to można łatwo wyznaczyć współczynniki kombinacji liniowej j = vt j (x d x i ) vj T v ; j = 1; 2; : : : j Żądamy więc, aby wektory bazy spełniały warunek A-ortogonalności (wektory A-sprzężone) v T j Av i = 0 $ i 6= j Dla macierzy dodatniookreślonej zachodzi warunek v T i Av i 6= 0 Jak skonstruować bazę A-ortogonalną? Jeśli dysponujemy zwykłą bazą wektorów u 1 ; u 2 ; u 3 ; : : : to możemy ją poddać procesowi ortogonalizacji Grama-Schmidta v 1 = u 1 v i+1 = u i+1 + ix k=1 i+1;k v k Ale powyższy wzór wymaga modyfikacji ponieważ nie znamy wektora x d, wiemy jednak, że Ax d =b więc j = vt j A(x d x i ) v T j Av j = vt j r i v T j Av j i+1;k = vt k Au i+1 v T k Av k Jak utworzyć ciąg wektorów u i? 13

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: W podstawowej metodzie CG w każdej iteracji należy wykonać dwa mnożenia macierz-wektor Av i Ar i+1 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: v 1 = r 1 = b Ax 1 i = vt i r i v T i Av i x i+1 = x i + i v i r i+1 = r i i Av i i = vt i Ar i+1 vi T Av i v i+1 = r i+1 + iv i Dzięki A-ortogonalności w każdej iteracji wystarczy wyznaczyć tylko jeden współczynnik (reszta współczynników znika). v 1 = r 1 = b Ax 1 i = rt i r i v i Av i x i+1 = x i + i v i r i+1 = r i i Av i i = rt i+1 r i+1 ri T r i v i+1 = r i+1 + iv i 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. 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: W podstawowej metodzie CG w każdej iteracji należy wykonać dwa mnożenia macierz-wektor Av i Ar i+1 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: v 1 = r 1 = b Ax 1 i = vt i r i v T i Av i x i+1 = x i + i v i r i+1 = r i i Av i i = vt i Ar i+1 vi T Av i v i+1 = r i+1 + iv i Dzięki A-ortogonalności w każdej iteracji wystarczy wyznaczyć tylko jeden współczynnik (reszta współczynników znika). v 1 = r 1 = b Ax 1 i = rt i r i v i Av i x i+1 = x i + i v i r i+1 = r i i Av i i = rt i+1 r i+1 ri T r i v i+1 = r i+1 + iv i 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. 15

Macierz A nxn a ij = 1 1 + ji jj ; ji jj 5 _ a ij = 0; ji jj > 5 Uwaga: wyniki uzyskano w pojedynczej precyzji 16