MN 09 wych. Trochę teorii. Wprowadzenie: wszystko jest Ax = b. Uwagi wstępne. Rozwiązywanie układów równań liniowych piłka nożna metod numerycznych

Podobne dokumenty
Większość zagadnień inżynierskich sprowadza się do przewidywania odpowiedzi projektowanego urządzenia na działanie zewnętrznych czynników.

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

Układy równań liniowych. Krzysztof Patan

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

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Zaawansowane metody numeryczne

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

Wykład 5. Metoda eliminacji Gaussa

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

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

Obliczenia naukowe Wykład nr 8

UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne

Matematyka stosowana i metody numeryczne

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

Metody numeryczne Wykład 4

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

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

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

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

1 Macierz odwrotna metoda operacji elementarnych

Zaawansowane metody numeryczne

3. Macierze i Układy 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

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

Macierze. Rozdział Działania na macierzach

III TUTORIAL Z METOD OBLICZENIOWYCH

UKŁADY RÓWNAŃ LINIOWYCH -Metody dokładne

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

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

Metody numeryczne II. Układy równań liniowych

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

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

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

UKŁADY RÓWNAŃ LINIOWYCH

Matematyka stosowana i metody numeryczne

Wykład 14. Elementy algebry macierzy

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

Liczby zmiennoprzecinkowe i błędy

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

Egzamin z Metod Numerycznych ZSI, Grupa: A

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

Metoda eliminacji Gaussa. Autorzy: Michał Góra

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

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

2. Układy równań liniowych

Numeryczna algebra liniowa

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

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

Najprostszy element. F+R = 0, u A = 0. u A = 0. Mamy problem - równania zawierają siły, a warunek umocowania - przemieszczenia

F + R = 0, u A = 0. u A = 0. f 0 f 1 f 2. Relację pomiędzy siłami zewnętrznymi i wewnętrznymi

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

Metody i analiza danych

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

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Zastosowania wyznaczników

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

Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną.

1 Układy równań liniowych

ECTS (Część 2. Metody numeryczne) Nazwa w języku angielskim: Algorithms and data structures.

1. Wykład NWD, NWW i algorytm Euklidesa.

O MACIERZACH I UKŁADACH RÓWNAŃ

Analiza matematyczna i algebra liniowa Macierze

1. PODSTAWY TEORETYCZNE

Wartości i wektory własne

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

Programowanie Współbieżne. Algorytmy

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

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Obliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński

Modelowanie rynków finansowych z wykorzystaniem pakietu R

KADD Minimalizacja funkcji

Analiza matematyczna i algebra liniowa Macierze

Metody Obliczeniowe w Nauce i Technice

3. Wykład Układy równań liniowych.

Zaawansowane metody numeryczne

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

Obliczenia naukowe Wykład nr 2

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

Wstęp do metod numerycznych Eliminacja Gaussa i faktoryzacja LU. P. F. Góra

Zad. 3: Układ równań liniowych

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

Wstęp do metod numerycznych Równania macierzowe Faktoryzacja LU i Cholesky ego. P. F. Góra

Metody numeryczne. Janusz Szwabiński. nm_slides-7.tex Metody numeryczne Janusz Szwabiński 11/11/ :45 p.

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

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

Równania nieliniowe, nieliniowe układy równań, optymalizacja

det[a 1,..., A i,..., A j,..., A n ] + det[a 1,..., ka j,..., A j,..., A n ] Dowód Udowodniliśmy, że: det[a 1,..., A i + ka j,..., A j,...

13 Układy równań liniowych

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Wykład 7 Macierze i wyznaczniki

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

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

1 Macierze i wyznaczniki

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

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

Równania nieliniowe, nieliniowe układy równań, optymalizacja

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

Transkrypt:

Układy równań linio- MN 9 wych Część I Trochę teorii Wprowadzenie: wszystko jest Ax = b slajd Uwagi wstępne Rozwiązywanie układów równań liniowych piłka nożna metod numerycznych Większość zagadnień inżynierskich sprowadza się do przewidywania odpowiedzi projektowanego urządzenia na działanie zewnętrznych czynników b Układ A x Najprostsza sytuacja: mamy n czynników zewnętrznych b i, i = n, tyle samo parametrówx i chcemy wyznaczyć i zakładamy, że relacje pomiędzy nimi są najprostsze a x +a 2 ++a n x n = b a 2 x +a 22 ++a 2n x n = b 2 albo Ax = b a n x +a n2 ++a nn x n = b n slajd 2 Czy Ax = b zawsze da się rozwiązać? W MATLAB/Scilab wszystko jest (niby) proste ) wporowadz A i b; 2) A\b 3) Koniec?! Ścisła matematyka Jeżeli A =, brak jednoznacznego rozwiązania Przykłady: x + = x + = rozwiązań x + = x + = rozwiązań Realne życie Układ 7x + 5 = 22 7x + 5 = 22 w matematyce mamy rozwiązań w MATLABie/Scilabie jedno dokładne rozwiązanie A=[7 5; 7 5]; b=[22; 22]; x=a\b x = [-588; 8] (ML) x = [294; ] (Sci) DLACZEGO!!!??? Przecież A =! Nie w komputerze slajd 3 Sens geometryczny wyznacznika macierzy

