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

Podobne dokumenty
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

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

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

Układy równań liniowych. Krzysztof Patan

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

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

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Obliczenia naukowe Wykład nr 8

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

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

Matematyka stosowana i metody numeryczne

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 4

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

1 Macierz odwrotna metoda operacji elementarnych

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

Zaawansowane metody numeryczne

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

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

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

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

III TUTORIAL Z METOD OBLICZENIOWYCH

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

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

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

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

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Matematyka stosowana i metody numeryczne

Wykład 14. Elementy algebry macierzy

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

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

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

UKŁADY RÓWNAŃ LINIOWYCH

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

Metoda eliminacji Gaussa. Autorzy: Michał Góra

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

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

Numeryczna algebra liniowa

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

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

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

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

2. Układy równań liniowych

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

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

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

Metody i analiza danych

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

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

O MACIERZACH I UKŁADACH RÓWNAŃ

1 Układy równań liniowych

1. PODSTAWY TEORETYCZNE

Wartości i wektory własne

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

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

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

Zastosowania wyznaczników

Modelowanie rynków finansowych z wykorzystaniem pakietu R

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

Metody Obliczeniowe w Nauce i Technice

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

Zaawansowane metody numeryczne

Obliczenia naukowe Wykład nr 2

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

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

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

Programowanie Współbieżne. Algorytmy

KADD Minimalizacja funkcji

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

Analiza matematyczna i algebra liniowa Macierze

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,...

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

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

13 Układy równań liniowych

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Ś

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

1 Macierze i wyznaczniki

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.

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

Analiza matematyczna i algebra liniowa Macierze

Metody dekompozycji macierzy stosowane w automatyce

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

Laboratorium Techniki Obliczeniowej i Symulacyjnej

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

Wykład z Technologii Informacyjnych. Piotr Mika

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Transkrypt:

MN 09 Układy równań liniowych Część I Trochę teorii Wprowadzenie: wszystko jest Ax = b 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 = 1n, tyle samo parametrów x i chcemy wyznaczyć i zakładamy, że relacje pomiędzy nimi są najprostsze Czy Ax = b zawsze da się rozwiązać? W MATLAB/Scilab wszystko jest (niby) proste 1) wporowadz A i b; 2) A\b 3) Koniec?! albo Ax = b a 11 x 1 +a 12 x 2 ++a 1n x n = b 1 a 21 x 1 +a 22 x 2 ++a 2n x n = b 2 a n1 x 1 +a n2 x 2 ++a nn x n = b n Ścisła matematyka Jeżeli A = 0, brak jednoznacznego rozwiązania Przykłady: x1 +x 2 = 0 x 1 +x 2 = 0 rozwiązań x1 +x 2 = 0 x 1 +x 2 = 1 0 rozwiązań Realne życie Układ 17x1 + 5x 2 = 22 17x 1 + 05x 2 = 22 w matematyce mamy rozwiązań w MATLABie/Scilabie jedno dokładne rozwiązanie A=[17 5; 17 05]; b=[22; 22]; x=a\b x = [-10588; 80000] (ML) x = [12941; 00] (Sci) DLACZEGO!!!??? Przecież A = 0! Nie w komputerze Sens geometryczny wyznacznika macierzy

341 9-5-2012 Układy równań liniowych 2 A 0 x+y = 2 y = 2 x x y = 0 y = x A = 0 x y = 2 y = x+2 x y = 0 y = x+0 x y = 2 x 10001y = 0 A 0 Wniosek Układowi równań z A 0 geometrycznie odpowiada kilka prawie równoległych linii Przykład źle uwarunkowanego układu równań x y = 2 εy = 2 (1)-(2) x (1+ε)y = 0 x y = 2 x = 1002 Dlaε = 0002 Dlaε = 00002 y = 1000 y = 2/ε x = 2(1+1/ε) x = 10002 y = 10000 Wniosek Rozwiązanie układu równań z A 0 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 Źle uwarunkowane układy obok nas F F [ K K K K+k ][ u1 u 2 ] = [ F 0 F K k F k K 1 2 3 1 2 3 ] [ ][ ] [ ] k k u1 F = k K+k 0 u 2 Jeżeli K k (np K = 1000, k = 0001) 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ć Rozwiązywanie URL teoria Odwracanie macierzy 1 0 0 AA 1 0 1 0 = I, gdzie I = 0 0 1 Warunki 1 Macierz A musi być kwadratowa 2 A 0 Właściwości macierzy jednostkowej I AI = IA = A xi = Ix = x

