POLITECHNIKA WROCŁAWSKA
ZAKŁAD AUTOMATYKI |
Skład grupy:
1. Anna Knap 170739
|
Wydział: Elektryczny Rok studiów: 3 Rok Akademicki : 2010/2011 Grupa: Termin: Wtorek, 07:30 |
|
METODY NUMERYCZNE |
|||
Data wykonania ćwiczenia: 08.03.2011 |
Nr ćwiczenia: 1 Temat: Metoda Gaussa-Seidla iteracyjnego rozwiązywania układów równań liniowych. |
||
Data oddania sprawozdania: 15.03.2011 |
|
||
Prowadzący: Mgr inż. Łukasz Staszewski |
|
Cel ćwiczenia: Zapoznanie się z metodą iteracyjnego rozwiązywania układów równań liniowych - metodą Gaussa-Seidla. Rozwiązanie układu równań, z użyciem tej metody.
Przebieg ćwiczenia:
Zastosowanie metody Gaussa-Seidla dla następującego układu równań liniowych:
|
|
,
1. Pierwszym zadaniem było uporządkowanie elementów macierzy, aby największe co do modułu elementy znalazły się na przekątnej:
Dla mojej macierzy:
M-plik
A=[-7 0 2 13;3 6 2 0;2 -1 9 1;12 -2 3 5] b=[15;4;3;-1] A,b, x=A(1,:); A(1,:)=A(4,:); A(4,:)=x; x=b(1); b(1)=b(4); b(4)=x; A,b, |
Wynik:
A = 12 -2 3 5 3 6 2 0 2 -1 9 1 -7 0 2 13
b = -1 4 3 15 |
Dla macierzy dowolnej:
M-plik:
[m,n]=size(A);
A11=A; b11=b;
n=length(A); for i=1:n-1 wiersz=i; for j=(i+1):(n) if (abs(A(wiersz,i)))<(abs(A(j,i))) wiersz=j; end end if (wiersz~=i) A1=A; B1=b; A(i,:)=A1(wiersz,:); A(wiersz,:)=A1(i,:); b(i)=B1(wiersz); b(wiersz)=B1(i); end end A,b |
Sprawdzenie dla mojej macierzy:
A =
12 -2 3 5 3 6 2 0 2 -1 9 1 -7 0 2 13 |
2. Po uporządkowaniu macierzy należało rozwiązać układ równań:
W otrzymanym programie nie dokonywałam żadnych zmian, więc zamieszczam sam wynik:
x = -0.4228 0.7402 0.4137 0.8625
Błąd powstały w wyniku używania metody iteracyjnej:
ans =
1.0e-005 *
0.2803 -0.0135 0.0420 -0.0000 |
Wnioski:
Metoda Gaussa-Siedla służy do rozwiązywania równań liniowych. Jak widać dość dobrze się sprawdza, wyniki wychodzą poprawne, błąd rzędu 10-5, lecz porównując ją choćby do bezpośredniej metody Gaussa okazuje się, że nie jest jednak aż tak dokładna (przy użyciu procedury Gaussa uzyskiwaliśmy błąd rzędu 10-13, czyli dużo mniejszy). Niestety metoda Gaussa-Siedla jest też zdecydowanie bardziej skomplikowana, więc zabiera więcej pamięci operacyjnej i wolniej liczy. Mogłoby się wydawać, że w takim razie znajduje zastosowanie dla dużych układów równań, lecz niestety tu także się nie sprawdza (metody nadrelaksacyjne zapewniają większą zbieżność) i w tej chwili ma charakter czysto akademicki.