34 9-5-22 Układy równań liniowych 2 A A = x+y = 2 y = 2 x x y = y = x x y = 2 y = x+2 x y = y = x+ x y = 2 x y = slajd 4 A Wniosek Układowi równań z A geometrycznie odpowiada kilka prawie równoległych linii Przykład źle uwarunkowanego układu równań x y = 2 εy = 2 ()-(2) x (+ε)y = x y = 2 x = 2 Dlaε = 2 Dla ε = 2 y = y = 2/ε x = 2(+/ε) x = 2 y = Wniosek Rozwiązanie układu równań z A może być bardzo wrażliwe na błędy obliczeniowe Jest to cecha układu, nie komputera! Czy takie układy zdarzają się w praktyce? Zagadnienia odwrotne (znamy skutek, szukamy przyczynę) z reguły prowadzą do układów źle uwarunkowanych Układy ekologiczne, serce slajd 5 Źle uwarunkowane układy obok nas F F [ ][ ] K K u = K K+k u 2 F K k F k K 2 3 [ F ] [ k k k K+k 2 3 ][ ] [ u F = u 2 ] JeżeliK k (npk =,k = ) pierwszy układ ma macierz źle uwarunkowaną Przy obliczeniach z pojedynczą dokładnością (6-7 znaków mantysy) będziemy mieć dodatkowy poważny problem powiązany z zaokrąglaniem Wniosek Przed rozwiązywaniem układu równań zawsze sprawdzamy czy warto to robić slajd 6 Rozwiązywanie URL teoria Odwracanie macierzy AA = I, gdzie I = Warunki Macierz A musi być kwadratowa 2 A Właściwości macierzy jednostkowej I AI = IA = A xi = Ix = x slajd 7 Macierzowy zapisukładu równań a x +a 2 +a 3 x 3 = b Układ równań a 2 x +a 22 +a 23 x 3 = b 2 można zapisać jako a 3 x +a 32 +a 33 x 3 = b 3

34 9-5-22 Układy równań liniowych 3 a a 2 a 3 a 2 a 22 a 23 x = b b 2 a 3 a 32 a 33 x 3 b 3 Pozwiązywanie układu równań liniowych poprzez odwracanie macierzy Ax = B, gdzie A jest macierzą kwadratową ( A ), x i B są wektorami kolumnowymi 2 A Ax = A B 3 Ix = A B 4 x = A B slajd 8 Szczególne rodzaje macierzy Macierz symetryczna A = A T 2 3 2 3 2 ZALETA Przechowujemy w pamięci tylko połowę macierzy (dolny lub górny trójkąt) Szczególne rodzaje macierzy 2 Macierz trójkątna dolna (L od Low ) l l 2 l 22 L = l n l n2 l nn ZALETA Układ równań Lx = b jest łatwo rozwiązać Norma i uwarunkowanie Macierz pasmowa (rzadka) 2 3 2 3 2 2 3 3 2 3 4 ZALETA Przechowujemy w pamięci tylko pasmo lub jego połowę (w przypadku macierzy symetrycznej) Macierz trójkątna górna (U od Up ) u u 2 u n u 22 u 2n U = u nn ZALETA Układ równań Ux = b jest łatwo rozwiązać slajd 9 slajd Norma macierzy Wprowadzenie Co to takiego mała wartość A? eps x+eps y = 2eps Układ równań eps x eps y = jest dobrze uwarunkowany, chociaż A = eps ( eps) eps eps = 2eps 2 6 x+ 6 y = 2 Układ równań 6 x+( 6 +)y = jest źle uwarunkowany, chociaż A = 6 ( 6 +) 6 6 = 6 Wniosek O tym czy URL jest dobry czy zły świadczy raczej nie wartość wyznacznika macierzy sama w sobie slajd

