2 f, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numeryczne [2009], Kosma Z - Metody i algorytmy numeryczne [2009]


Dla układu równań z pięciodiagonalną macierzą blokową

(2.108)

uogólniając wzory (2.97) i (2.98), wyznaczamy najpierw macierze:

0x01 graphic

dla k = 1, 2, ..., n, a następnie obliczamy wektory niewiadomych:

0x01 graphic
(2.109)

2.6. Stacjonarne metody iteracyjne

Omawianie metod iteracyjnych rozpoczniemy od przedstawienia macierzy wyjściowego układu równań

(2.110)

w postaci sumy

(2.111)

macierzy trójkątnej dolnej S o zerowych elementach diagonalnych, macierzy diagonalnej oraz macierzy trójkątnej górnej T o zerowych elementach diagonalnych. Rozwiązywany układ równań (2.110) możemy więc zapisać następująco

0x01 graphic
(2.112)

Jeśli macierz D jest nieosobliwa możemy przejść do postaci

0x01 graphic
(2.113)

gdzie

i utworzyć ciąg kolejnych przybliżeń (2.40)

0x01 graphic
(2.114)

gdzie:

0x01 graphic

określający najprostszą metodę iteracyjną zwaną metodą Jacobiego lub też metodą iteracji prostej. Łatwo można sprawdzić, że zachodzi następująca zależność po-między współrzędnymi kolejnych przybliżeń

0x01 graphic
(2.115)

Metoda Gaussa i Seidela jest modyfikacją metody Jacobiego, w której przy obliczaniu przybliżenia wyższego niewiadomej wykorzystywane są znane już wartości każdego wyższego przybliżenia niewiadomych Metodę Ga-ussa i Seidela określa zatem zmodyfikowany układ równań (2.115), w którym czyni się użytek z wyższego przybliżenia natychmiast po jego obliczeniu

0x01 graphic
(2.116)

Korzystając z przedstawienia (2.113) układu równań (2.110) możemy te zależności zapisać w następującej postaci macierzowej

(2.117)

gdzie:

Przepisując zależności (2.116) w postaci

0x01 graphic

po pomnożeniu poprawek obliczanych niewiadomych , ...,  przez odpowiednio dobraną liczbę: ω ∈ (0, 2), otrzymujemy ciągi kolejnych przybliżeń:

0x01 graphic
(2.118)

określające metody relaksacyjne. Liczba ω oznacza tzw. parametr relaksacji.
W przypadku

(2.119)

metoda nosi nazwę metody kolejnych nadrelaksacji (w skrócie SOR, od ang. successive overrelaxation), w przypadku

(2.120)

mówimy o podrelaksacji; dla ω = 1 wzór (2.118) redukuje się do wzorów (2.116).

Przekształcone równania (2.118)

0x01 graphic

możemy łatwo zapisać w postaci macierzowej

0x01 graphic

skąd wynika zapis macierzowy metod relaksacyjnych

0x01 graphic
(2.121)

gdzie:

0x01 graphic
0x01 graphic

Mnożąc obydwie strony równania (2.110) przez parametr p i dodając do nich wektor X dostajemy zależność

(2.122)

która pozwala na utworzenie ciągu kolejnych przybliżeń metody iteracyjnej, nazywanej metodą Richardsona

0x01 graphic
(2.123)

gdzie:

0x01 graphic

*

Podstawowymi własnościami każdej metody iteracyjnej, decydującymi o ich wa-lorach użytkowych są zbieżność i szybkość zbieżności.

Wprowadzając błąd k-tej iteracji jako różnicę

0x01 graphic
(2.124)

między przybliżonym rozwiązaniem układu (2.110) i jego rozwiązaniem dokładnym, warunek zbieżności (2.41) możemy przepisać w postaci

(2.125)

Odejmując stronami równanie (2.39) od równania (2.40) otrzymujemy zależność między błędami kolejnych iteracji

(2.126)