341 9-5-2012 Układy równań liniowych 3 Macierzowy zapis układu równań a 11 x 1 +a 12 x 2 +a 13 x 3 = b 1 Układ równań a 21 x 1 +a 22 x 2 +a 23 x 3 = b 2 można zapisać jako a 31 x 1 +a 32 x 2 +a 33 x 3 = b 3 a 11 a 12 a 13 x 1 b 1 a 21 a 22 a 23 x 2 = b 2 a 31 a 32 a 33 x 3 b 3 Pozwiązywanie układu równań liniowych poprzez odwracanie macierzy 1 Ax = B, gdzie A jest macierzą kwadratową ( A 0), x i B są wektorami kolumnowymi 2 A 1 Ax = A 1 B 3 Ix = A 1 B 4 x = A 1 B Szczególne rodzaje macierzy 1 Macierz symetryczna A = A T 10 1 2 1 11 3 2 3 12 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 11 0 0 l 21 l 22 0 L = l n1 l n2 l nn ZALETA Układ równań Lx = b jest łatwo rozwiązać Macierz pasmowa (rzadka) 10 2 0 0 0 3 11 2 0 0 0 3 12 2 0 0 0 3 13 2 0 0 0 3 14 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 11 u 12 u 1n 0 u 22 u 2n U = 0 0 u nn ZALETA Układ równań Ux = b jest łatwo rozwiązać Norma i uwarunkowanie Norma macierzy Wprowadzenie Co to takiego mała wartość A? eps x+eps y = 2eps Układ równań eps x eps y = 0 jest dobrze uwarunkowany, chociaż A = eps ( eps) eps eps = 2eps 2 10 6 x+10 6 y = 2 Układ równań 10 6 x+(10 6 +1)y = 0 jest źle uwarunkowany, chociaż A = 10 6 (10 6 +1) 10 6 10 6 = 10 6

341 9-5-2012 Układy równań liniowych 4 Wniosek O tym czy URL jest dobry czy zły świadczy raczej nie wartość wyznacznika macierzy sama w sobie Pojęcie normy wektora lub macierzy Normy wektorów (powtórzenie) x p = p x 1 p + x 2 p ++ x n p = ( n Najbardziej popularne normy x 1 = x 1 + x 2 ++ x n norma pierwsza ( Manhattan ) x 2 = x 2 1 +x2 2 ++x2 n norma druga (Euklidesowa) x = max( x 1, x 2,, x n ) norma maksimum i=1 x i p ) 1 p, p = 1,2,, Przykład Wektor x 1 x 2 x (1, 2, -3) 6 37417 3 (2, -4, 6) 12 74833 6 Normy macierzy Formalne definicje ( norm dla macierzy kwadratowych n ) n A 1 = max a i1,, a in maks spośród sum w kolumnach i=1 i=1 n n A 2 = a 2 ij norma Euklidesowa i=1 j=1 A max = n max i,j ( 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 0 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 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 1 = 1 /2 Dla dowolnego wektora x, A 1 x = 1 /2x Analogicznie, jak poprzednio A 1 = 1 /2 co oznacza, że mnożenie dowolnego wektora przez A 1 skraca go połowę Wg definicji AA 1 = I, a I = 1 więc nie dziwnie, że A A 1 = 1 Ale to tylko w tym prostym przypadku

341 9-5-2012 Układy równań liniowych 5 Wzmacnianie błędów obliczeniowych przy rozwiązywaniu URL 1 Zamiast dokładnego równania Ax = b (1) zawsze rozwiązujemy A(x+ x) = b+ b (2) 2 Odejmując stronami (2) i (1) otrzymujemy A x = b x = A 1 b x A 1 b (3) 3 Z tego, że Ax = b mamy A x b albo 1 A x b (4) 4 Po mnożeniu stronami (3) i (4) ostatecznie mamy x x A A 1 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 Przykład: wyznaczanie A 2 i A 1 2 1 Ax 1 A 1 x x 1 A 1 x x Ax 1 Dla x [ p ] = 1 A p [ = sup Ax ] p 1 1 A = A 1 05 05 = 1 1 05 05 [ ] [ ] [ ] [ ] 1 1 1+1 0 1 1 x = Ax = = A 1 05 x = 2 Dla x T = [cos(π/6), sin(π/6)] (Ax) T = 0 1 1 1 0 1 05 [136603,036603], (A 1 x) T = [068301,018301] 3 Dla x T = [cos(π/3), sin(π/3)] (Ax) T = [136603, 036603], (A 1 x) T = [068301, 018301] 4 Dla x T = [0,1] (Ax) T = [1, 1], (A 1 x) T = [05, 05] Ostatecznie A 2 = 2, A 1 2 = 1/ 2 cond(a) = 1 Normy dla źle uwarunkowanych macierzy 1 10 1 1 1 1 1 10 10 1 1 10 A = A = [ ] 1 1 1 0 [ ] 1 1 1 05 A 1 = A 1 = [ ] 0 1 A = 1 A 1 1 2 = 1618 A 1 2 = 1618 [ ] 1 2 A = 05 A 2 2 2 = 1781 A 1 2 = 356

341 9-5-2012 Układy równań liniowych 6 A = [ ] 1 1 1 09 A 1 = [ ] 9 10 10 10 A = 01 A 2 = 1951 A 1 2 = 1951 Część II Metody dokładne (bezpośrednie) rozwiązywania URL Uwagi wstępne Podsumowanie i wskazówki praktyczne Nie każdy układ równań da się rozwiązać nawet jeżeli A 0 I to nie jest wina komputera 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 1 ) 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 Jakimi metodami NIE rozwiązuje się URL 1 x = A 1 b to tylko teoria Najszybsza metoda wyznaczania macierzy odwrotnej wymaga rozwiązania Ax = b i dla n prawych stron 2 Metoda macierzy odwrotnej nie pracuje nawet w najprostszych sytuacjach Dla równania 7x = 21: zwykle dzieleniex = 21/7 = 3 albox = 7 1 21 = 0142857 21 = 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 + 1)! Szacunkowy czas trwania obliczeń: Rozwiązanie układu z 15 równań na komputerze ze starym procesorem Pentium kilka miesięcy Rozwiązanie układu z 50 równań na komputerze o mocy 1 Gflop 96 10 47 lat 4 Wszystkie realnie używane metody polegają na przekształceniu URL do bardziej prostszego układu 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 10x 10y = 0 10x 10y = 0 x+y = 2 Zmiana kolejności zmiennych (kolumn macierzy) Zmienia znak A x+y = 2 y+x = 2 10x 10y = 0 10y+10x = 0