34 9-5-22 Układy równań liniowych 4 Pojęcie normy wektora lub macierzy Normy wektorów (powtórzenie) x p = p x p + p ++ x n p = ( n i= x i p ) p, p =,2,, Najbardziej popularne normy x = x + ++ x n norma pierwsza ( Manhattan ) x 2 = +x2 2 ++x2 n norma druga (Euklidesowa) x = max( x,,, x n ) norma maksimum Przykład Wektor x x 2 x (, 2, -3) 6 3747 3 (2, -4, 6) 2 74833 6 slajd 2 Normy macierzy Formalne definicje ( norm dla macierzy kwadratowych n ) n A = max a i,, a in maks spośród sum w kolumnach i= i= n n A 2 = norma Euklidesowa i= j= A max = n max i,j a 2 ij ( a ij ) norma maksimum Wada Większość takich norm różni się od norm wektorowych Normy macierzy indukowane przez normy wektorów (po owocach) A p = sup Ax p x p, x p Skutek: A p x p Ax p Sens fizyczny tak zdefiniowana norma jest miarą maksymalnego wydłużenia wektora wskutek mnożenia go przez macierz A slajd 3 Wskaźnik uwarunkowania łagodne wprowadzenie Najprostsza macierz pojedyncza liczba Dla A = 2 i dowolnego wektora x, Ax = 2x Dla każdej normy Ax p / x p = 2, czyli A = 2 co oznacza po prostu, że wektor stał się dwukrotnie dłuższy Dla A = 2, A = /2 Dla dowolnego wektora x, A x = /2x Analogicznie, jak poprzednio A = /2 co oznacza, że mnożenie dowolnego wektora przez A skraca go połowę Wg definicji AA = I, a I = więc nie dziwnie, że A A = Ale to tylko w tym prostym przypadku slajd 4 Wzmacnianie błędów obliczeniowych przy rozwiązywaniu URL Zamiast dokładnego równania Ax = b () zawsze rozwiązujemy A(x+ x) = b+ b (2) 2 Odejmując stronami (2) i () otrzymujemy A x = b x = A b x A b (3) 3 Z tego, że Ax = b mamy A x b albo A x b (4)

34 9-5-22 Układy równań liniowych 5 4 Po mnożeniu stronami (3) i (4) ostatecznie mamy x x A A b b = cond(a) b b 5 URL z dużym wskaźnikiem uwarunkowania cond(a) są wrażliwe na każde zaburzenie wektora prawej strony układu b slajd 5 Przykład: wyznaczanie A 2 i A 2 Ax A x x A x x Ax Dla x [ p ] = A p [ = sup Ax ] p 5 5 A = A = 5 5 [ [ ] [ [ ] + 5 x = Ax = = A ] ] x = 2 Dla x 5 T = [cos(π/6), sin(π/6)] (Ax) T = [3663,3663], (A x) T = [683,83] 3 Dla x T = [cos(π/3), sin(π/3)] (Ax) T = [3663, 3663], (A x) T = [683, 83] 4 Dla x T = [,] (Ax) T = [, ], (A x) T = [5, 5] Ostatecznie A 2 = 2, A 2 = / 2 cond(a) = slajd 6 Normy dla źle uwarunkowanych macierzy A = A = A = [ ] [ ] 5 [ ] 9 A = A = A = [ ] A = A 2 = 68 A 2 = 68 [ ] 2 A = 5 A 2 2 2 = 78 A 2 = 356 [ ] 9 A = A 2 = 95 A 2 = 95 slajd 7 Część II Metody dokładne (bezpośrednie) rozwiązywania URL Uwagi wstępne Podsumowanie i wskazówki praktyczne slajd 8 Nie każdy układ równań da się rozwiązać nawet jeżeli A I to nie jest wina komputera