zważywszy, że itd. Stąd i z własności norm dostajemy oszacowanie

z którego wynika, że warunek zbieżności (2.125) dowolnej metody iteracyjnej sprowadza się do nierówności

(2.127)

Dla zbieżności ciągu zdefiniowanego wzorem (2.40) wystarcza zatem, aby dowolna norma macierzy zdefiniowana wzorami (2.31) - (2.34) była mniejsza od jedności, przy czym wielkość normy decyduje o szybkości zbieżności metody iteracyjnej [2]

0x01 graphic
(2.128)

Układami równań liniowych nie wymagającymi spełnienia dodatkowego warunku zbieżności (2.127) są układy normalne. Układ równań liniowych (2.110) nazywamy normalnym, jeśli macierz A jego współczynników jest symetryczna i dodatnio określona. Układem normalnym jest układ równań powstały przez lewostronne pomnożenie równania (2.110) przez macierz transponowaną

(2.129)

Symetryczność macierzy (2.27) wynika z własności operacji transponowania macierzy, a dla wykazania jej dodatniej określoności należy zbadać od-powiadającą jej formę kwadratową (2.10)

0x01 graphic
0x01 graphic

i uwzględnić fakt, że przy założeniu układ jednorodny ma tylko rozwiązanie zerowe.

Ważną klasę układów równań spełniających warunek (2.127) są układy z diagonalnie dominującymi macierzami współczynników. Macierz A nazywamy diagonalnie silnie dominującą, jeżeli moduły elementów na diagonali są większe od sumy modułów pozostałych elementów występujących w tym samym wierszu

0x01 graphic

lub jeśli moduły elementów na diagonali są większe od sumy modułów pozostałych elementów należących do tej samej kolumny

0x01 graphic

Ważną wielkością charakteryzującą metody iteracyjne jest promień spektralny macierzy - decydujący nie tylko o zbieżności metody iteracyjnej (norma spektralna), ale także o szybkości zbieżności konstruowanego ciągu (2.40), gdyż dla dowolnego > 0 i dla dostatecznie dużych k prawdziwe jest oszacowanie [6]

0x01 graphic

a ponadto zachodzą równości [12]:

dla macierzy A (2.111) zgodnie uporządkowanych tzn. takich, że wartości własne macierzy

0x01 graphic

są niezależne od dla

Dodatkowo przy stosowaniu czterech rozważanych metod iteracyjnych należy wziąć pod uwagę ich różne szczególne własności i uwarunkowania:

1. Metody Jacobiego i Gaussa-Seidela wymagają ustalenia takiej kolejności rów-nań, aby na diagonali występowały elementy niezerowe. Na ogół metoda Gaussa-Seidela jest szybciej zbieżna niż metoda Jacobiego, jednak w ogólnym przypadku nie ma takiej zależności - istnieją bowiem przykłady, że metoda Gaussa-Seidela jest rozbieżna, a metoda Jacobiego zbieżna i odwrotnie.

2. W metodach relaksacyjnych optymalna wartość jest większa od jedności, a więc występuje przy nadrelaksacji. Dla macierzy A (2.111) zgodnie uporządkowanej [6, 12]

(2.130)

gdzie jest największą co do modułu wartością własną macierzy promień spektralny macierzy jest wtedy równy

Charakter zależności promienia spektralnego od wartości ilustruje rysunek 2.1. Widać z niego, że gdy nie znamy wartości parametr relaksacji należy raczej przyjmować z niewielkim nadmiarem niż niedomiarem.

0x01 graphic

Rys. 2.1

3. W metodzie Richardsona dla macierzy A symetrycznych i dodatnio określonych można wyrazić w postaci [6]

Podobnie więc jak w metodach relaksacyjnych wielkość wskaźnika uwarunkowania układu nie tylko charakteryzuje jego wrażliwość na zaburzenia danych, ale również decyduje o szybkości zbieżności.