341 9-5-2012 Układy równań liniowych 7 Mnożenie równania przez liczbęa 0 Zmienia A naa A x+y = 2 2 2x+2y = 4 10x 10y = 0 10x 10y = 0 Dodawanie/odejmowanie równań stronami Nie zmienia A x+y = 2 11x 9y = 2 10x 10y = 0 + 10x 10y = 0 Superłatwizna W wyniku przekształceń macierze niektórych URL można sprowadzić do postaci diagonalnej a 11 0 0 x 1 b 1 a 11 x 1 = b 1 0 a 22 0 x 2 = b 2 a 22 x 2 = b 2 0 0 a nn x n b n a nn x n = b n Rozwiązanie takiego ukłądu jest trywialnex i = b i /a ii,i = 1n De facto nie jest to już układ lecz n niezależnych równań w stylu 2x = 4 10y = 5 Łatwizna zwykła Każdy URL można sprowadzić do układu z macierzą trójkątną (górną lub dolną) a 11 0 0 x 1 b 1 a 11 a 12 a 1n x 1 b 1 a 21 a 22 0 x 2 = b 2 0 a 22 a 2n x 2 = b 2 a n1 a n2 a nn x n b n 0 0 a nn x n b n Rozwiązanie dolnego URL (forward substitution) a 11 0 0 x 1 b 1 a 21 a 22 0 x 2 = b 2 a n1 a n2 a nn x n b n a 22 0 x 2 = b 2 a 21 x 1 a n2 a nn x n b n a n1 x 1 Uwaga praktyczna Wzory są szczególnie proste przya ii = 1 1 x 1 = b 1 /a 11 2 x 2 = b 2 a 21 x 1 a 22 3 x 3 = b 3 a 31 x 1 a 32 x 2 a 33 4 x i = 1 b i a ii i 1 a ij x j j=1