34 9-5-22 Układy równań liniowych 6 Wskaźnik uwarunkowania macierzy cond(a) pozwala ocenić możliwość uzyskania w miarę dokładnego rozwiązania URL Jest to współczynnik wzmocnienia najmniejszych zmian wektora b (obciążenia) Niestety wyznaczanie wskaźnika uwarunkowania jest bardzo czasochłonne (z powodu wyznaczania A ) i nie jednoznaczne (z powodu dużej ilości różnych norm) Praktycznie zamiast cond(a) wykorzystuje się fakt, że dla źle uwarunkowanej macierzy A jest wielokrotnie mniejszy od wielkości typowego jej elementu slajd 9 Jakimi metodami NIE rozwiązuje się URL x = A b to tylko teoria Najszybsza metoda wyznaczania macierzy odwrotnej wymaga rozwiązania Ax = b i dlanprawych stron 2 Metoda macierzy odwrotnej nie pracuje nawet w najprostszych sytuacjach Dla równania 7x = 2: zwykle dzielenie x = 2/7 = 3 albo x = 7 2 = 42857 2 = 2999997 3 Tradycyjna szkolna metoda Cramera (polega na obliczaniu wyznaczników) jest kompletnie nieprzydatna do obliczeń na komputerze Ilość operacji w tym algorytmie rośnie jak (n + )! Szacunkowy czas trwania obliczeń: Rozwiązanie układu z 5 równań na komputerze ze starym procesorem Pentium kilka miesięcy Rozwiązanie układu z 5 równań na komputerze o mocy Gflop 96 47 lat 4 Wszystkie realnie używane metody polegają na przekształceniu URL do bardziej prostszego układu slajd 2 Najprostsze sytuacje Co można robić z URL? Przekształcenia, które prowadzą do układów ekwiwalentnych Zmiana kolejności równań (wierszy macierzy) Zmienia znak A x+y = 2 x y = x y = x+y = 2 Zmiana kolejności zmiennych (kolumn macierzy) Zmienia znak A x+y = 2 y+x = 2 x y = y+x = Mnożenie równania przez liczbę a Zmienia A naa A x+y = 2 2 2x+2y = 4 x y = x y = Dodawanie/odejmowanie równań stronami Nie zmienia A x+y = 2 x 9y = 2 x y = + x y = slajd 2 Superłatwizna W wyniku przekształceń macierze niektórych URL można sprowadzić do postaci diagonalnej a x b a x = b a 22 = b 2 a 22 = b 2 a nn x n b n a nn x n = b n Rozwiązanie takiego ukłądu jest trywialne x i = b i /a ii,i = n

34 9-5-22 Układy równań liniowych 7 De facto nie jest to już układ lecz n niezależnych równań w stylu 2x = 4 y = 5 slajd 22 Łatwizna zwykła Każdy URL można sprowadzić do układu z macierzą trójkątną (górną lub dolną) a x b a a 2 a n x b a 2 a 22 = b 2 a 22 a 2n = b 2 a n a n2 a nn x n b n a nn x n b n slajd 23 Rozwiązanie dolnego URL (forward substitution) Uwaga praktyczna Wzory są szczególnie proste przy a ii = a x b a 2 a 22 = b 2 a n a n2 a nn x n b n a 22 = b 2 a 2 x a n2 a nn x n b n a n x x = b /a 2 = b 2 a 2 x a 22 3 x 3 = b 3 a 3 x a 32 a 33 4 x i = b i a ii i a ij x j j= function x = forward_subs(l, b) n = max(size(l)); x = zeros(n,); // wektor x musi być kolumnowy x() = b()/l(,); // x obliczamy " ręcznie " for i = 2:n j = :i ; // Tu j jest zakresem! x(i) = (b(i) L(i, j) x(j))/l(i, i ); end endfunction Rozwiązanie górnego URL (Backward substitution) x n = b n /a nn a a n a n x a n n a n n a nn a a n x = a n n x n x n x n = b b n b n b a n x n b n a n n x n slajd 24

