Zakład Teorii Sterowania 2


Zakład Teorii Sterowania

WYDZIAŁ: EEIiA ROK AKADEMICKI: 2010/2011

KIERUNEK: AIR SEMESTR: IV

NR. GRUPY LAB: 4C3.1

SPRAWOZDANIE Z ĆWICZENIA NR 2

Numeryczne zagadnienia algebry liniowej

Data wykonania ćwiczenia

Nazwisko prowadzącego ćw,

Data oddania sprawozdania

Podpis prowadzącego ćw,

24.03.2011-07.04.2011

Mosiołek

05.05.2011

Imię i nazwisko

Nr Indeksu

Andrzej Biela

155656

Patryk Sitek

161122

  1. Cele cwiczenia

Celem cwiczenia jest zapoznanie sie z podstawowymi zagadnieniami numerycznymi algebry liniowej oraz numerycznymi sposobami ich realizacji.

  1. Eliminacja Gaussa bez wyboru elementu głównego

Kod programu:

function[x,L,U]=gauss(A,b)

format long

r=length(A)

U[A b];

for i=1:r

L(i,i)=1

L(i+1:r,i)=Ui+1:r,i)/Ab(i,i)

U(+1:r,:)=Ui+1:r,:)-(L(i+1:r,i)*Ui,:));

end

  1. Eliminacja Gaussa z częściowym wyborem elementu głównego

Kod programu:

function[x,L,U]=gauss(A,b)

format long

r=length(A);

U=[A,b];

for i=1:r

temp=abs(U(i,i));

for j=i:r

if temp<abs(U(j,i))

temp=abs(U(j,i));

temp2=j;

end

end

zamiana=U(i,:);

U(i,:)=U(temp2,:);

U(temp2,:)=zamiana;

if i>1

zamiana=L(i,:);

L(i,:)=L(temp2,:);

L(temp2,:)=zamiana;

end

L(i,i)=1;

L(i+1:r,i)=U(i+1:r,i)/U(i,i);

U(i+1:r,:)=U(i+1:r,:)-(L(i+1:r,i)*U(i,:));

end

  1. Zależność czasu od obliczeń na macierzach pseudolosowych

Kod programu:

function[] = stoper()

macierze=[2 4 8 16 32 64];

format long

for i=1:6

M1=rand(macierze(1,i));

M2=rand(macierze(1,i));

tic,

for j=1:100000

M1*M2; %iloczyn macierzy

end

time(1,i)=toc;

W=rand(macierze(1,i),1);

tic,

for j=1:100000

M1*W; %iloczyn macierzy i wektora

end

time(2,i)=toc;

tic,

for j=1:100000

det(M1); %wyznacznik macierzy

end

time(3,i)=toc;

r=macierze(1,i);

tic,

for j=1:10000

for k=1:r

L(k+1:r,k)=M1(k+1:r,k)/M1(k,k); % Eliminacja Gaussa

M1(k+1:r,:)=M1(k+1:r,:)-(L(k+1:r,k)*M1(k,:));

end

end

time(4,i)=toc;

tic,

for j=1:10000

U=M1;

r=length(U); % Eliminacja Gaussa z częściowym wyborem elementu głównego

for i=1:r

temp=abs(U(i,i));

for j=i:r

if temp<abs(U(j,i))

temp=abs(U(j,i));

temp2=j;

end

end

zamiana=U(i,:);

U(i,:)=U(temp2,:);

U(temp2,:)=zamiana;

if i>1

zamiana=L(i,:);

L(i,:)=L(temp2,:);

L(temp2,:)=zamiana;

end

L(i,i)=1;

L(i+1:r,i)=U(i+1:r,i)/U(i,i);

U(i+1:r,:)=U(i+1:r,:)-(L(i+1:r,i)*U(i,:));

end

end

time(9,i)=toc

tic,

for j=1:10000

trace(M1); %ślad macierzy

end

time(5,i)=toc;

tic,

for j=1:1000

for k=1:r

L(k,k)=1; %rozkład LU

L(k+1:r,k)=M1(k+1:r,k)/M1(k,k);

M1(k+1:r,:)=M1(k+1:r,:)-(L(k+1:r,k)*M1(k,:));

end

time(6,i)=toc;

end

tic,

for j=1:10000

lu(M1); %rozkład LU funkcją lu

end

time(7,i)=toc;

tic,

for j=1:10000

[Q,R]=qr(M1); %rozkład QR funkcją qr

end

time(8,i)=toc;

end

time=time/10000;

plot(1:6,time(1,:),'*')

title('Wykres czasu obliczania iloczynu dwoch macierzy pseudolosowych');

hold on;

semilogy (1:6,time(2,:),'*')

title('Wykres czasu obliczania iloczynu macierzy pseudolosowych i wektora pseudolosowego');

semilogy (1:6,time(3,:),'*')

hold on;

title('Wykres czasu obliczania wyznacznika macierzy pseudolosowych');

semilogy (1:6,time(4,:),'*')

hold on;

title('Wykres czasu obliczania eliminacji Gaussa macierzy pseudolosowych');

semilogy (1:6,time(5,:),'*')

hold on;

title('Wykres czasu obliczania sladu macierzy pseudolosowych');

semilogy (1:6,time(6,:),'*')

hold on;

title('Wykres czasu obliczania rozkladu LU macierzy pseudolosowych');

semilogy (1:6,time(7,:),'*')

hold on;