341 9-5-2012 Układy równań liniowych 8 function x = forward_subs(l, b) n = max(size(l)); x = zeros(n,1); // wektor x musi być kolumnowy x(1) = b(1)/l(1,1); // x1 obliczamy " ręcznie " for i = 2:n j = 1:i 1; // 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) a 11 a 1n 1 a 1n 0 a n 1n 1 a n 1n 0 0 a nn a 11 a 1n 1 x 1 0 a n 1n 1 x n 1 = 1 x n = b n /a nn 2 x n 1 = b n 1 a n 1n x n a n 1n 1 x 1 x n 1 x n = b 1 b n 1 b n b 1 a 1n x n b n 1 a n 1n x n 3 x n 2 = b n 2 a n 2n x n a n 2n 1 x n 1 a n 2n 2 4 x i = 1 n 1 b i a ij x j a ii j=i function x = backward_subs(u, b) n = max(size(u)); x = zeros(n,1); // wektor x musi być kolumnowy x(n) = b(n)/u(n,n); // x_n obliczamy "ręcznie" for i = n 1: 1:1 j = i+1:n; // Tu j jest zakresem! x(i) = (b(i) U(i,j) x(j))/u(i, i ); end endfunction Metoda eliminacji Gaussa 4x 2y+z = 11 (r1) 2x+4y 2z = 16 (r2) x 2y+4z = 17 (r3) 4 2 1 11 0 3 15 105 0 15 375 1425 (r2) 15 3 A co robić w takiej sytuacji? 0 4 1 5 1 4 3 8 2 2 4 8 4 2 1 11 2 4 2 16 (r1) 2 4 1 2 4 17 4 2 1 11 0 3 15 105 0 0 3 9 4 2 1 11 0 3 15 105 1 2 4 17 (r1) 1 4 x = [1, 2,3] A = 4 3 3 = 36

341 9-5-2012 Układy równań liniowych 9 Metoda Gaussa z wyborem maksymalnego elementu 1 Na 1 kroku wybieramy maks element w 1 kolumnie i (przez wymianę kolejności 3 równania z 1) ustawiamy odpowiednie równanie pierwszym 0 4 1 5 2 2 4 8 2 2 4 8 1 4 3 8 1 4 3 8 0 3 1 4 2 2 4 8 0 4 1 5 0 4 1 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 0 3 1 4 0 4 1 5 0 4 1 5 0 3 1 4 Metody LU dekompozycji Podstawowe kroki 1 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 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ń) Podstawowe metody LU dekompozycji 1 0 0 U 11 U 12 U 13 Metoda Doolittle a L = L 21 1 0 U = 0 U 22 U 23 L 31 L 32 1 0 0 U 33 L 11 0 0 1 U 12 U 13 Metoda Crauta L = L 21 L 22 0 U = 0 1 U 23 L 31 L 32 L 33 0 0 1 Metoda Choleskiego L = U T Przykład Dlaczego można rozłożyć A na mnożniki na kilka sposobów? Bo4 = 1 4 (metoda Doolittle a), 4 = 4 1 (metoda Crauta), 4 = 2 2 (metoda Choleskiego) Metoda Doolittle a 1 0 0 U 11 U 12 U 13 U 11 U 12 U 13 1 L 21 1 0 0 U 22 U 23 = U 11 L 21 U 12 L 21 +U 22 U 13 L 21 +U 23 L 31 L 32 1 0 0 U 33 U 11 L 31 U 12 L 31 +U 22 L 32 U 13 L 31 +U 23 L 32 +U 33 2 Metoda Gaussa, pierwsze kroki: (a) (rown2) - (rown 1) L 21 (rown2)

341 9-5-2012 Układy równań liniowych 10 (b) (rown3) - (rown 1) L 31 (rown3) U 11 U 12 U 13 3 Wynik 0 U 22 U 23 0 U 22 L 32 U 23 L 32 +U 33 U 11 U 12 U 13 (rown3) - (rown 2) L 32 0 U 22 U 23 0 0 U 33 Podsumowanie 1 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 ich wewnątrz macierzy źródłowej A [L\U] = L 21 U 22 U 23 U 11 U 12 U 13 L 31 L 32 U 33 Przykład 4x 2y+z = 11 (r1) 2x+4y 2z = 16 (r2) x 2y+4z = 17 (r3) 4 2 1 05 3 15 025 15 375 (r2)/ 15 3 Ostatecznie musimy rozwiązać 1 0 0 y 1 11 05 1 0 y 2 = 16 025 05 1 y 3 17 Rozwiązanie y = [11; 105;9] x = [1; 2;3] oraz 4 2 1 2 4 2 2 (r1) 1 2 4 4 4 2 1 05 3 15 025 05 3 4 2 1 0 3 15 0 0 3 x 1 x 2 = x 3 4 2 1 2 3 15 4 1 2 4 y 1 y 2 y 3 (r1) 1 4 Część III Metody iteracyjne (przybliżone) Uwagi wstępne Definicja Metody iteracyjne polegają na zamianie układu równań Ax = b przez x = Bx + c i przeprowadzeniu obliczeń wg schematu x i+1 = Bx i + c, i = 1,2, dopóki nie zostanie spełnione kryterium x i+1 x i ε Zalety i wady Wada Praktycznie nigdy nie dostaniemy dokładnego rozwiązania Wada Zbieżność jest tylko jeżeli B < 1 Wada Ilość iteracji zależy od udanego wyboru x 0 Zaleta Przechowujemy w pamięci tylko niezerowe elementy B