Na zakończenie tego podrozdiału przytoczymy jeszcze porównanie szybkości zbieżności omawianych metod dla układów równań o macierzach symetrycznych, dodatnio określonych i zgodnie uporządkowanych - zaczerpnięte z [6]. W tablicy 2.1 podano wielkości promienia spektralnego oraz liczbę k, będącą minimalną liczbą iteracji niezbędnych dla dziesięciokrotnej redukcji błędu przybliżenia początkowego

0x01 graphic

Tablica 2.1

cond (A)

Metody Jacobiego
i Richardsona

Metoda
Gaussa-Seidela

Metoda SOR

k

k

k

10

100

10000

0.8182

0.9801

0.9998

12

116

11509

0.6694

0.9606

0.9996

6

58

5755

0.2699

0.6694

0.9608

6

18

233

Przy przyjętych założeniach najefektywniejsze okazało się użycie metody SOR, która jest szczególnie przydatna przy rozwiązywaniu zadań o dużym wskaźniku uwarunkowania.

*

{Program 2.3}

uses Crt;

type wym=1..20;

var

i,j,k,n,iter,licz: Integer;

bl,eps,om,sp,xn: Real;

A,AT,C: array[wym,wym] of Real;

B,D,X: array[wym] of Real;

norm: Boolean;

plik: Text;

zn: Char;

label omin,powt;

begin

Assign(plik,'Pr_2_3.dan');

Reset(plik);

Readln(plik,n,eps,iter);

for i:=1 to n do begin

for j:=1 to n do

Read(plik,A[i,j]);

Read(plik,B[i]);

end;

Close(plik);

ClrScr;

Writeln('PROGRAM 2.3');

Writeln('Rozwiazywanie ukladu rownan liniowych.');

Writeln('Metoda relaksacji.'); Writeln;

Write('Parametr relaksacji - om = '); Readln(om);

Write('Uklad w postaci normalnej: (t/n)? ');

zn:=ReadKey; Writeln;

if zn='t' then norm:=True else norm:=False;

Assign(plik,'Pr_2_3.wyn');

Rewrite(plik);

Writeln(plik,'PROGRAM 2.3');

Writeln(plik,'Rozwiazywanie ukladu rownan liniowych.');

Writeln(plik,'Metoda relaksacji.');

Writeln(plik);

Writeln(plik,'Liczba rownan ukladu - n = ',n:2);

Writeln(plik,'Parametr relaksacji - om = ',om:6:3);

Writeln(plik,'Zadana liczba iteracji - iter = ',iter:4);

Writeln(plik,'Zadana dokladnosc obliczen - eps = ',eps:13);

if norm=True then

Writeln(plik,'Uklad sprowadzono do postaci normalnej.');

Writeln(plik);

Writeln(plik,'Macierz wspolczynnikow:');

for i:=1 to n do begin

Writeln(plik,' wiersz nr ',i:2);

k:=0; Write(plik,' ');

for j:=1 to n do begin

k:=k+1;

if k=5 then begin

k:=0; Writeln(plik);

Write(plik,' ');

end;

Write(plik,' ',A[i,j]:13);

end;

Writeln(plik);

end;

Writeln(plik); k:=0;

Writeln(plik,'Wektor prawych stron:');

Write(plik,' ');

for i:=1 to n do begin

k:=k+1;

if k=5 then begin

k:=0; Writeln(plik);

Write(plik,' ');

end;

Write(plik,' ',B[i]:13);

end;

Writeln(plik);

if not norm then goto omin;

{Sprowadzanie ukladu rownan do postaci normalnej}

for i:=1 to n do

for j:=1 to n do

AT[i,j]:=A[j,i];

for i:=1 to n do

for j:=1 to n do begin

sp:=0;

for k:=1 to n do

sp:=sp+AT[i,k]*A[k,j];

C[i,j]:=sp;

end;

for i:=1 to n do begin

sp:=0;