title('Wykres czasu obliczania rozkladu LU fukcja lu macierzy pseudolosowych');

semilogy (1:6,time(8,:),'*')

hold on;

title('Wykres czasu obliczania rozkladu QR funkcja qr macierzy pseudolosowych');

hold on;

semilogy(1:6,time(9,:),'*')

title('Wykres czasu obliczania eliminacji Gaussa z czesciowym wyborem elementu glównego');

% hold on;

xlabel('Wielkosc macierzy')

ylabel('Czas obliczen')

set(gca,'XTick',1:1:6)

set(gca,'XTickLabel',{'2x2' '4x4' '8x8' '16x16' '32x32' '64x64'})

    1. Wykres

0x01 graphic
0x01 graphic
0x01 graphic

0x01 graphic

0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic

0x01 graphic

  1. Wnioski

Wygenerowaliśmy 2 macierze 4x4 za pomocą plików tstmat.m i tstcnd.m

Macierz dobrze uwarunkowana

-24 -63 18 -32 153 1

A = -91 65 10 119 b = 328 x = -5

7 65 -10 -7 -390 3

16 -2 40 6 182 6

Wskaźnik uwarunkowania macierzy cond(A)= 6.2387

Macierz źle uwarunkowana

-7162 5027 8671 10247 -777 -3

A = 73433 -51410 -88708 -104859 b = 7609 x = 2

-11789 8243 14225 16818 -1194 1

-48355 33862 58427 69064 -5040 -4

Wskaźnik uwarunkowania macierzy cond(A)= 6.3277e+005

Kod programu:

format long

for i=1:100
A =[ -7162 5027 8671 10247;

73433 -51410 -88708 -104859;

-11789 8243 14225 16818;

-48355 33862 58427 69064];

b =[ -777; 7609; -1194; -5040]

x =[-3; 2; 1; -4];

normaA=inv(A)*b

normaA1=inv(A1)*b1;

eps=0.00001*i;

% w tym miejscu wstawiamy element zaburzający

A1=A1*eps; %skalowanie macierzy A

A=A*eps;

% A(1,1)=(A(1,1)*(1+eps)); %zmiana elementu macierzy A

% A1(1,1)=(A1(1,1)*(1+eps));

% b=b*eps; %skalowanie wektora b

% b1=b*eps;

% b1(1,1)=(b1(1,1)*(1+eps)); %zmiana elementu macierzy b

% b(1,1)=(b(1,1)*(1+eps));%

norma21=inv(A1)*b1;

norma2=inv(A)*b;

zmiana(1,i)=norm(normaA1-norma21);

zmiana(2,i)=norm(normaA-norma2);

epsil(1,i)=eps;

end

%plot(epsil(1,:),zmiana(1,:),'.r'),xlabel('zaburzenie'),ylabel('norma macierzy') %dobrze uwarunkowana

plot(epsil(1,:),zmiana(2,:),'.b'),xlabel('zaburzenie'),ylabel('norma macierzy') %źle uwarunkowana

title('Wykres dla macierzy zle uwarunkowanej, zmiana elementu wektora b');

Wykresy0x01 graphic

0x01 graphic

0x01 graphic
0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

Wnioski

Porównując wykresy czasów obliczeń dla macierzach pseudolosowych stwierdzamy, że czas obliczeń:

-iloczynu dwóch macierzy wzrasta w kwadracie i jest w przedziale 10-5-10-2

-rozkład LU wzrasta w kwadracie i jest w przedziale 10-5-10-2

-rozkład LU naszą funkcja wzrasta w kwadracie i jest w przedziale 10-6-10-2 wynika z tego, iż nasz program jest wolniejszy od funkcji lu dla macierzy powyżej 32x32

-śladu macierzy utrzymuje się na stałym poziomie

-eliminacja Gaussa wzrasta w kwadracie i jest w przedziale 10-6-10-2

- eliminacja Gaussa wzrasta liniowo i jest w przedziale 10-5-10-2

-wyznacznik macierzy wzrasta liniowo i jest w przedziale 10-5-10-2

- iloczyn macierzy i wektora wzrasta kwadratowo i jest w przedziale 10-4,8-10-4,1

Dla każdego typu zaburzeń można stwierdzić, że dla macierzy dobrze uwarunkowane zmiana normy jest zawsze dużo mniejsza niż zmiana normy dla macierzy źle uwarunkowanej.

Im większe zaburzenie jednego z elementów macierzy A lub wektora b to wartość normy wzrasta, przy skalowaniu macierzy lub wektora wartość normy zmniejsza się.



Wyszukiwarka

Podobne podstrony:
SPRAWOZDANIE Z TEORII STEROWANIA
Układy Napędowe oraz algorytmy sterowania w bioprotezach
PODSTAWY STEROWANIA SILNIKIEM INDUKCYJNYM
Sterowce
WYKŁAD 02 SterowCyfrowe
17 Metodologia dyscyplin praktycznych na przykładzie teorii wychowania fizycznego
PODSTAWY TEORII ORGANIZACJI I ZARZĄDZANIA Konwersatorium 1
wykład 4 Sterowanie zapasami
Sterowniki PLC
podstawy teorii przedsiębiorstwa zaoczni
KORP TRANS GRUPY TEORII KTN i BIZ 2010
Semiologia w teorii komunikacji 2
Psychologia osobowości dr Kofta wykład 4 Osobowość w świetle teorii uczenia sie

więcej podobnych podstron