34 9-5-22 Układy równań liniowych 8 2 x n = b n a n n x n a n n 3 x n 2 = b n 2 a n 2n x n a n 2n x n j=i a n 2n 2 4 x i = n b i a ij x j a ii function x = backward_subs(u, b) n = max(size(u)); x = zeros(n,); // wektor x musi być kolumnowy x(n) = b(n)/u(n,n); // x_n obliczamy "ręcznie" for i = n : : j = i+:n; // Tu j jest zakresem! x(i) = (b(i) U(i,j) x(j))/u(i, i ); end endfunction slajd 25 Metoda eliminacji Gaussa 4x 2y+z = (r) 2x+4y 2z = 6 (r2) x 2y+4z = 7 (r3) 4 2 3 5 5 2 4 7 (r) 4 4 2 3 5 5 5 375 425 (r2) 5 3 A co robić w takiej sytuacji? 4 5 4 3 8 2 2 4 8 4 2 2 4 2 6 (r) 2 4 2 4 7 Metoda Gaussa z wyborem maksymalnego elementu 4 2 3 5 5 3 9 x = [, 2,3] A = 4 3 3 = 36 slajd 26 Na kroku wybieramy maks element w kolumnie i (przez wymianę kolejności 3 równania z ) ustawiamy odpowiednie równanie pierwszym 4 5 2 2 4 8 2 2 4 8 4 3 8 4 3 8 3 4 2 2 4 8 4 5 4 5 2 Na 2 kroku wybieramy maks element w 2 kolumnie (zaczynając od 2 wiersza) i ewentualnie wymieniamy miejscami odpowiednie równania 2 2 4 8 2 2 4 8 3 4 4 5 4 5 3 4 slajd 27 Metody LU dekompozycji Podstawowe kroki Zamieniamy A iloczynem dolnej i górnej macierzy trójkątnych A = LU 2 Nowy układ równań Ax = b LUx = b 3 Wprowadzamy oznaczenie Ux = y, wtedy LUx = b Ly = b 4 Wyznaczamy najpierw y z Ly = b, później x z Ux = y

34 9-5-22 Układy równań liniowych 9 Podstawowa zaleta Przy dekompozycji A LU nie zmieniamy b Pozwala to później wielokrotnie szybko rozwiązywać URL dla różnych b (np wyznaczać naprężenia w nadwoziu samochodu dla różnych wariantów obciążeń) slajd 28 Podstawowe metody LU dekompozycji U U 2 U 3 Metoda Doolittle a L = L 2 U = U 22 U 23 L 3 L 32 U 33 Metoda Crauta L = L L 2 L 22 U = U 2 U 3 U 23 L 3 L 32 L 33 Metoda Choleskiego L = U T Przykład Dlaczego można rozłożyć A na mnożniki na kilka sposobów? Bo 4 = 4 (metoda Doolittle a), 4 = 4 (metoda Crauta),4 = 2 2 (metoda Choleskiego) slajd 29 Metoda Doolittle a L 2 U U 2 U 3 U 22 U 23 = U U 2 U 3 U L 2 U 2 L 2 +U 22 U 3 L 2 +U 23 L 3 L 32 U 33 U L 3 U 2 L 3 +U 22 L 32 U 3 L 3 +U 23 L 32 +U 33 2 Metoda Gaussa, pierwsze kroki: (a) (rown2) - (rown ) L 2 (rown2) (b) (rown3) - (rown ) L 3 (rown3) U U 2 U 3 3 Wynik U 22 U 23 U 22 L 32 U 23 L 32 +U 33 U U 2 U 3 (rown3) - (rown 2) L 32 U 22 U 23 U 33 Podsumowanie slajd 3 Macierz U otrzymujemy z A przez zwykłą eliminację Gaussa 2 Macierz L tworzą mnożniki używane w czasie tej eliminacji 3 Najbardziej oszczędny zapis obydwóch trójkątnych macierzy umieszczenie U U 2 U 3 ich wewnątrz macierzy źródłowej A [L\U] = L 2 U 22 U 23 L 3 L 32 U 33 slajd 3 Przykład 4x 2y+z = (r) 2x+4y 2z = 6 (r2) x 2y+4z = 7 (r3) 4 2 5 3 5 25 5 375 (r2)/ 5 3 Ostatecznie musimy rozwiązać 4 2 2 4 2 2 (r) 2 4 4 4 2 5 3 5 25 5 3 4 2 2 3 5 4 2 4 (r) 4

