Politechnika Wrocławska
Wydział Elektryczny
Wojciech Calów
Rok studiów : III
Semestr : VI
Rok akad.: 2012/13
Laboratorium Metod Numerycznych
Data:
Temat :
Rozwiązywanie układów równań
liniowych metodą Gaussa-Seidla
Ocena:
1. Cel ćwiczenia:
Utworzenie algorytmu Gaussa-Seidla dla podanego układu równań, znalezienie jego
rozwiązania numerycznego.
2. Programy:
%% GAUSS SEIDEL PARAMET ===========================================
clc; clear
all
; close
all
;
A = [-7 8 2 21; 12 -20 3 4; 2 -1 9 1; -10 6 2 0];
B = [12 -1 4 14];
c = 1;
n = size(A,1);
% rozmiar A
x1 = ones(n,1);
% wartosci poczatkowe
k=1;
% inicjalizacja zmiennej k
m=20;
% inicjalizacja zmiennej m
%% SORTOWANIE =====================================================
for
i=1:1:n
%kolumny
for
j=i:1:n
%wiersze
if
abs(A(i,i)) < abs(A(j,i))
% sprawdzanaie wartosc
c=j;
% zapisanie najwiekszego elemetu z wiersza
elseif
abs(A(i,i))== abs(A(j,i))
c=j;
end
;
end
;
tab=A(i,:);
% zapis tymczasowy wiersza
A(i,:)=A(c,:);
% przepisanie wartosci najwiekszej na kolejny
wiersz
A(c,:)=tab;
tabb=B(i);
% zapis tymczasowy wiersza macierzy B
B(i)=B(c);
% przepisanie wartosci najwiekszej na kolejny
wiersz
B(c)= tabb;
end
;
%sprawdzenie obliczen
%% PROGRAM
while
m > 0.000001
%zadanie dokladno?ci wyniku
for
i=1:n
%p?tla licz?ca macierz rozwi?za? x
S1=B(i)/A(i,i);
%obliczanie pierwszego sk?adnika
S2=0;
for
j=1:(i-1)
%obliczanie drugiego sk?adnika sumy
S2=S2+A(i,j)*x1(j)/A(i,i);
end
S3=0;
for
j=i+1:n
%obliczanie trzeciego sk?adnika sumy
S3=S3+A(i,j)*x1(j)/A(i,i);
end
x(i)=S1-S2-S3;
%obliczanie i-tego wsp macierzy wyniku
end
m=0;
for
i=1:n
% petla wyszukujaca najwieksza roznice
if
abs(x1(i)-x(i))>m
m=abs(x1(i)-x(i));
% wpisywana ona jest do zmiennej m
end
end
x1=x;
% wprowadzenie nowych wyników jako poprzednie
k=k+1;
% zwiekszenie numeru kroku o 1
end
% koniec petli while
3. Wyniki
Wynik sortowania :
A =
-10 6 2 0
12 -20 3 4
2 -1 9 1
-7 8 2 21
Wynik metody Gausa Seidla :
>> x1'
ans =
-1.7712
-0.8574
0.7162
0.2395
Błąd metody :
>> A*x1'-B'
ans =
1.0e-005 *
-0.3605
-0.7179
-0.0605
-0.0415
3. Wnioski
Metoda Gaussa-Seidla ma tą przewagę nad algorytmem Gaussa że możemy znaleźć
rozwiązania w dokładniejszej postaci, lub możemy tą dokładność zwiększać gdy
takową potrzebujemy.