MatLab.doc

(1525 KB) Pobierz
METODY NUMERYCZNE I SYMULACJE KOMPUTEROWE

Warszawa,  7.11.02

 

 

wydz elektryczny – informatyka

Sem III, gr 2

 

METODY NUMERYCZNE I SYMULACJE KOMPUTEROWE

 

Prowadzący Dr. T.H. Linth

 

Projekt nr 2:

 

Metody rozwiązywania układów równań liniowych

zywa

 

1.     Dla wybranych zestawów (A,b) oraz x obliczyć za pomocą funkcji Matlaba rozwiązanie układu równań A.x = b. Wyznaczyć błąd obliczeniowy i współczynnik zbieżności.

2.     Przeprowadzić obliczenia za pomocą pozostałych metod iteracyjnych. Wyznaczyć błędy numeryczne i przyrządzić odpowiednie wykresy przebiegów obliczenia i błędów (funkcje błędu i rozwiązania od iteracji).

3.     Omówić uzyskane wyniki (!!!).

 

 

 

 

 

 

 

 

 

 

 

             

Wstęp teoretyczny i Realizacja projektu

 

 

Cel projektu: Zaznajomienie się z metodami iteracyjnymi rozwiązywania układów równań liniowych m.in. metodą Jacobiego, Gaussa-Seidla i SOR czyli tzw nadrelaksacji.

 

Wzór iteracji :

A*x=B

 

Jest to wzór ogólny, gdzie:

jest n x n wymiarową macierzą współczynników układu,

jest wektorem wyrazów wolnych,

jest szukanym

 

Należy przejść do układu równoważnego postaci:

 

X=Bx+c

 

Za pomocą trzech metod :

Jacobiego, która wyraża się wzorem

 

 

Gaussa-Seidla która wyraża się wzorem

 

 

i SOR  która wyraża się wzorem

 

 

 

wyznaczamy B i c, przebiegi obliczenia funkcji w funkcji liczby iteracji, błedy w funkcji liczby iteracji.

1)wygenerowanie macierzy A

 

2)sprawdzenie waruneku koniecznego i dostatecznego zbieżności iteracji prostej

 

r(B) < 1

 

3)obliczenie błędu

 

błąd = ||xxorg||

 

4)uwzględnic warunek przy którym pętle odpowiedzialne za iteracje zakończą działanie tzw warunek dokładności wyrażony wzorem:

 

e <= ||x kx(k+1)|| 2

 

5)wyliczenie x

 

 

x= A/b

tak więc :

 

za pomocą Matlaba:

J = 1:n;                                           

J = J(ones(n,1),:);  

A = ones(n,n)./(J'+J-1)

..,

 

 

1))wygenerowana została macierz Hilberta.

 

A=[1.0000  0.5000  0.3333  0.2500

      0.5000  0.3333  0.2500  0.2000

      0.3333  0.2500  0.2000  0.1667

0.2500    0.2000  0.1667  0.1429]

 

b=A*xorg;

             

b=[ 4.000

       2.7167

       2.1000

       1.7214 ]

 

2))Macierz A o wymiarach 3x3- żle uwarunkowana

 

A=gallery(3)

 

A=[ -149 -50  -154

537    180   546

-27     -9    -25 ]

 

b=[ -711

       2532

       -120 ]

 

3))Macierz A o wymiarach 5x5- żle uwarunkowana

 

A=gallery(5)

 

A=[     -9        11     -21          63      -252

70           69     141      -421      1684

-575     575  -1149     3451  -13801

3891 -3891   7782  -23345  93365

1024  -1024   2048   -6144   24575 ]

 

 

b=[  -1058

          7091

       -58073

       392900

       103404 ]

 

1))x obliczony ze wzoru A/B dla macierz hermitowskeij wynosi:

                                                        x=[  1

2

3

4

5

6

7

   8  ]

 

błąd = ||xxorg||2=1,8*10-6

 

METODA JACOBIEGO:

 

r(BJ)=6.042134

z czego wynika iż metoda Jacobiego nie jest zbieżna bo |r(B)| > 1

 

 

 

 

 

 

METODA GAUSSA-SEIDLA

 

Jest zbieżna

 

błąd obliczeniowy= ||xxorg||2 =1.6448

ilość iteracji=942

 

 

 

 

 

 

METODA SOR – NADRELAKSACJI

 

błąd obliczeniowy= 1.1641

ilość iteracji=3386

 

 

 

 

 

 

 

 

 

2))x obliczony ze wzoru A/B (dla macierzy 3x3) wynosi

x=[  1

       2

3        ]

 

błąd obliczeniowy= ||xxorg||2 =6,58*10-6

 

METODA JACOBIEGO:

 

r(BJ)=2,068236

z czego wynika iż metoda Jacobiego nie jest zbieżna bo |r(B)| > 1

 

METODA GAUSSA-SEIDLA

 

r(Bgs)=1,099

z czego wynika iż metoda Gaussa-Seidla nie jest zbieżna bo |r(B)| > 1

 

METODA SOR – NADRELAKSACJI

 

r(Bsor)=1,0228

z czego wynika iż metoda SOR nie jest zbieżna bo |r(B)| > 1

 

3))x obliczony ze wzoru A/B (dla macierzy 5x5) wynosi

 

x=[1.0000

                                                              1.4147

                                                                                    6.9579

                                                                                    -23.1203

                                                                                    -2.1354 ]

 

METODA JACOBIEGO:

 

r(BJ)=4,155601

z czego wynika iż metoda Jacobiego nie jest zbieżna bo |r(B)| > 1

 

METODA GAUSSA-SEIDLA

 

r(Bgs)=1,227035

z czego wynika iż metoda Gaussa-Seidla nie jest zbieżna bo |r(B)| > 1

 

 

METODA SOR – NADRELAKSACJI

 

r(Bsor)=1,238619

z czego wynika iż metoda SOR nie jest zbieżna bo |r(B)| >1

 

 

KOD ŹRÓDŁOWY:

clear

n=8;                     %liczba równań

eps=0.001;             

J = 1:n;              %1 2 3 4                              

J = J(ones(n,1),:);     

A = ones(n,n)./(J'+J-1); %generowanie macierzy Hilberta

%A=gallery(3)              % zwraca źle uwarunkowana macierz 3x3

%A=gallery(5)            %źle uwarunkowana macierz 5x5

[m,n]=size(A);                       

xorg=(1:n)';

b=A*xorg;                                                                      % macierz b

A\b                                                                      %obliczanie x

bl=norm(A\b-xorg,2)                            %błąd obliczeniowy

[m,n]=size(A);             

 

%rozkład macierzy A na macierze L U D

 

   L=tril(A,-1)       %macierz trójkątna z elementów pod 

                     % główną przekątną macierzy A

U=triu(A,1)                                                                      %macierz trójkątna z elementów nad

                                                                                                                %górną przekątna macierzy A

D=diag(diag(A))                                % macierz diagonalna

 

disp(‘Metoda Jacobiego’)

 

x=zeros(n,1);                                                        ...

Zgłoś jeśli naruszono regulamin