34 9-5-22 Układy równań liniowych 5 25 5 y y 2 y 3 = 6 7 oraz 4 2 3 5 3 x x 3 = Rozwiązanie y = [; 5;9] x = [; 2;3] slajd 32 y y 2 y 3 Część III Metody iteracyjne (przybliżone) Uwagi wstępne slajd 33 Definicja Metody iteracyjne polegają na zamianie układu równań Ax = b przez x = Bx + c i przeprowadzeniu obliczeń wg schematu x i+ = Bx i + c, i =,2, dopóki nie zostanie spełnione kryterium x i+ x i ε Zalety i wady Wada Praktycznie nigdy nie dostaniemy dokładnego rozwiązania Wada Zbieżność jest tylko jeżeli B < Wada Ilość iteracji zależy od udanego wyboru x Zaleta Przechowujemy w pamięci tylko niezerowe elementy B Zaleta Ilość operacji na każdym kroku n 2 a dla metod dokładnych n 3 Czyli dla równań to się nie opłaca, ale dla 6 slajd 34 Metoda zwykłej iteracji (metoda Banacha, Jakobi) a x +a 2 +a 3 x 3 = b a x = b a 2 a 3 x 3 a 2 x +a 22 +a 23 x 3 = b 2 a 22 = b 2 a 2 x a 23 x 3 a 3 x +a 32 +a 33 x 3 = b 3 a 33 x 3 = b 3 a 3 x a 32 x = b a 2 a 3 x 3 a a a = b 2 a 2 x a 23 x 3 a 22 a 22 a 22 x 3 = b 3 a 3 x a 32 a 33 a 33 a 33 b /a b 2 /a 22 b 3 /a 33 B = a 2 a 3 a a 2 a 23 22 a 22 a 3 a 32 a 33 a 33 c i = b i = a ii slajd 35 Metoda zwykłej iteracji, przykład graficzny x y x,y 2x+y = 4 x+2y = 2 x x,y y xi+ = 2 y i /2 y i+ = +x i /2,y 2 x 3,y 3 x,y x,y slajd 36

34 9-5-22 Układy równań liniowych clear ; Listing : Metoda zwykłej iteracji dla układu równań liniowych function [x, step] = zwykla_iteracja(a, b, x, tol ) max_num_steps = ; n = max(size(a)); b = b/diag(a); for i=:n A(i,:) = A(i,:)/A(i, i ); A(i, i) = ; end for step = :max_num_steps x = x; x = A x + b; dx = sqrt((x x) (x x)); if dx < tol then return; end // Mamy zbieżność, koniec end; // Brak zbieznosci po maks ilości króków x = NaN ones(n,); endfunction A = [4 2 ; 2 4 2; 2 4]; b = [; 6; 7]; x = [; ; ]; tol = ; [x, step] = zwykla_iteracja(a, b, x, tol ); disp("po " + string(step) + " krokach wynik"); disp(x ); Przykład 4x 2y+z = 4x = x+2y z+ 2x+4y 2z = 6 4y = 2x+y+2z 6 x 2y+4z = 7 4z = x+2y+z+7 x 5 25 i+ y i+ = 5 5 x i y i + 275 4 z i+ 25 5 z i 425 x y z 275 4 425 y 2 z 2 = 5 25 5 5 25 5 5 25 = 5 5 = 25 5 5 25 5 5 25 5 + 275 4 425 + 275 4 425 + 275 4 425 275 4 425 nr iteracji 2 25 dokładne rozw x 275 66 938 26 y -4-599 -927-23 -2 z 425 266 2938 326 3 Program realizujący metodę zwykłej iteracji listing?? slajd 37

34 9-5-22 Układy równań liniowych 2 clear ; Listing 2: Metoda Gaussa-Seidela dla układu równań liniowych function [x, step] = Gauss_Seidel(A, b, x, tol ) max_num_steps = ; // maksymalna ilość iteracji n = max(size(a)); b = b/diag(a); for i = :n A(i,:) = A(i,:)/A(i, i ); A(i, i) = ; end for step = :max_num_steps x = x; for i = :n x(i) = A(i,:) x + b(i); end; dx = sqrt((x x) (x x)); if dx < tol then return; end // Mamy zbieżność, koniec end; // Brak zbieznosci po maks ilości króków x = NaN ones(n,); endfunction A = [4 2 ; 2 4 2; 2 4]; b = [; 6; 7]; x = [; ; ]; tol = ; [x, step] = Gauss_Seidel(A, b, x, tol ); disp("po " + string(step) + " krokach wynik"); disp(x ); Metoda Gaussa-Seidela (Libmana ) Udoskonalona metoda zwykłej iteracji x i+ = 5y i 25z i +275 y i+ = 5x i+ +5z i 4 z i+ = 25x i+ +5y i+ +425 x = 5 25 +275 = 5x +5z 4 275 = 5 25 +275 y y = 5x +5z 4 z = 25x +5y +425 z = 25x +5y +425 275 = 5 25 +275 275 = 5 25 +275 y = 5 275+5 4 2625 = 5 275+5 4 z = 25x +5y +425 z = 25x +5y +425 275 = 5 25 +275 2625 = 5 275+5 4 225 = 25 275+5 ( 2625)+425 Znacznie szybsza zbieżność nr iteracji 2 5 dokładne rozw x 275 875 97 y -2625-2438 -22-2 z 225 283 2997 3 Program realizujący metodę Gaussa-Seidela listing?? slajd 38