for k:=1 to n do

sp:=sp+AT[i,k]*B[k];

D[i]:=sp;

end;

for i:=1 to n do begin

B[i]:=D[i];

for j:=1 to n do

A[i,j]:=C[i,j];

end;

omin:

{Rozwiazywanie ukladu rownan}

licz:=0; Writeln;

for i:=1 to n do

X[i]:=B[i];

powt:

licz:=licz+1; bl:=0;

for i:=1 to n do begin

sp:=0;

for j:=1 to n do

sp:=sp+A[i,j]*X[j];

if Abs(A[i,i])<1e-10 then Halt(1);

xn:=X[i]-om*(sp-B[i])/A[i,i];

if Abs(xn-X[i])>bl then bl:=Abs(xn-X[i]);

X[i]:=xn;

end;

Write('Iteracja nr ',licz:3);

Writeln(' Norma bledu: ',bl:13);

if (licz<iter) and (bl>eps) then goto powt;

Writeln(plik);

Writeln(plik,'Liczba wykonanych iteracji: ',licz:3);

Writeln(plik);

Writeln(plik,'Rozwiazanie ukladu rownan:');

Write(plik,' '); k:=0;

for i:=1 to n do begin

k:=k+1;

if k=5 then begin

k:=0;

Writeln(plik);

Write(plik,' ');

end;

Write(plik,' ',X[i]:13);

end;

Writeln(plik);

Close(plik);

end.

Zadaniem programu 2.3 jest rozwiązywanie układu równań liniowych metodą relaksacji z możliwością sprowadzania zadanego układu do postaci normalnej dla przybliżenia początkowego wektora niewiadomych równego wektorowi prawych stron. Dane do programu wczytywane z pliku Pr_2_3.dan składają się z następujących elementów:

n - liczba równań,

A[1..n,1..n] - tablica zawierająca współczynniki układu równań,

B[1..n] - tablica zawierająca prawe strony układu równań,

eps - zadana dokładność obliczeń,

iter - zadana liczba iteracji;

ponadto po wczytaniu z klawiatury litery 't' lub litery 'n' następuje wybór alternatywy obliczeń; w przypadku wczytania zn ='t' układ jest sprowadzany do postaci normalnej.

Porównując tabulogramy programów 2.1, 2.2 i 2.3 możemy stwierdzić, że metody iteracyjne są bardzo ekonomiczne pod względem wykorzystania pamięci maszyny cyfrowej. Metody iteracyjne są więc wygodne w stosowaniu dla bardzo dużych macierzy, chociaż dla większości macierzy A wymagają one dłuższych obliczeń dla uzyskania żądanej dokładności, niż metody dokładne.

Tabulogramy wyników uzyskanych po wczytaniu danych określających układ równań (2.59) dla trzech wartości parametru relaksacyjnego: ω = 0.9, 1.3 i 1.5 są następujące:

PROGRAM 2.3

Rozwiazywanie ukladu rownan liniowych.

Metoda relaksacji.

Liczba rownan ukladu - n = 3

Parametr relaksacji - om = 0.900

Zadana liczba iteracji - iter = 50

Zadana dokladnosc obliczen - eps = 1.000000E-06

Uklad sprowadzono do postaci normalnej.

Macierz wspolczynnikow:

wiersz nr 1

1.000000E+00 -1.000000E+00 2.000000E+00

wiersz nr 2

2.000000E+00 1.000000E+00 -1.000000E+00

wiersz nr 3

1.000000E+00 3.000000E+00 -1.000000E+00

Wektor prawych stron:

5.000000E+00 1.000000E+00 4.000000E+00

Liczba wykonanych iteracji: 44

Rozwiazanie ukladu rownan:

9.999984E-01 2.000002E+00 3.000002E+00

PROGRAM 2.3

Rozwiazywanie ukladu rownan liniowych.

Metoda relaksacji.

Liczba rownan ukladu - n = 3