341 9-5-2012 Układy równań liniowych 11 Zaleta Ilość operacji na każdym kroku n 2 a dla metod dokładnych n 3 Czyli dla 10 równań to się nie opłaca, ale dla10 6 Metoda zwykłej iteracji (metoda Banacha, Jakobi) a 11 x 1 +a 12 x 2 +a 13 x 3 = b 1 a 11 x 1 = b 1 a 12 x 2 a 13 x 3 a 21 x 1 +a 22 x 2 +a 23 x 3 = b 2 a 22 x 2 = b 2 a 21 x 1 a 23 x 3 a 31 x 1 +a 32 x 2 +a 33 x 3 = b 3 a 33 x 3 = b 3 a 31 x 1 a 32 x 2 x 1 = b 1 a 11 a 12 a 11 x 2 a 13 a 11 x 3 x 2 = b 2 a 22 a 21 a 22 x 1 a 23 a 22 x 3 x 3 = b 3 a 33 a 31 a 33 x 1 a 32 a 33 x 2 B = 0 a 12 a 13 a 11 11 a 21 0 a 23 22 a 22 a 31 a 32 0 a 33 a 33 c i = b i = a ii b 1 /a 11 b 2 /a 22 b 3 /a 33 Metoda zwykłej iteracji, przykład graficzny x y x 1,y 1 2x+y = 4 x+2y = 2 xi+1 = 2 y i /2 y i+1 = 1+x i /2 x x 1,y 1 x 2,y 2 x 3,y 3 y x 0,y 0 x 0,y 0 Przykład 4x 2y+z = 11 4x = 0x+2y z+11 2x+4y 2z = 16 4y = 2x+0y+2z 16 x 2y+4z = 17 4z = x+2y+0z+17 x 0 05 025 i+1 x i 275 y i+1 = 05 0 05 y i + 4 z i+1 025 05 0 z i 425 x 1 y 1 z 1 275 4 425 x 2 y 2 z 2 = 0 05 025 05 0 05 025 05 0 0 05 025 = 05 0 05 = 025 05 0 0 05 025 05 0 05 025 05 0 0 0 0 + 0 0 0 275 4 425 + 275 4 425 + 275 4 425 275 4 425 nr iteracji 0 1 10 20 25 dokładne rozw x 0 275 0660 0938 1026 1 y 0-4 -1599-1927 -2031-2 z 0 425 2660 2938 3026 3 Program realizujący metodę zwykłej iteracji listing??

341 9-5-2012 Układy równań liniowych 12 clear ; Listing 1: Metoda zwykłej iteracji dla układu równań liniowych function [x, step] = zwykla_iteracja(a, b, x, tol ) max_num_steps = 100; n = max(size(a)); b = b/diag(a); for i=1:n A(i,:) = A(i,:)/A(i, i ); A(i, i) = 00; end for step = 1:max_num_steps x0 = x; x = A x + b; dx = sqrt((x x0) (x x0)); if dx < tol then return; end // Mamy zbieżność, koniec end; // Brak zbieznosci po maks ilości króków x = NaN ones(n,1); endfunction A = [4 2 1; 2 4 2; 1 2 4]; b = [11; 16; 17]; x = [0; 0; 0]; tol = 000001; [x, step] = zwykla_iteracja(a, b, x, tol ); disp("po " + string(step) + " krokach wynik"); disp(x );