34 9-5-22 Układy równań liniowych 3 Metoda Gaussa-Siedela graficznie x y,y,y 2 x,y xi+ = 2 y i /2 y i+ = +x i+ /2 x,y x,y slajd 39 Metoda relaksacji (SOR successive over relaxation) x ω = y,y,y 2 x,y xi+ = x i +(+ω)(x gs i+ x i) y i+ = y i +(+ω)(y gs i+ y i) x,y x,y slajd 4 Praktyczna realizacja metody SOR [?] Wyznaczanie parametru relaksacji w praktyce Najpierw robimy k = 5 kroków metodą Gaussa-Seidela Zapamiętujemy wartość k = x k x k 2 Robimy jeszczep kroków metodą Gaussa-Seidela Zapamiętujemy wartość k+p 3 Obliczamy optymalna wartość parametru relaksacji i przełączamy się na SOR 2 ω + p k+p / k Program realizujący metodę SOR listing?? slajd 4 Rewolucyjne zmiany w metodach iteracyjnych nastąpili w połowie lat 9 XX wieku Niejaki Pravin Vaidya wymyślił bardzo udaną metodę na przyspieszenie zbieżności obliczeń iteracyjnych Zamiast opublikować tę pracę, sprzedał ją firmie ANSYS za mln USD Polecam zrobić to same ze swoimi pracami mgr Literatura [] Kiusalaas, J, Numerical Methods in Engineering with MATLAB, Cambridge University Press, 2 Wykład został opracowany w LATEXe za pomocą klasy BEAMER, graficznego pakietu PGF/TikZ i pakietu do tworzenia wykresów PGFPLOTS Obliczenia wewnątrz dokumentu zostały przeprowadzone za pomocą EQC

34 9-5-22 Układy równań liniowych 4 clear ; Listing 3: Metoda SOR dla układu równań liniowych function [x, dx]=gaussseidel(a, b, x, n, num_steps) // Funkcja robi num_steps kroków metodą Gaussa Seidela for step = :num_steps x = x; for i = :n x(i) = A(i,:) x + b(i); end; end; dx = sqrt((x x) (x x)); endfunction function [x, step, omega] = SOR(A, b, x, tol) max_num_steps = ; // maksymalna ilość iteracji num_ini_iter = 5; // Ilość początkowych iteracji G S num_add_iter = 2; // Ilość dadatkowych iteracji do // obliczenia parametru relaksacji n = max(size(a)); b = b/diag(a); for i = :n A(i,:) = A(i,:)/A(i, i ); A(i, i) = ; end // Wstępne iteracji metodą Gaussa Seidela [x, dx] = GaussSeidel(A, b, x, n, num_ini_iter); if dx < tol then return; end // Już mamy zbieżność, koniec // Dodatkowe iteracji metodą Gaussa Seidela [x, dx] = GaussSeidel(A, b, x, n, num_add_iter); if dx < tol then return; end // Już mamy zbieżność, koniec // Wyznaczamy wartość parametru relaksacji omega = 2/( + sqrt( (dx/dx)^(/num_add_iter))); // Metoda SOR for step = num_ini_iter + num_add_iter + : max_num_steps x = x; for i = :n x(i) = omega (A(i,:) x + b(i)) + ( omega) x(i); end; dx = sqrt((x x) (x x)); if dx < tol then return; end // Mamy zbieżność, koniec end; // Brak zbieznosci po maks ilości króków x = NaN ones(n,); endfunction // Test A = [4 2 ; 2 4 2; 2 4]; b = [; 6; 7]; x = [; ; ]; tol = ; [x, step, omega] = SOR(A, b, x, tol); disp("optymalna wartość parametru relaksacji",omega); disp("po " + string(step) + " krokach wynik"); disp(x );