Parametr relaksacji - om = 1.300

Zadana liczba iteracji - iter = 50

Zadana dokladnosc obliczen - eps = 1.000000E-06

Uklad sprowadzono do postaci normalnej.

Macierz wspolczynnikow:

wiersz nr 1

1.000000E+00 -1.000000E+00 2.000000E+00

wiersz nr 2

2.000000E+00 1.000000E+00 -1.000000E+00

wiersz nr 3

1.000000E+00 3.000000E+00 -1.000000E+00

Wektor prawych stron:

5.000000E+00 1.000000E+00 4.000000E+00

Liczba wykonanych iteracji: 16

Rozwiazanie ukladu rownan:

1.000000E+00 2.000000E+00 3.000000E+00

PROGRAM 2.3

Rozwiazywanie ukladu rownan liniowych.

Metoda relaksacji.

Liczba rownan ukladu - n = 3

Parametr relaksacji - om = 1.500

Zadana liczba iteracji - iter = 50

Zadana dokladnosc obliczen - eps = 1.000000E-06

Uklad sprowadzono do postaci normalnej.

Macierz wspolczynnikow:

wiersz nr 1

1.000000E+00 -1.000000E+00 2.000000E+00

wiersz nr 2

2.000000E+00 1.000000E+00 -1.000000E+00

wiersz nr 3

1.000000E+00 3.000000E+00 -1.000000E+00

Wektor prawych stron:

5.000000E+00 1.000000E+00 4.000000E+00

Liczba wykonanych iteracji: 26

Rozwiazanie ukladu rownan:

9.999994E-01 2.000000E+00 3.000000E+00

Tabulogramy wyników uzyskanych po wczytaniu danych określających układ równań równoważny układowi (2.59) - powstały przez przyjęcie innej kolejności równań:

0x01 graphic

dla trzech wartości parametru relaksacyjnego ω = 0.9, 1.2, 1.4 mają postać:

PROGRAM 2.3

Rozwiazywanie ukladu rownan liniowych.

Metoda relaksacji.

Liczba rownan ukladu - n = 3

Parametr relaksacji - om = 0.900

Zadana liczba iteracji - iter = 50

Zadana dokladnosc obliczen - eps = 1.000000E-06

Macierz wspolczynnikow:

wiersz nr 1

2.000000E+00 1.000000E+00 -1.000000E+00

wiersz nr 2

1.000000E+00 3.000000E+00 -1.000000E+00

wiersz nr 3

1.000000E+00 -1.000000E+00 2.000000E+00

Wektor prawych stron:

1.000000E+00 4.000000E+00 5.000000E+00

Liczba wykonanych iteracji: 16

Rozwiazanie ukladu rownan:

9.999999E-01 2.000000E+00 3.000000E+00

PROGRAM 2.3

Rozwiazywanie ukladu rownan liniowych.

Metoda relaksacji.

Liczba rownan ukladu - n = 3

Parametr relaksacji - om = 1.200

Zadana liczba iteracji - iter = 50

Zadana dokladnosc obliczen - eps = 1.000000E-06

Macierz wspolczynnikow:

wiersz nr 1

2.000000E+00 1.000000E+00 -1.000000E+00

wiersz nr 2

1.000000E+00 3.000000E+00 -1.000000E+00

wiersz nr 3

1.000000E+00 -1.000000E+00 2.000000E+00

Wektor prawych stron:

1.000000E+00 4.000000E+00 5.000000E+00

Liczba wykonanych iteracji: 41

98 2. Układy równań liniowych

2.6. Stacjonarne metody iteracyjne 93



Wyszukiwarka

Podobne podstrony:
7 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Spis tresci, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy
4 a, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
4 m, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Okladka, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy nume
1 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Przedmowa, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy nu
Contents, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy num
4 i, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
6 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
5 f, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
2 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 d, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
7 c 2, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numery
5 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
7 b, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 e, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz

więcej podobnych podstron