341 9-5-2012 Układy równań liniowych 13 Metoda Gaussa-Seidela (Libmana ) Udoskonalona metoda zwykłej iteracji x i+1 = 05y i 025z i +275 y i+1 = 05x i+1 +05z i 4 z i+1 = 025x i+1 +05y i+1 +425 x 1 = 05 0 025 0+275 y 1 = 05x 1 +05z 0 4 z 1 = 025x 1 +05y 1 +425 275 = 05 0 025 0+275 y 1 = 05 275+05 0 4 z 1 = 025x 1 +05y 1 +425 275 = 05 0 025 0+275 2625 = 05 275+05 0 4 225 = 025 275+05 ( 2625)+425 Znacznie szybsza zbieżność 275 = 05 0 025 0+275 y 1 = 05x 1 +05z 0 4 z 1 = 025x 1 +05y 1 +425 275 = 05 0 025 0+275 2625 = 05 275+05 0 4 z 1 = 025x 1 +05y 1 +425 nr iteracji 0 1 2 5 dokładne rozw x 0 2750 0875 0971 1 y 0-2625 -2438-2020 -2 z 0 2250 2813 2997 3 Program realizujący metodę Gaussa-Seidela listing?? Metoda Gaussa-Siedela graficznie x y x 2,y 1 x 2,y 2 x 1,y 1 xi+1 = 2 y i /2 y i+1 = 1+x i+1 /2 x 1,y 0 x 0,y 0 Metoda relaksacji (SOR successive over relaxation) x ω = 01 y x 2,y 1 x 2,y 2 x 1,y 1 xi+1 = x i +(1+ω)(x gs i+1 x i) y i+1 = y i +(1+ω)(y gs i+1 y i) x 1,y 0 x 0,y 0 Praktyczna realizacja metody SOR [?] Wyznaczanie parametru relaksacji w praktyce 1 Najpierw robimy k = 510 kroków metodą Gaussa-Seidela Zapamiętujemy wartość k = x k 1 x k 2 Robimy jeszcze p 1 kroków metodą Gaussa-Seidela Zapamiętujemy wartość k+p

341 9-5-2012 Układy równań liniowych 14 clear ; Listing 2: Metoda Gaussa-Seidela dla układu równań liniowych function [x, step] = Gauss_Seidel(A, b, x, tol ) max_num_steps = 100; // maksymalna ilość iteracji n = max(size(a)); b = b/diag(a); for i = 1:n A(i,:) = A(i,:)/A(i, i ); A(i, i) = 00; end for step = 1:max_num_steps x0 = x; for i = 1:n x(i) = A(i,:) x + b(i); end; dx = sqrt((x x0) (x x0)); if dx < tol then return; end // Mamy zbieżność, koniec end; // Brak zbieznosci po maks ilości króków x = NaN ones(n,1); endfunction A = [4 2 1; 2 4 2; 1 2 4]; b = [11; 16; 17]; x = [0; 0; 0]; tol = 000001; [x, step] = Gauss_Seidel(A, b, x, tol ); disp("po " + string(step) + " krokach wynik"); disp(x );

341 9-5-2012 Układy równań liniowych 15 3 Obliczamy optymalna wartość parametru relaksacji ω 2 1+ 1 p k+p / k i przełączamy się na SOR Program realizujący metodę SOR listing?? Rewolucyjne zmiany w metodach iteracyjnych nastąpili w połowie lat 90 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 1 mln USD Polecam zrobić to same ze swoimi pracami mgr Literatura [1] Kiusalaas, J, Numerical Methods in Engineering with MATLAB, Cambridge University Press, 2010 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

// Test A = [4 2 1; 2 4 2; 1 2 4]; b = [11; 16; 17]; x = [0; 0; 0]; tol = 000001; [x, step, omega] = SOR(A, b, x, tol); disp("optymalna wartość parametru relaksacji",omega); disp("po " + string(step) + " krokach wynik"); disp(x ); 341 9-5-2012 Układy równań liniowych 16 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 = 1:num_steps x0 = x; for i = 1:n x(i) = A(i,:) x + b(i); end; end; dx = sqrt((x x0) (x x0)); endfunction function [x, step, omega] = SOR(A, b, x, tol) max_num_steps = 100; // 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 = 1:n A(i,:) = A(i,:)/A(i, i ); A(i, i) = 00; end // Wstępne iteracji metodą Gaussa Seidela [x, dx0] = GaussSeidel(A, b, x, n, num_ini_iter); if dx0 < 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 = 20/(1 + sqrt(1 (dx/dx0)^(1/num_add_iter))); // Metoda SOR for step = num_ini_iter + num_add_iter + 1 : max_num_steps x0 = x; for i = 1:n x(i) = omega (A(i,:) x + b(i)) + (1 omega) x(i); end; dx = sqrt((x x0) (x x0)); if dx < tol then return; end // Mamy zbieżność, koniec end; // Brak zbieznosci po maks ilości króków x = NaN ones(n,1); endfunction