Metody Numeryczne Wykład no 3
Dana jest macierz A i przedstawiamy ją w postaci: Rozkład LU. Metoda Croute’a. Rozkład na macierze trójkątne Dana jest macierz A i przedstawiamy ją w postaci: A=LU gdzie macierz L jest macierzą dolną trójkątną:
lub ogólnie: Macierz U górna trójkątna: lub ogólnie:
Jeżeli A=LU, to dla układu równań AX=b mamy: Rozwiązanie układu LY=b z dolną macierzą trójkątną jest łatwe: i=2,3,...,N
i rozwiązanie równania UX=Y z górną macierzą trójkątną jest łatwe: i=N-1,N-2,...,1 Duża zaleta: Znając rozkład LU możemy go wykorzystać wielokrotnie dla różnych prawych stron.
Obliczanie wyrazów macierzy L i U w wyniku mnożenia obu macierzy mamy macierz B=[bij] Zaczynamy kolejno: pierwszy wiersz macierzy L razy k-ta kolumna macierzy U: k-ty wiersz macierzy L razy pierwszy wiersz macierzy U:
k-ty wiersz macierzy L razy j-ta (jk) kolumna macierzy U: j-ty wiersz (j>k) macierzy L razy k-ta kolumna macierzy U:
ponieważ musi zachodzić B=A, czyli bij=aij dla (i,j=1,2,...,N) stąd otrzymujemy kolejno: Pierwszy wiersz macierzy U: pierwsza kolumna macierzy L: k-ty wiersz macierzy U: dla j=k,k+1,...,N k-ta kolumna macierz L: dla j=k+1,k+2,...,N
Przykład: Zgodnie z: pierwszy wiersz macierzy U:
Pierwsza kolumna macierzy L zgodnie z gdzie u11=4
drugi wiersz macierzy U zgodnie ze wzorem: j=2,3,4,5
Druga kolumna macierzy L: j=3,4,5
trzeci wiersz macierzy U zgodnie ze wzorem: j=3,4,5
trzecia kolumna macierzy L: j=4,5
czwarty wiersz macierzy U zgodnie ze wzorem: j=4,5
czwarta kolumna macierzy L: j=5
i ostatecznie u55 z zależności:
Dla sprawdzenia czy nie popełniliśmy błędu obliczamy: B=LU
Mając macierz A=LU możemy rozwiązać równanie LUX=b dla dowolnego wektora prawej strony.
Znając rozkład LU macierzy łatwo obliczyć wyznacznik główny |A| macierzy A=LU. Mamy: ale a i ostatecznie:
Obliczanie macierzy odwrotnej Macierz odwrotna : AA-1=1 i A-1A=1 Oznaczając: X=A-1 mamy N układów N równań liniowych: AX=1 Metoda Gaussa - Jordana Dana macierz:
Dla określenia macierzy odwrotnej X mamy równanie:
Zapisujemy w postaci tablicy uzupełnionej: i procedura eliminacji Gaussa – Jordana:
Ponieważ pierwsze dwie kolumny już nie ulegną zmianie dlatego ze względu na oszczędność miejsca zostaną usunięte
Pomijamy pierwszą kolumnę
Pomijamy pierwszą kolumnę:
i otrzymujemy macierz odwrotną:
Sprawdzamy poprawność obliczonej macierzy odwrotnej obliczając AA-1
Macierz odwrotną można również obliczyć korzystając z rozkładu LU Niech A=LU mamy rozwiązać N układów N równań algebraicznych: LUX=1 oznaczając: mamy: LY=1 Y=UX
Postępowanie jest proste: Krok pierwszy – rozwiązujemy N - krotnie układ N równań z dolną macierzą trójkątną L wyznaczając Y: LY=1 Krok drugi – rozwiązujemy N – krotnie układ N równań z górną macierzą trójkątną U wyznaczając macierz odwrotną A-1=X: UX=Y
Dana macierz: i
Równanie LY=1 jest
Macierz odwrotna do dolnej trójkątnej też jest macierzą dolną trójkątną i w przypadku macierzy L główna przekątna to 1 czyli
Pozostałe wyrazy macierzy Y wyznaczamy rozpoczynając od pierwszej kolumny i kolejno następne: Pozostaje do rozwiązania równanie: UX=Y
Startujemy kolejno od pierwszej kolumny kolejno do piątej, a niewiadome w kolumnach wyznaczamy od ostatniej tj. xNk
Dla porównania macierz odwrotna obliczona metodą Gaussa - Jordana
Metody iteracyjne Metoda iteracji prostej: Macierz A przedstawiamy w postaci: gdzie jeżeli to
i równanie: ponieważ piszemy: lub i mamy: Otrzymujemy algorytm: Warunek zbieżności
Przykład:
podstawiając
Niech zerowe przybliżenie dla pierwszego mamy: Podstawiamy do równania: i znajdujemy Badamy normę:
8.1147767 2.5788529 Xd = 0.5987301 2.3897439 Po 9-ciu krokach mamy: Rozwiązanie dokładne: Normy: 8.1147767 2.5788529 Xd = 0.5987301 2.3897439
8.1147767 2.5788529 Xd = 0.5987301 2.3897439
Metoda Gaussa - Seidela Rozkładamy macierz: jak w metodzie iteracji prostej i mamy: ale „receptę” dla algorytmu piszemy: Powtórzmy nasz przykład
Rozkład na macierze: dolna diagonalna
górna i mamy: i algorytm Gaussa – Seidla będzie:
i
startujemy z zerowego przybliżenia
i z pierwszego równania: mamy: i drugie równanie jest: więc: Trzecie równanie: i stąd: czwarte: czyli: w iteracji prostej było:
8.1147767 2.5788529 Xd = 0.5987301 2.3897439 Drugie przybliżenie: dokładne: iteracje proste: 8.1147767 2.5788529 Xd = 0.5987301 2.3897439
Po 10-ciu krokach w metodzie Gaussa – Seidla mamy: iteracja prosta: 8.1147767 dokładne: 2.5788529 Xd = 0.5987301 2.3897439
8.1147767 2.5788529 Xd = 0.5987301 2.3897439 Po 20-tu Gauss – Seidel: iteracja prosta: dokładne: 8.1147767 2.5788529 Xd = 0.5987301 2.3897439
Interpolacja funkcji Dane wartości funkcji yn w punktach xn, gdzie n=0,1,2, ....N-1. y yn y0 yN-1 x x0 xn xN-1
Interpolacja wielomianowa Twierdzenie Istnieje dokładnie jeden wielomian stopnia co najwyżej N (N>=0), który w punktach x0, x1,...,xN-1 przyjmuje wartości y0,y1,...,yN-1. Wzór interpolacyjny Lagrange'a: gdzie jest wielomianem stopnia co najwyżej N.
Z warunku interpolacyjnego: powyższy układ N równań można najprościej rozwiązać przyjmując dla wielomianów k(x) następujące warunki : jako wielomian k(x) należy wybrać taki, który ma miejsca zerowe we wszystkich punktach interpolacji z wyjątkiem punktu xk , w którym funkcja ma wartość 1 Rozwiązaniem jest wielomian :
Rozwiązaniem jest wielomian: z warunku: otrzymuje się: Wielomian Lagrange'a przyjmuje postać: Ocena błędu interpolacji:
Ocena błędu interpolacji: Przykład 1. Zbudować wielomian interpolacyjny dla funkcji exp(x) w przedziale [1,2] bazując na 5 węzłach interpolacyjnych. Wybierzmy węzły równomiernie czyli
mamy: xi 1.0 1.25 1.50 1.75 2.0 yi 2.71828 3.49034 4.48169 5.7546 7.38906 Wielomian Lagrange’a jest:
lub Wyniki obliczeń przedstawiono na wykresie:
Dla lepszej oceny wykres błędu względnego:
Przykład 2. W wyniku pomiarów zdjęto pierwotną krzywą magnesowania B=F(H). Zbudować wielomian interpolacyjny Lagrange'a dla zakresu 0<=H <=3000A/m. H[A/m] 50 100 200 500 1000 1500 2000 3000 B[T] 0.75 1.5 1.8 1.95 2.0 2.02 2.03 2.035 Kolejne wielomiany k(H) dla k=0,1,...8 są: lub po obliczeniu mianownika mamy:
i wielomian aproksymacyjny jest lub
Otrzymany wynik jest niemożliwy do przyjęcia!!!
Aproksymacja liniowa odcinkami: H[A/m] 50 100 200 500 1000 1500 2000 3000 B[T] 0.75 1.5 1.8 1.95 2.0 2.02 2.03 2.035 dla lub po wykonaniu działań: dla i podobnie: dla dla dla
dla dla dla dla
B(H)
Porównanie Ba(H) – interpolacja liniowa B(H) – wielomian 8-go stopnia