Sprawozdanie metody numeryczne liniowe

POLITECHNIKA LUBELSKA

LABORATORIUM

„Metod numerycznych”

Rok akademicki

2012/2013

Temat ćwiczenia:

Rozwiązywanie układów równań liniowych metodami:

- eliminacji Gaussa – metoda skończona.

- iteracji prostych Jacobiego – metoda przybliżona.

Data wykonania

01.12.2012

Piotr Grobel EIST 3.1

1. Schemat układu:

2. Parametry elementów obwodu:

R=10Ω

E=100V

Eliminacja Gaussa – metoda skończona.

Skrypt:

clear;

clc;

format(9,"v");

A= [40,-10,0,-10,0,0,0,0,0,0,0;..

-10,40,-10,0,-10,0,0,0,0,0,0;..

0,-10,40,0,0,-10,0,0,0,0,0;..

-10,0,0,40,-10,0,-10,0,0,0,0;..

0,-10,0,-10,60,-10,-10,-10,0,-10,0;..

0,0,-10,0,-10,40,0,-10,0,0,0;..

0,0,0,-10,-10,0,40,0,-10,0,0;..

0,0,0,0,-10,-10,0,40,0,0,-10;..

0,0,0,0,0,0,-10,0,40,-10,0;..

0,0,0,0,-10,0,0,0,-10,40,-10;..

0,0,0,0,0,0,0,-10,0,-10,40]

//Zapisanie macierzy współczynników

b=[0;0;0;0;0;0;0;0;100;0;100;] //Zapisanie wektora wyrazów wolnych

Ab=[A b]

//Zerowanie macierzy

for j=1:11

for i=j+1:11

L=Ab(i,j)/Ab(j,j)

Ab(i,:)=Ab(i,:)-L*Ab(j,:)

end;

end;

// Postępowanie odwrotne

for i=11:-1:1

S= Ab(i,11+1);

if i<11 then

for j=i+1:11

S=S-X(j)*Ab(i,j)

end

end

X(i)=S/Ab(i,i)

end

Xtest=linsolve(A,-b) // Sprawdzenie funkcją linsolve

Iteracji prostych Jacobiego – metoda przybliżona.

  1. Dokładność do 0.001

clear;

clc;

format(9,"v");

A= [40,-10,0,-10,0,0,0,0,0,0,0;..

-10,40,-10,0,-10,0,0,0,0,0,0;..

0,-10,40,0,0,-10,0,0,0,0,0;..

-10,0,0,40,-10,0,-10,0,0,0,0;..

0,-10,0,-10,60,-10,-10,-10,0,-10,0;..

0,0,-10,0,-10,40,0,-10,0,0,0;..

0,0,0,-10,-10,0,40,0,-10,0,0;..

0,0,0,0,-10,-10,0,40,0,0,-10;..

0,0,0,0,0,0,-10,0,40,-10,0;..

0,0,0,0,-10,0,0,0,-10,40,-10;..

0,0,0,0,0,0,0,-10,0,-10,40] //macierz współczynników

b=[0;0;0;0;0;0;0;0;100;0;100;] //macierz wyrazów wolnych

k=50; // liczba iteracji

L=tril(A, -1) // macierz poddiagonalna

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

U=triu(A,1) // macierz naddiagonalna

Dinv = inv(D) // macierz odwrotna z D

X(:,1)=b // Pierwsze przybliżenie

for i=2:k // Dokładność 0.001

X(:,i)=-Dinv*(L+U)*X(:,i-1)+Dinv*b // Iteracje

if sum(abs(X(:,i)-X(:,i-1)))<0.001 // Dokładność

plot(1:i-1, X(:, 1:i-1)) // Rysowanie wykresu

break; // Przerwanie pętli

end; // Koniec if

end; // Koniec pętli for

Wykres:

  1. Dokładność do 0.000001

clear;

clc;

format(9,"v");

A= [40,-10,0,-10,0,0,0,0,0,0,0;..

-10,40,-10,0,-10,0,0,0,0,0,0;..

0,-10,40,0,0,-10,0,0,0,0,0;..

-10,0,0,40,-10,0,-10,0,0,0,0;..

0,-10,0,-10,60,-10,-10,-10,0,-10,0;..

0,0,-10,0,-10,40,0,-10,0,0,0;..

0,0,0,-10,-10,0,40,0,-10,0,0;..

0,0,0,0,-10,-10,0,40,0,0,-10;..

0,0,0,0,0,0,-10,0,40,-10,0;..

0,0,0,0,-10,0,0,0,-10,40,-10;..

0,0,0,0,0,0,0,-10,0,-10,40] //macierz współczynników

b=[0;0;0;0;0;0;0;0;100;0;100;] //macierz wyrazów wolnych

k=50; // liczba iteracji

L=tril(A, -1) // macierz poddiagonalna

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

U=triu(A,1) // macierz naddiagonalna

Dinv = inv(D) // macierz odwrotna z D

X(:,1)=b // Pierwsze przybliżenie

for i=2:k // Dokładność 0.000001

X(:,i)=-Dinv*(L+U)*X(:,i-1)+Dinv*b // Iteracje

if sum(abs(X(:,i)-X(:,i-1)))<0.000001 // Dokładność

plot(1:i-1, X(:, 1:i-1)) // Rysowanie wykresu

break; // Przerwanie pętli

end; // Koniec if

end; // Koniec pętli for

Zestawienie wyników:

Gaussa Linsolve

Jacobiego z dokładnością 0.001

(36 iteracji)

Jacobiego z dokładnością 0.000001

(50 iteracji)

0.245412 0.245412 0.245574 0.245414
0.369185 0.369185 0.369408 0.369188
0.245412 0.245412 0.245574 0.245414
0.612463 0.612463 0.612717 0.612466
0.985915 0.985915 0.986247 0.98592
0.612463 0.612463 0.612717 0.612466
1.218523 1.218523 1.218778 1.218527
1.218523 1.218523 1.218778 1.218527
3.275715 3.275715 3.275877 3.275717
1.884336 1.884336 1.88456 1.884339
3.275715 3.275715 3.275877 3.275717

Wnioski:

Porównując wszystkie wyniki uzyskane przez wszystkie metody stwierdzamy, że najdokładniejsza jest metoda Gaussa, ponieważ jej rezultaty są identyczne jak w przypadku funkcji Linsolve. Mniej dokładną okazuje się metoda Jacobiego, otrzymane wyniki różnią się w zależności od przyjętej dokładności lecz różnice w wyniku są nieznaczne.


Wyszukiwarka