sprawko 2 moje.doc

(42 KB) Pobierz
POLITECHNIKA WROCŁAWSKA

POLITECHNIKA WROCŁAWSKA

ZAKŁAD AUTOMATYKI
i STEROWANIA w ENERGETYCE

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.

Zgłoś jeśli naruszono regulamin