54
UNIVERZITET U BEOGRADU SAOBRAĆAJNI FAKULTET PRAKTIKUM IZ TEORIJE SISTEMA RAČUNSKE VEŽBE Novembar 2007.

RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

  • Upload
    vananh

  • View
    243

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

UNIVERZITET U BEOGRADU SAOBRAĆAJNI FAKULTET

PRAKTIKUM IZ TEORIJE SISTEMA

RAČUNSKE VEŽBE

Novembar 2007.

Page 2: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

2

1. Matrične operacije 1. Formirati matricu BbAbC T -= )( , gde je

úúú

ű

ů

ęęę

ë

é=

300020401

A , úúú

ű

ů

ęęę

ë

é=

111

b i B=I

Rešenje:

A=zeros(3); A(1,1)=1; A(2,2)=2; A(3,3)=3; A(1,3)=4; b=ones(3,1); B=eye(3); C=(A*b)*b’-B;

Rezultat:

C = 4 5 5 2 1 2 3 3 2

2. Formirati matricu A dimenzija 3x3 sa elementima odabranim po unifomnoj raspodeli. Nakon toga napravite matricu B dimenzija 5x5 na sledeći način

B=[A zeros(3,2);pi*ones(2,3), eye(2)] Štampati element u 4 vrsti i 1 koloni. Takođe, primenom operator dvotačka (:) štampati sve elemente matrice, elemente od 2 do 3 vrste i od 3 do 4 kolone, zatim elemente od 3 vrste pa do kraja i 3 kolone pa do kraja. Štampati matricu dimezija 2x2 koja se sastoji od sledećih elemenate matrice B, B(3,2), B(3,1), B(2,2), B(2,1). Rešenje i rezultati:

A=rand(3); B=[A zeros(3,2);pi*ones(2,3), eye(2)];

Page 3: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

3

>> B(4,1) ans = 3.1416 B(:,:) B = 0.9778 0.9721 0.2888 0 0 0.9856 0.0081 0.8589 0 0 0.9590 0.3386 0.6293 0 0 3.1416 3.1416 3.1416 1.0000 0 3.1416 3.1416 3.1416 0 1.0000 >> B(2:3,3:4) ans = 0.8589 0 0.6293 0 >> B(3:end,3:end) ans = 0.6293 0 0 3.1416 1.0000 0 3.1416 0 1.0000 >> B([3,2],[2,1]) >> [B(3,2) B(3,1);B(2,2) B(2,1)] ans = 0.7621 0.6068 0.8913 0.2311

3. Napraviti matricu rotacije úúú

ű

ů

ęęę

ë

é-=

1000cossin0sincos

aaaa

A , za a=p/10.

Rešenje:

alfa=pi/10; A=[ cos(alfa), sin(alfa), 0 -sin(alfa), cos(alfa), 0

Page 4: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

4

0 0 1 ] Rezultat:

A = 0.9511 0.3090 0 -0.3090 0.9511 0 0 0 1.0000

4. Naći rešenje matrične jednačina Axy = ako je matrica úúú

ű

ů

ęęę

ë

é-

-=

102141323

A , a

vektor [ ]Ty 534= . Takođe, izračunati determinantu matrice A. Rešenje:

A=[3 -3 3; -1 4 1; 2 0 1]; y=[4 3 5]’; x=inv(A)*y

ili A=[3 -3 3; -1 4 1; 2 0 1]; y=[4 3 5]’; x=A\y

Rezultat:

x = 2.3810 1.2857 0.2381 det(A) ans = -21

5. Korišćenjem rand funkcije formirati prosečne ocene za 10 studenata 5 odseka. Naći najbolje i najlošije studente svakog odseka pojedinačno i najboljeg i najlošijeg studenta svih odseka. Takođe, izračunati prosečnu ocenu za svaki odsek pojedinačno i sve odseke i sortirati studente po odsecima prema prosečnoj oceni od najveće prosečne ocene do najmanje prosečne ocene.

Page 5: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

5

Rešenje:

A = 6+(10-6).*rand(10,5); % Najveci proseci po odsecima maxA = max(A) % Najveci prosek svih odseka maxmaxA = max(maxA) % Najmanji proseci po odsecima minA = min(A) % Najmanji prosek svih odseka minminA = min(minA) % Prosecna ocena po odsecima meanA = mean(A) % Prosecna ocena svih odseka meanmeanA = mean(meanA) % Sortirane prosecne ocene studenata % od najveceg do najmanjeg sort(A,’descend’)

Rezultat:

maxA = 9.7819 9.8455 9.5930 9.2598 9.8245 maxmaxA = 9.8455 minA = 6.3355 6.2882 6.2138 6.2380 6.6458 minminA = 6.2138 meanA = 8.5134 8.1684 8.0317 7.5803 8.3705

Page 6: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

6

meanmeanA = 8.1329 ans = 9.7819 9.8455 9.5930 9.2598 9.8245 9.6638 9.4319 9.1645 8.6800 9.6360 9.4938 8.9306 9.0182 8.5049 9.3179 9.2121 8.7208 8.4665 8.1474 8.3887 8.9600 8.2136 8.2498 7.6363 8.3850 8.5371 8.0536 7.9932 7.0924 8.3822 8.4079 7.6889 7.7378 7.0852 7.9128 7.7275 7.3430 7.4266 6.8035 7.8962 7.0142 7.1679 6.4534 6.3558 7.3158 6.3355 6.2882 6.2138 6.2380 6.6458

6. Formirati kompleksan broj s na osnovu unetog realnog i imaginarnog dela. Izračunati moduo i fazu (u stepenima) unetog broja i napisati konjugovano kompleksni broj datom broju, kao i njegov realni i imaginarni deo. Takođe,

korišćenjem unete vrednosti s izračunati vrednost ( )132

323

2

+++++

=sss

sssF .

Izračunati moduo i fazu za F. Rešenje:

% Unosimo vrednosti za realni i imaginarni deo sigma=input('sigma='); omega=input('omega='); % Formiramo kompleksni broj s=complex(sigma,omega); % Izracunavamo i stampamo amplitudu i fazu za s abs(s) rad2deg(angle(s)) % Konjugovano kompleksni broj conj(s) real(s) imag(s) % Izracunavamo F F=(s^2+s+3)/(s^3+2*s^2+3*s+1) % Izracunavamo i stampamo amplitudu i fazu za F abs(F) rad2deg(angle(F))

Rezultat:

sigma=4

Page 7: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

7

omega=8

ans = 8.9443 ans = 63.4349 ans = 4.0000 - 8.0000i ans = 4 ans = 8 F = 0.0548 - 0.0898i ans = 0.1052 ans = -58.5942

7. Korišćenjem naredbe plot nacrtati funkciju tetf t sin)( -= na intervalu od 0 do 10. Korišćenjem naredbe axis podesiti ose tako da je xmin=0, xmax=8, ymin=-0.1 i ymax=0.5. Rešenje:

Page 8: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

8

x=[0:0.1:10]; y=exp(-x).*sin(x); plot(x,y,'-gx'); title('Funkcija exp(-x)*sin(x)'); ylabel('f(x)'); xlabel('x'); axis([0 8 -0.1 0.5]);

Rezultat:

0 1 2 3 4 5 6 7 8-0.1

0

0.1

0.2

0.3

0.4

Funkcija exp(-x)*sin(x)

f(x)

x

Slika 1. 7. Na intervalu od 0 do 4p nacrtati sinusnu i kosinusnu funkciju koriščenjem plot naredbe. Rešenje:

x=linspace(0,4*pi); plot(x,sin(x)); hold on plot(x,cos(x),'r'); title('Sinusna i kosinusna funkcija'); grid; hold off;

Rezultat:

Page 9: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

9

0 2 4 6 8 10 12 14-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Sinusna i kosinusna funkcija

Slika 2.

8. a) Korićenjem randn funkcije generisati 100 normalno raspoređenih vrednosti i nacrtati ih plot naredbom. Same vrednosti označiti kružićima zelene boje. b) Ponoviti generisanje randn funkcijom za 100.000 vrednosti, a zatim korišćenjem hist naredbe formirati histogram sa 20 intervala. Nacrtati funkciju gustine normalne raspodele i normalnu raspodelu za vrednosti x od -3 do 3. Rešenje: a)

y=randn(100,1); plot(y); xlabel('Broj uzoraka'); ylabel('Vrednost'); hold on; plot(y,'go'); hold off;

Rezultat:

Page 10: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

10

0 10 20 30 40 50 60 70 80 90 100-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

Broj uzoraka

Vre

dnos

t

Slika 3.

Rešenje: b)

% Generisemo uzorak x=randn(100000,1); % Frekfencije pojavljivanja u 20 klasa y=hist(x,20); % Formiramo klase t=linspace(min(x),max(x),20); % Izracunavamo relativne frekfencije f=y./length(x); % Odredjujemo gde cemo nacrtati grafikon subplot(1,2,1); % Crtamo grafikon gustine plot(t, f); % Postavljamo nazive osama xlabel('x'); ylabel('y=f(x)'); % Naziv grafikona title('Funkcija gustine normalne raspodele'); axis([-3 3 0 1]); axis square; % Odredjujemo gde cemo nacrtati grafikon subplot(1,2,2); % Crtamo raspodelu plot(t,cumsum(f)); % Dajemo nazive osama xlabel('x'); ylabel('F(x)');

Page 11: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

11

% Naziv grafikona title('Normalna raspodela'); axis([-3 3 0 1]); axis square;

Rezultat:

-2 0 20

0.2

0.4

0.6

0.8

1

x

y=f(x

)

Funkcija gustine normalne raspodele

-2 0 20

0.2

0.4

0.6

0.8

1

x

F(x)

Normalna raspodela

Slika 4.

9. (Linearna regresija) Korišćenjem vrednost datih u tabeli

odredimo aproksimaciju sledećeg oblika:

xaay 21+=

Koeficijenti a1 i a2 se dobijaju iz sistema linearnih jednačina:

ĺĺĺ

ĺĺ

===

==

=+

=+

N

iii

N

ii

N

ii

N

ii

N

ii

xyxaxa

yxaNa

11

22

11

1121

Rešenje:

x=0:7; y=[-5 -4.5 -3.5 -2.9 -2 -0.8 0.1 1.5]; N=length(x)

x 0 1 2 3 4 5 6 7

y -5 -4.5 -3.5 -2.9 -2 -0.8 0.1 1.5

Page 12: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

12

A=[N sum(x); sum(x) sum(x.^2)]; z=[sum(y); sum(y.*x)]; a=inv(A)*z; xp=[0:0.1:7]; f=a(1)+a(2)*xp; disp(['Koeficijenti: ' num2str(a')]); plot(x,y,'go',xp,f, '-r'); title('Linearna regresija'); xlabel('x'); ylabel('y');

Rezultat:

Koeficijenti: -5.3667 0.92262

0 1 2 3 4 5 6 7-6

-5

-4

-3

-2

-1

0

1

2Linearna regresija

x

y

Slika 5.

10. (Polinomijalna regresija) Korišćenjem vrednost datih u tabeli

x 1 2.5 3.5 4

y 3.8 15 26 33

odredimo aproksimaciju sledećeg oblika:

221 xCCy +=

Koeficijenti C1 i C2 se dobijaju iz sistema linearnih jednačina::

Page 13: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

13

0

04

4

1

4

1

242

4

1

21

4

1

24

1

221

=-+

=-+

ĺ ĺĺ

ĺĺ

= ==

==

i iiii

ii

ii

ii

xyxCxC

yxCC

Rešenje:

x=[1 2.5 3.5 4]; y=[3.8 15 26 33]; A=[4 sum(x.^2); sum(x.^2), sum(x.^4)]; z=[sum(y); sum(y.*x.^2)]; C=A\z; xp=[1:0.1:4]; f=C(1)+C(2)*xp.^2; disp(['Koeficijenti: ' num2str(C')]); plot(x,y,'go',xp,f, '-r'); title('Polinomijalna regresija'); xlabel('x'); ylabel('y');

Rezultat:

Koeficijenti: 2.2790 1.9348

1 1.5 2 2.5 3 3.5 40

5

10

15

20

25

30

35Polinomijalna regresija

x

y

Slika 6.

11. (Polinomijalna regresija) Korišćenjem vrednost datih u tabeli

Page 14: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

14

odredimo aproksimaciju sledećeg oblika:

2210 xaxaay ++=

Koeficijenti a0, a1 i a2 se dobijaju iz sistema linearnih jednačina:

ĺĺĺĺ

ĺĺĺĺ

ĺĺĺ

====

====

===

=-+

=-+

=-+

7

1

27

1

42

7

1

31

7

1

20

7

1

7

1

32

7

1

21

7

10

7

1

27

1

22

7

1107

iii

ii

ii

ii

iii

ii

ii

ii

ii

ii

ii

yxxaxaxa

yxxaxaxa

yxaxaa

Rešenje:

x=[0.4501 0.9802 1.3376 2.3999 2.7936 3.5805 3.7201]; y=[3.0509 1.5078 1.0999 0.9212 1.0012 2.2333 3.2500]; A=[7 sum(x) sum(x.^2);sum(x) sum(x.^2) sum(x.^3);sum(x.^2) sum(x.^3) sum(x.^4)]; z=[sum(y); sum(x.*y); sum((x.^2).*y)]; a=inv(A)*z; disp(['Koeficijenti: ' num2str(a')]); xp=[0:0.1:4]; f=a(1)+a(2)*xp+a(3)*xp.^2; subplot(1,2,1); plot(x,y,'go',xp,f, '-r'); title('Polinomijalna regresija'); xlabel('x'); ylabel('y'); axis square subplot(1,2,2); f=a(1)+a(2)*x+a(3)*x.^2; plot(x,y-f,'-bo'); title('Rezidual'); xlabel('x'); ylabel('y-ykapa'); axis square

Rezultat:

Koeficijenti: 39.0929 -39.9999 -8.50069

x 0.4501 0.9802 1.3376 2.3939 2.7936 3.5805 3.7201 y 3.0509 1.5078 1.0999 0.9212 1.0012 2.2333 3.2500

Page 15: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

15

0 1 2 3 40

1

2

3

4

5Polinomijalna regresija

x

y

0 1 2 3 4-0.4

-0.2

0

0.2

0.4Rezidual

x

y-yk

apa

Slika 7.

12. (Polinomijalna regresija preko matrične formulacije – metoda najmanjih kvadrata) Korišćenjem vrednost datih u tabeli

x 1 2.5 3.5 4 y 3.8 15 26 33

odredimo aproksimaciju sledećeg oblika:

221 xCCy +=

Koeficijenti C se dobijaju iz sledeće matrične jednačine:

yFFCF TT =

úúúúú

ű

ů

ęęęęę

ë

é

=

úúúú

ű

ů

ęęęę

ë

é

=

24

23

22

21

21

21

21

21

1111

)()()()()()()()(

xxxx

tftftftftftftftf

F , úű

ůęë

é=

2

1

CC

C

Rešenje:

x=[1 2.5 3.5 4]; y=[3.8 15 26 33]; F=[ones(4,1) x'.^2]; C=(F'*F)\(F'*y'); xp=[1:0.1:4]; f=C(1)+C(2)*xp.^2; disp(['Koeficijenti: ' num2str(C')]); plot(x,y,'go',xp,f, '-r'); title('Polinomijalna regresija'); xlabel('x');

Page 16: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

16

ylabel('y'); Rezultat:

Koeficijenti: 2.2790 1.9348

1 1.5 2 2.5 3 3.5 40

5

10

15

20

25

30

35Polinomijalna regresija

x

y

Slika 8.

13. (Polinomijalna regresija) Korišćenjem vrednost datih u tabeli

odredimo aproksimaciju 2, 3, 4 i 5 stepena korišćenjem naredbi polyfit i polyval. Rešenje:

x=0:5; y=[0, 20, 60, 68, 77, 110]; novo_x=linspace(0,5); y2=polyval(polyfit(x,y,2),novo_x); y3=polyval(polyfit(x,y,3),novo_x); y4=polyval(polyfit(x,y,4),novo_x); y5=polyval(polyfit(x,y,5),novo_x); subplot(2,2,1); plot(x,y,'o',novo_x,y2); title('Polinomijalna regresija - 2'); ylabel('y');

x 0 1 2 3 4 5 y 0 20 60 68 77 110

Page 17: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

17

xlabel('x'); axis([0 5 0 120]); subplot(2,2,2); plot(x,y,'o',novo_x,y3); title('Polinomijalna regresija - 3'); ylabel('y'); xlabel('x'); axis([0 5 0 120]); subplot(2,2,3); plot(x,y,'o',novo_x,y4); title('Polinomijalna regresija - 4'); ylabel('y'); xlabel('x'); axis([0 5 0 120]); subplot(2,2,4); plot(x,y,'o',novo_x,y4); title('Polinomijalna regresija - 5'); ylabel('y'); xlabel('x'); axis([0 5 0 120]);

Rezultat:

0 1 2 3 4 50

50

100

Polinomijalna regresija - 2

y

x0 1 2 3 4 5

0

50

100

Polinomijalna regresija - 3

y

x

0 1 2 3 4 50

50

100

Polinomijalna regresija - 4

y

x0 1 2 3 4 5

0

50

100

Polinomijalna regresija - 5

y

x

Slika 9.

Page 18: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

18

14. Nacrtati funkciju abxy = (b=2.5, a=3) za vrednosti x na intervalu od 0 do 10. Takođe, nacrtati ovu funkciju na za dijagramu čije su obe ose logaritamske naredbom loglog. Nakon toga nacrtati 111 axby += , gde je yy log1 = , bb log1 = ,

xx log1 = Rešenje:

% Izracunavanje sume clc; x=linspace(0,10); y=2.5*x.^3; plot(x,y); pause; loglog(x,y); grid on; pause; x=logspace(0,10); y=2.5*x.^3; grid off;

Rezultat:

0 1 2 3 4 5 6 7 8 9 100

500

1000

1500

2000

2500

Page 19: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

19

Slika 10.

10-1 100 10110

-3

10-2

10-1

100

101

102

103

104

Slika 11.

15. Napraviti MATLAB skript datoteku koja za uneti prirodan broj N izračunava i ispisuje vrednost zbira

ĺ=

=N

k kS

13

1

Rešenje:

% Izracunavanje sume clc; N=input('N='); zbir=0; for k = 1:N zbir=zbir+k^(-3); end disp(['Zbir je ' num2str(zbir)]);

Rezultat:

N=10 Zbir je 1.1975

16. Napraviti MATLAB skript datoteku koja koršćenjem for petlje ispisuje piramidu brojeva (tzv. Paskalov trougao).

Page 20: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

20

Rešenje:

% Ispisivanje piramide brojeva x=[1:9 8:-1:1]; clc; for i = 1:9 fprintf('%9s%s\n', ... num2str(x(1:i),'%d'),num2str(x(19-i:end),'%d') ); end

Rezultat:

1 121 12321 1234321 123454321 12345654321 1234567654321 123456787654321 12345678987654321

17. Napraviti MATLAB skript datoteku koja koršćenjem for petlje pravi Hilbertovu matricu dimenzija NxN. Elementi Hilbertove matrice dobijaju se kao

( ) NjNijijiH ,...,1,,...1,1),( 1 ==-+= - . Ugrađenu funkciju zeros koristiti za inicijalizaciju dimenzija i vrednosti matrice. Rešenje:

N=input('N=');

% Iniciram matricu A = zeros(N,N); for i = 1:N for j = 1:N A(i,j) = 1/(i+j -1); end end disp(A);

Rezultat:

N=4 1.0000 0.5000 0.3333 0.2500

Page 21: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

21

0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429

18. Napraviti MATLAB skript datoteku koja za uneti celi broj određuje cifre datog broja korišćenjem while petlje. Rešenje:

% Cifre celog broja clc; ceo=input('Unesite celi broj? '); x=abs(ceo); disp(['Cifre broja ', int2str(ceo), ' od mesta najmanje tezine su:']); while x~=0 cifra=mod(x,10); x=fix(x/10); disp(cifra); end

Rezultat:

Unesite celi broj? 234567 Cifre broja 234567 od mesta najmanje tezine su: 7 6 5 4 3 2

19. Koršćenjem while petlje i if naredbe proveriti da li je uneti broj prost broj. Rešenje:

% Prost broj clc; M=1; while M<2

Page 22: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

22

M=input('Unesite prost broj: '); end P=2; K=fix(sqrt(M)); while (P<=K) & (mod(M,P) ~= 0) P=P+1; end if P>K disp( [ int2str(M) ' je prost broj.'] ); else disp( [ int2str(M) ' nije prost broj.'] ); end

Rezultat: 20. Dat je red:

( )ĺ= +-=

k

n

xnn

nxe

S1 )!1(

sin21

Izračunati približno S. Postupak izračunavanja prekinuti kada je sabrano k članova reda ili kada jedan član reda postane po modulu manji od e. Prvi član reda u svakom slučaju uključiti u S. x, e i k se učitavaju iz komandnog prozora. Izračunavanje uraditi upotrebom i while i for petlje. (NAPOMENA: Izračuna se prvi član sume da bi se svaki naredni računao po

sledećoj rekurzivnoj formuli 112

-+-= nn a

na )

Rešenje: a) Rešenje sa while petljom

% Izracunavanje sume – resenje sa while clc; k=input('Maksimalni broj sabiraka? '); eps=input('Kolika je tacnost? '); x=input('Koliko je x? '); a=-abs(sin(x)*exp(x)); suma=a;

Page 23: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

23

n=2; while (n<=k) & (abs(a)>=eps) a=-2/(n+1)*a; suma=suma+a; n=n+1; end if abs(a)<eps fprintf( 'Za n=%d dostignuta je tacnost suma = %f\n', n-1, suma); else fprintf( 'Za k=%d nije dostignuta tacnost suma = %f\n', k, suma); end

b) Rešenje sa for petljom i sa break naredbom % Izracunavanje sume – resenje sa for i break clc; k=input('Maksimalni broj sabiraka? '); eps=input('Kolika je tacnost? '); x=input('Koliko je x? '); a=-abs(sin(x)*exp(x)); suma=a; for n=2:k if abs(a)>=eps a=-2/(n+1)*a; suma=suma+a; else break; end end if abs(a)<eps fprintf( 'Za n=%d dostignuta je tacnost suma = %f\n', n-1, suma); else fprintf( 'Za k=%d nije dostignuta tacnost suma = %f\n', k, suma); end

Rezultat:

Maksimalni broj sabiraka? 5

Page 24: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

24

Kolika je tacnost? 0.1 Koliko je x? 1.5 Za k=5 nije dostignuta tacnost suma = -2.582934

21. (Linearna interpolacija) Korišćenjem vrednost datih u tabeli

odredimo aproksimaciju sledećeg oblika:

( )itii

iiit xx

xxyyyxy -

--

+=+

+

1

1)(

gde je 1+ŁŁ iti xxx . (Napomena: Za unos tx koristiti naredbu input) Rešenje:

x=0:0.5:3.0; y=[0 0.125 1.0 3.375 8 15.63 27]; xt=input('Unesite xt:'); for i=1:length(x)-1 if xt>=x(i) & xt<x(i+1) yt=y(i)+(y(i+1)-y(i))/(x(i+1)-x(i))*(xt-x(i)); end end; disp(['yt=' num2str(yt)]); plot(x,y,'b',x,y,'r+'); hold on; plot(xt,yt,'go'); line([xt xt],[0 yt],'LineStyle','--','Color',[0.4,0.4,0.4]); line([0 xt],[yt yt],'LineStyle','--','Color',[0.4,0.4,0.4]); hold off; text(xt,yt,sprintf(' (%.2f,%.2f)',xt,yt)); title('Linearna interpolacija'); xlabel('x'); ylabel('y');

x 0 0.5 1 1.5 2 2.5 3

y 0 0.125 1 3.375 8 15.63 27

Page 25: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

25

Rezultat: Unesite xt:2.1 yt=9.526

0 0.5 1 1.5 2 2.5 30

5

10

15

20

25

30

(2.10,9.53)

Linearna interpolacija

x

y

Slika 10.

22. Napraviti MATLAB funkciju koren za izračunavanje kubnog korena realnog broja x primenom Njutnove iterativne metode koja glasi

÷÷ř

öççč

ć+= -

-12

1

231

nn

n yyxy ,

îíě

=111

0 xxx

y

Iteracija traje sve dok je nn yy <=-1 ili dok se ne dostigne maksimalni broj iteracija Nmax=300. Uporediti dobijeni rezultat sa x^(1/3). Rešenje: function y=koren(x) Nmax=300; if x<=1 y=1; else y=x; end for i=0:Nmax r=y;

Page 26: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

26

y=(2*y+x/y^2)/3; if(r<=y) break, end end >> koren(23.45) ans = 2.8623 >> 23.45^(1/3) ans = 2.8623 23. Za aproksimativno izračunavanje realne nule funkcije )(xfy = na intervalu [ ]ba, može da se koristi sledeći iterativni postupak (metoda bisekcije). Nalazimo ocenu

2bax +

= , da bi ukoliko je 0)(*)( >bfxf , postavili da je xb = , dok u suprotnom

xa = . Postupak se ponavlja sve dok je e>- ba . Koren funkcije vraćamo kao 2

ba + .

Napraviti MATLAB funkciju koja nalazi nulu funkcije na zadatom intervalu. Primenom

MATLAB funkcije naći nulu funkcije ( ) ( )1sin21 2 -= xxf , na intervalu od -1 do 0.

( 00001.0=e ). Rešenje:

function y=nula(fun,a,b,eps) if nargin < 4

eps=0.0001; end while abs(b-a)>eps x=(a+b)/2; if(feval(fun,x)* feval(fun,b)>0) b=x; else a=x; end end y=(a+b)/2;

Page 27: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

27

function y = g( x ) y=(asin(2*x+1)-x*x); >> nula('g',-1,0) ans = -0.4145

24. Za aproksimativno izračunavanje realne nule funkcije )(xfy = na intervalu [ ]ba, može da se koristi sledeći iterativni postupak (metoda tetive). Nalazimo ocenu

2bax +

= , da bi ukoliko je 0)(*)( >bfxf , postavili da je xb = , dok u suprotnom

xa = . Postupak se ponavlja sve dok je e>- ba . Koren funkcije vraćamo kao 2

ba + .

Napraviti MATLAB funkciju koja nalazi nulu funkcije na zadatom intervalu. Primenom

MATLAB funkcije naći nulu funkcije ( ) ( )1sin21 2 -= xxf , na intervalu od -1 do 0.

( 00001.0=e ). 25. Napraviti MATLAB funkciju simpson koja primenom I Simpsonove metode izračunava određeni integral za prosleđenu funkciju na intervalu od a do b. Neka je interval [ ]ba, ekvidistantom h podeljen na N-1 jednakih delova. Na taj način dobili smo tačke x1=a, x2=x0+h, x3=x0+2h,..., xN=b=x0+(N-1)h. Neka su yi (i=1,2,3,...,N) vrednosti funkcije f(x) u tim tačkama. Simpsonova metoda glasi

( ) ( )ň

+++++++= --

b

a

NNN yyyyyyyhdxxf

342...424 124321

MATLAB funkciji simpson pored podintegralne funkcije, donje i gornje granice intervala integracije proslediti i neparan broj tačaka N. Ekvidistanta h je jednaka

)1/()( --= Nabh .

a) Primenom gornje funkcije izračunati integral dxxň +

2

02 11

, pri čemu će

podintegralna funkcija biti realizovana kao MATLAB funkcija. Uporediti dobijeni rezultat sa rezultatom dobijenim ugrađenom MATLAB funkcijom quad.

Rešenje:

function val=simpson(fun,a,b,N)

Page 28: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

28

if ~mod(N,2) error('N mora da bude je neparan broj!'); end h=(b-a)/(N-1); x=[a:h:b] y=fun(x); val=h*(y(1)+y(N)+4*sum(y(2:2:N-1))+2*sum(y(3:2:N-1)))/3;

function y=f(x) y=1./(x.^2+1); >> simpson('f',0,2,11) ans = 1.1071 >> quad('f',0,2) ans = 1.1071

26. Za aproksimativno određivanje partikularnog rešenja obične diferencijalne jednačine prvog reda ),(' yxfy = , uz početni uslov y(x0)= y0 koristi se i rekurentna formula Runge-Kutta trećeg reda

( )

( )

÷řö

çčć ++=

÷řö

çčć ++=

=

++=

--

--

--

-

2113

1112

111

311

32,

32

31,

31

,

341

KyhxhfK

KyhxhfK

yxhfK

KKyy

ii

ii

ii

ii

koja daje niz aproksimativnih vrednosti ordinata yi za apcise xi = xi-1+h, gde je h odabrana vrednost koraka. Napraviti MATLAB funkciju rungekutta koja za prosleđene vrednosti početnih uslova x0 i y0, funkciju f(x,y), korak h i broj koraka n nalazi rešenje diferencijalne jendačine. Primenom gornje funkcije naći rešenje diferencijalne jednačine yxy /1' += za početne uslove x0=0, y0=1.0, h=0.1, n=100. Korišćenjem naredbe plot nacrtati dobijeno rešenje.

Page 29: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

29

Na istom grafikonu nacrtati i rešenje dobijeno ugrađenom MATLAB funkcijom ode45. Rešenje: function y_prim=f1(x,y) y_prim=x+1/y; function [x,y]=rungekutta(x0,y0,fun,h,n) % inicijalizacija x=zeros(n,1);; y=zeros(n,1); y(1)=y0; for i=2:n x(i)=x(i-1)+h; K1=h*fun(x(i-1),y(i-1)); K2=h*fun(x(i-1)+1/3*h,y(i-1)+1/3*K1); K3=h*fun(x(i-1)+2/3*h,y(i-1)+2/3*K2); y(i)=y(i-1)+1/4*(K1+3*K3); end >> [x,y]=rungekutta(0.0,1.0,@f1,0.1,100); >> plot(x,y,'xr'); >> ode45(@f1,[0 10],1.0);

Slika 11.

27. Za aproksimativno određivanje partikularnog rešenja obične diferencijalne jednačine prvog reda ),(' yxfy = , uz početni uslov y(x0)= y0 koristi se i rekurentna formula Runge-Kutta četvrtog reda

Page 30: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

30

( )

( )

( )3114

2113

1112

111

43211

,21,

21

21,

21

,

2261

KyhxhfK

KyhxhfK

KyhxhfK

yxhfK

KKKKyy

ii

ii

ii

ii

ii

++=

÷řö

çčć ++=

÷řö

çčć ++=

=

++++=

--

--

--

--

-

koja daje niz aproksimativnih vrednosti ordinata yi za apcise xi = xi-1+h, gde je h odabrana vrednost koraka. Napraviti MATLAB funkciju rk4 koja za prosleđene vrednosti početnih uslova y0, funkciju f(x,y), interval [a, b], korak h nalazi rešenje diferencijalne jednačine. Primenom gornje funkcije naći rešenje diferencijalne jednačine 332 2' --= xyy za početne uslove y0=0, a=0, b=2, h=0.1. Korišćenjem naredbe plot nacrtati dobijeno rešenje. Rešenje: function [x,y]=rk4(y0,fun,intr,h) % inicijalizacija a=intr(1); b=intr(2); n=(b-a)/h+1; x=zeros(n,1); y=zeros(n,1); x(1)=a; y(1)=y0; for i=2:n x(i)=x(i-1)+h; K1=h*fun(x(i-1),y(i-1)); K2=h*fun(x(i-1)+1/2*h,y(i-1)+1/2*K1); K3=h*fun(x(i-1)+1/2*h,y(i-1)+1/2*K2); K4=h*fun(x(i-1)+h,y(i-1)+K3); y(i)=y(i-1)+1/6*(K1+2*K2+2*K3+K4); end >> y_prim=inline('2*y-2*x^2-3','x','y') y_prim =

Page 31: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

31

Inline function: y_prim(x,y) = 2*y-2*x^2-3 >> [x,y]=rk4(0,y_prim,[0 2],0.1); >> plot(x,y); >> xlim([0 2]);

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-120

-100

-80

-60

-40

-20

0

Slika 12.

28. Napraviti MATLAB funkciju integ koja primenom datog algoritma izračunava određeni integral za prosleđenu funkciju na intervalu od a do b. Algoritam za izračunavanje integrala dat je na sledeći način

( ) ( ) ÷÷ř

öççč

ć+++++

+++++++== ňň

+

)6(41)5(216)4(27)3(272)2(27)(216)(41

8406

hafhafhafhafhafhafafhdxxfdxxf

nha

a

b

a

gde je 6

)( abh -= .

MATLAB funkciji integ pored podintegralne funkcije proslediti i donju i gornju granicu intervala integracije.

Primenom gornje funkcije izračunati integral ( ) dxxexxxe xx

ň-+-1

0 21coscossin .

Uporediti dobijeni rezultat sa rezultatom dobijenim ugrađenom MATLAB funkcijom quad.

Prikazati površinu funkcije korišćenjem ugrađene MATLAB funkcije area. Rešenje: function val=integ(fun,intr)

Page 32: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

32

a=intr(1); b=intr(2); h=(b-a)/6; c=[41 216 27 272 27 216 41]; x=[a:h:b]; y=fun(x); val=6*h*sum(c*y')/840; >> f=@(x)(x.*exp(x).*(sin(x)-cos(x))+exp(x).*cos(x)-1)/2; >> integ (f,[0 1]) ans = 0.1437 >> quad (fp, 0, 1) ans = 0.1437 >> area(x,f(x)); >> text(0.8,0.1,sprintf('P=%.2f',integ(f,[0 1])),'Color',[1,1,1])

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

P=0.14

Slika 13. 29. Napraviti MATLAB funkciju euler za rešavanje diferencijalne jednačine prvog reda

( )yxfy ,'= na segmentu [ ]ba, , sa početnim uslovom ( ) 00 yxy = ( )ax =0 i korakom h primenom sledećeg algoritma

( )iiii yxhfyy ,1 +=+ , hxx ii +=+1 , ni ,...,1=

Page 33: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

33

Korak dobijamo korišćenjem sledećeg izraza ( ) nabh /-= , gde je n broj intervala.

Takođe, napraviti MATLAB skript datoteku u kojoj primenom gornje funkcije rešavamo diferencijalnu jednačinu 321' xyy ++= za 00 =y , 0=a , 1=b i h 1.0= . Ugrađenom MATLAB funkcijom plot na istom dijagramu nacrtati dobijeno rešenje za y (označiti ose i dati naziv dijagramu) Rešenje: function [x,y]=euler(fun,y0,a,b,h) x=a:h:b; y=zeros(size(x)); y(1)=y0; for i=1:length(x)-1 y(i+1)=y(i)+h*feval(fun,x(i),y(i)); end f1=@(x,y)(1+y.^2+x.^3); [x,y]=euler(f,0,0,1,0.1); plot(x,y); xlabel(‘x’); ylabel(‘y’);

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

x

y

30. Napraviti MATLAB funkciju euler2 za rešavanje diferencijalne jednačine drugog reda ( )',,'' yyxfy = na segmentu [ ]ba, , sa početnim uslovom ( ) 00 yxy = , ( ) 000 '' pyxy == ( )ax =0 i korakom h primenom sledećeg algoritma

Page 34: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

34

iii hpyy +=+1 , ( )iiiii pyxhfpp ,,1 +=+ ,

hxx ii +=+1 , ni ,...,1,0=

Takođe, napraviti MATLAB skript datoteku u kojoj primenom gornje funkcije rešavamo diferencijalnu jednačinu 032'3'' =--+- xyyy za 20 =y , 20 =p , 0=a , 2=b i

1.0=h . Ugrađenom MATLAB funkcijom plot na istom dijagramu nacrtati dobijena rešenja za y i 'y (označiti ose i dati naziv dijagramu). Takođe na istom dijagramu nacrtati i analitičko rešenje diferencijalne jednačine xx eexy 32 +-= . Rešenje:

function [x,y,p]=euler2(fun,a,b,y0,p0,h) x=a:h:b; y=zeros(size(x)); p=zeros(size(x)); y(1)=y0; p(1)=p0; for i=1:length(x)-1 y(i+1)=y(i)+h*p(i); p(i+1)=p(i)+h*feval(fun,x(i),y(i),p(i)); end function pp=ffn(x,y,p) pp = 3*p-2*y+2*x-3;

[x,y,p]=euler2('ffn',0,2,2,2,0.1); plot(x,y,x,p,x,x-exp(2*x)+3*exp(x));

Page 35: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

35

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-60

-50

-40

-30

-20

-10

0

10

x

y(x)

31. Napraviti MATLAB funkciju koren koja treba da izračuna koren funkcije f(x) sa početnim tačkama x1 i x2, prema sledećem algoritmu

)()()( 1

11 n

nn

nnnn xf

xfxfxx

xx-

-+ -

--=

Izračunavanje korena funkcije obaviti u 30 iteracija i ukoliko je tačnost zadovoljena eŁ+ )( 1nxf , onda štampati rezultat ( ))(, 11 ++ nn xfx , a ako tačnost nije zadovoljena

štampati poruku o grešci “Koren nije dobijen!”.

a) Primenom gornjeg algoritma naći nule funkcije xxexf x 10ln)( -+= (x1=3, x2=4). Tačnost 310-=e .

b) Primenom gornjeg algoritma naći nule funkcije 12)( 23 +--= xxxxf (x1=0,

x2=1). Tačnost 7103 -×=e .

Rešenje:

function val=koren1(fun,x1,x2,eps) N=30; if nargin < 3 eps=1e-3; end

Page 36: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

36

x=zeros(1,N); x(1)=x1; x(2)=x2; nasao=0; for i=2:N-1 x(i+1)=x(i)-(x(i)-x(i-1))/(fun(x(i))-fun(x(i-1)))*fun(x(i)); if abs(fun(x(i+1)))<=eps val=x(i+1); nasao=1; break; end end if ~nasao error('Koren nije dobijen!'); end

a)

>> f2=@(x)(exp(x)+log(x)-10*x); >> koren1(f2,3,4); ans = 3.5265

b)

>> f2=@(x)(x^3-x^2-2*x+1); >> koren1(f2,0,1,3E-7) ans = 3.5265

Page 37: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

37

32. Napraviti MATLAB funkciju koja primenom datog algoritma izračunava određeni integral za prosleđenu funkciju na intervalu od a do b. Algoritam za izračunavanje integrala dat je kao

( ) ( )( ) ( )[ ]÷řö

çčć ĺ ++-++-++ň =

-

=

1

122124)(4)()(

3m

k

b

akhafhkafhbfbfafhdxxf

gde je m

abh2

)( -= , a 2m broj intervala integracije.

MATLAB funkciji pored podintegralne funkcije proslediti donju i gornju granicu intervala integracije, kao i m.

Gornjom funkcijom izračunati integral funkcije ďî

ďí

ě

>-ŁŁ--

-<--=

1za,111za,1

1za,1)( 2

xxxx

xxxf , pri čemu

je a=-2, b=2, m=10. Rešenje:

function val=simps(fun,a,b,m) h=(b-a)/(2*m); x=[a:h:b]; y=feval(fun,x); k=1:m-1; val=h*(feval(fun,a)+feval(fun,b)+4*feval(fun,b-h)+sum(4*feval(fun,a+(2*k-1)*h)+2*feval(fun,a+2*k*h)))/3; function y=f(x) if x<-1 y=-x-1; elseif x>=-1 & x<=1 y=1-x.^2; else y=x-1; end >> val=simps(@f,-2,2,10); >> disp(val);

Page 38: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

38

3. Control System Toolbox (CST) 1. Za uneti sistem ispitati stabilnost u otvorenoj sprezi. Rešenje: function stabilnost1 disp('Uneste brojilac:'); brojilac=input(''); disp('Uneste imenilac:'); imenilac=input(''); % Stabilnost polovi=roots(imenilac); if(max(real(polovi))>0) disp('Sistem je nestabilan u otvorenoj spezi.'); elseif(max(real(polovi))==0) disp('Sistem je kriticno stabilan u otvorenoj spezi.'); else disp('Sistem je stabilan u otvorenoj spezi.'); end 2. Za uneti sistem ispitati stabilnost u otvorenoj sprezi, utvrditi broj nestabilnih polova i prikazati Nikvistov dijagram. Rešenje: function nikvist1 disp('Uneste brojilac:'); brojilac=input(''); disp('Uneste imenilac:'); imenilac=input(''); % Stabilnost u otvorenoj sprezi polovi=roots(imenilac); if(max(real(polovi))>0) disp('Sistem je nestabilan u otvorenoj spezi.'); P=0; for i=1:size(polovi) if real(polovi)>0 P=P+1; end end elseif(max(real(polovi))==0) disp('Sistem je kriticno stabilan u otvorenoj spezi.'); P=0; else disp('Sistem je stabilan u otvorenoj spezi.');

Page 39: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

39

P=0; end disp(['P=' num2str(P)]); % Nikvistov dijagram omega=[0:0.1:100]; [re im]=nyquist(brojilac,imenilac,omega); plot(re,im); title('Nikvistov kriterijum'); xlabel('Realna osa'); ylabel('Imaginarna osa'); grid; hold on; plot(-1,0,'r+'); 3. Za uneti sistem prikazati prelaznu i težinsku funkciju. Rešenje: function odziv1 disp('Uneste brojilac:'); brojilac=input(''); disp('Uneste imenilac:'); imenilac=input(''); t=linspace(0,10); subplot(2,1,1); y1=step(brojilac,imenilac,t); plot(t,y1); title('Prelazna funkcija'); xlabel('Vreme, t') ylabel('Odziv, y') grid; subplot(2,1,2); y2=impulse(brojilac,imenilac,t); plot(t,y2); title('Tezinska funkcija'); xlabel('Vreme, t') ylabel('Odziv, y') grid; 4. Nacrtati frekfencijske karakteristike unetog sistema korićenjem CST funkcije nyquist.

Page 40: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

40

Rešenje: function nyquist2 disp('Uneste brojilac:'); brojilac=input(''); disp('Uneste imenilac:'); imenilac=input(''); % Nikvistov dijagram omega=[0:0.01:100]; [re im]=nyquist(brojilac,imenilac,omega); subplot(2,2,1); plot(omega,sqrt(re.^2+im.^2)); title('Amplitudska karakteristika'); ylabel('A(\omega)'); xlabel('\omega [rad/s]'),; grid; subplot(2,2,2); plot(omega,atan2(im,re)); title('Fazna karakteristika'); ylabel('\phi(\omega) [rad]'); xlabel('\omega [rad/s]'); grid; subplot(2,2,3); semilogx(omega,20*log(sqrt(re.^2+im.^2))); title('Logaritamsko-amplitudska karakteristika'); ylabel('L(\omega) [dB]'); xlabel('log \omega'); grid; subplot(2,2,4); semilogx(omega,atan2(im,re)); title('Logaritamsko-fazna karakteristika'); ylabel('\phi(\omega) [rad]'); xlabel('log \omega'); grid;

15.05)(+

=s

sW

Uneste brojilac: 5 Uneste imenilac: [0.5 1]

Page 41: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

41

0 50 1000

2

4

6Amplitudska karakteristika

A( w

)

w [rad/s]0 50 100

-2

-1.5

-1

-0.5

0Fazna karakteristika

f(w

) [ra

d]

w [rad/s]

10-2 100 102-50

0

50Logaritamsko-amplitudska karakteristika

L(w

) [dB

]

log w10-2 100 102

-2

-1.5

-1

-0.5

0Logaritamsko-fazna karakteristika

f(w

) [ra

d]

log w Slika 1.

5. Naći ekvivalentnu funkciju prenosa sistema opisanog blok dijagramom prikazanim na slici

G1

G2 G3 G4

H1 H2

++++ C+

Rešenje: function primer5 disp('Unesite brojilac G1') numG1=input(''); disp('Unesite imenilac G1') denumG1=input(''); disp('Unesite brojilac G2') numG2=input(''); disp('Unesite imenilac G2') denumG2=input('');

R

_

Page 42: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

42

disp('Unesite brojilac G3') numG3=input(''); disp('Unesite imenilac G3') denumG3=input(''); disp('Unesite brojilac G4') numG4=input(''); disp('Unesite imenilac G4') denumG4=input(''); disp('Unesite brojilac H1') numH1=input(''); disp('Unesite imenilac H1') denumH1=input(''); disp('Unesite brojilac H2') numH2=input(''); disp('Unesite imenilac H2') denumH2=input(''); G1=tf(numG1,denumG1); G2=tf(numG2,denumG2); G3=tf(numG3,denumG3); G4=tf(numG4,denumG4); H1=tf(numH1,denumH1); H2=tf(numH2,denumH2); W1=parallel(G1,G2); W2=parallel(G4,1); G=series(W1,W2); H=series(H1,H2); W=feedback(G,H,-1) 6. Ispitati stabilnost unetog sistema jediničnoj negativnoj povratnoj sprezi. Rešenje: function stabilnost3 disp('Uneste brojilac:'); brojilac=input(''); disp('Uneste imenilac:'); imenilac=input(''); G=tf(brojilac, imenilac); W=feedback(G,1); [num,den]=tfdata(W,'v')

Page 43: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

43

polovi=roots(den); if(max(real(polovi))>0) disp('Sistem je nestabilan u povratnoj spezi.'); elseif(max(real(polovi))==0) disp('Sistem je kriticno stabilan u povratnoj spezi.'); else disp('Sistem je stabilan u povratnoj spezi.'); end 7. Napisati neku funkciju prenosa sistema korišćenjem kompleksne promenljive s. Rešenje: >> s=tf('s') Transfer function: s >> W=(s+1)/(s^2+15*s+3) Transfer function: s + 1 -------------- s^2 + 15 s + 3 7. Naći funkciju prenosa sistema prikazanog na slici

Takođe, naći prelaznu i težinsku funkciju dobijenog sistema. Rešenje: function odziv3 K=input('K='); G1=zpk([-2 -5],[-1 -3 4],1); G2=tf(K,[1 8]); H=zpk(-5,-7,1); G=G1*G2; W=feedback(G,H) step(W); pause; impulse(W);

_ R C

8K

s +

)4)(3)(1()5)(2(-++

++sss

ss

57

ss+

+

Page 44: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

44

K= 3 Zero/pole/gain: 3 (s+7) (s+5) (s+2) ----------------------------------------------------- (s-3.67) (s+2.957) (s+0.8727) (s^2 + 14.84s + 55.11)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.70

0.2

0.4

0.6

0.8

1

1.2

1.4Step Response

Time (sec)

Ampl

itude

Slika 2.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.70

1

2

3

4

5

6Impulse Response

Time (sec)

Ampl

itude

Slika 3.

8. Korišćenjem MATLAB funkcije ss formirati model u prostoru stanja. Rešenje: function prostorstanja1

Page 45: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

45

A=input('A='); B=input('B='); C=input('C='); D=input('D='); dimA=size(A); dimB=size(B); dimC=size(C); dimD=size(D); if dimA(1)~=dimB(1) error('Greska, dimA(1)~=dimB(1)!'); elseif dimC(1)~=dimD(1) error('Greska, dimC(1)~=dimD(1)!'); elseif dimC(2)~=dimA(2) error('Greska, dimC(2)~=dimA(2)!'); end sys=ss(A,B,C,D) 9. Korišćenjem MATLAB funkcije ss formirati model u prostoru stanja. Prikazati dobijeni model u obliku funkcije prenosa i ZPK. Rešenje: function prostorstanja2 A=input('A='); B=input('B='); C=input('C='); D=input('D='); dimA=size(A); dimB=size(B); dimC=size(C); dimD=size(D); if dimA(1)~=dimB(1) error('Greska, dimA(1)~=dimB(1)!'); elseif dimC(1)~=dimD(1) error('Greska, dimC(1)~=dimD(1)!'); elseif dimC(2)~=dimA(2) error('Greska, dimC(2)~=dimA(2)!'); end disp('Model u prostoru stanja') ; sys=ss(A,B,C,D) disp('Funkcija prenosa') ; ss2tf(A,B,C,D) disp('ZPK') ss2zpk(A,B,C,D)

Page 46: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

46

10. Ispitati kontolabilnost i opservabilnost sistema čiji je model u prostoru stanja

5 1 3 1

( ) 0 4 1 ( ) 0 ( )

2 8 0 2

x t x t u t= +é ů é ůę ú ę úę ú ę úę ú ę úë ű ë ű

&

[ ]( ) 7 0 5 ( ) 2 ( )y t x t u t= + Rešenje: function prostorstanja3 A=[5 1 3;0 4 1;2 8 0]; B=[1 0 2] '; C=[7 0 5]; D=2; if rank(ctrb(A,B))==size(A,1) disp('Sistem je potpuno kontrolabilan!'); else disp('Sistem nije kontrolabilan po svim stanjima!'); end if rank(obsv(A,C))==size(A,1) disp('Sistem je potpuno observabilan!'); else disp('Sistem nije observabilan po svim stanjima!'); end 11. Za sistem čiji je model u prostoru stanja

( ) ( ) ( )

( ) [ ] ( )

2 1 0

0 2 1

5 0

x t x t u t

y t x t

-= +

-

=

é ů é ůę ú ę úë ű ë ű

&

naći izlaz iz sistema, za početne vrednosti vektora stanja ( ) ( )1 20 0 1x x= = i ulazni signal tetu 2)( -= . Nakon toga, gornji sistem posmatrati kao autonoman (homogen). Prikazati

odziv sistema u oba slučaja. Rešenje: function prostorstanja4 A=[-2 1;0 -2]; B=[0 1]'; C=[5 0]; D=0; x0=[1 1]';

Page 47: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

47

t=linspace(0,5); u=exp(-2*t); [y,x] = lsim(A,B,C,D,u,t,x0); plot(t,x); legend('x_1','x_2','Location','NorthEast'); title('Promenljive stanja nehomogenog sistema'); xlabel('Vreme [s]'); ylabel('x_1(t), x_2(t)'); pause; plot(x(:,1),x(:,2)); title('Kretanje sistema u prostoru stanja'); xlabel('x_1(t)'); ylabel('x_2(t)'); pause; plot(t,y); title('Odziv nehomogenog sistema'); xlabel('Vreme [s]'); ylabel('y(t)'); pause; [y,t,x]=initial(ss(A,B,C,D),x0); plot(t,x); legend('x_1','x_2','Location','NorthEast'); title('Promenljive stanja homogenog sistema'); xlabel('Vreme [s]'); ylabel('x_1(t), x_2(t)'); pause; plot(x(:,1),x(:,2)); title('Kretanje sistema u prostoru stanja'); xlabel('x_1(t)'); ylabel('x_2(t)'); pause; plot(t,y); title('Odziv homogenog sistema'); xlabel('Vreme [s]'); ylabel('y(t)'); 12. U SIMULINK-u nacrtati simulacioni blok dijagram sistema opisanog linearnom diferencijanom jednačinom

)(10)()(2)(5)( tutytytyty =+++ &&&&&&

i naći odziv sistema kada je ulazni signal u(t) jedinična odskočna funkcija.

Page 48: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

48

Rešenje:

Slika 4.

Slika 5. 13. U SIMULINK-u nacrtati simulacioni blok dijagram nelinearnog sistema opisanog diferencijalnom jednačinom

)()()()()( tutytytyty =++ &&&&

i naći odziv sistema kada je ulazni signal u(t) sinusna funkcija. Rešenje:

Page 49: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

49

Slika 6.

Slika 7. 14. U SIMULINK-u nacrtati simulacioni blok dijagram sistema linearnih diferencijanih jednačina

)()(2)(4)(3)( 21211 tututytyty &&&& +=++

)(5)(7)( 222 tutyty =+&

i naći odziv sistema kada je ulazni signal u1(t)=sin2t i u2(t)=sin(2t-p/4). Rešenje:

Page 50: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

50

Slika 8.

Slika 9. y1(t)

Slika 10. y2(t)

Page 51: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

51

Slika 11.

15. Simulirati ponašanje sistema opisanog funkcijom prenosa 143

32)( 23

2

+++++

=sss

sssG

kada se na ulaz dovede jedinična odskočna funkcija. Naći rešenje primenom bloka funkcije prenosa i crtanjem simulacionog blok dijagrama sistema, pri čemu je blok dijagram potrebno realizovati korišćenjem bloka podsistema.

Rešenje:

Slika 12.

Diferencijalna jednačina sistema G(s) glasi uuuyyyy 3243 ++=+++ &&&&&&&&& , transformacijom dobijamo

( ) úű

ůęë

é÷řö

çčć +-++-++-= uy

suy

suy

sy 3124131&

odakle formiramo sledeći blok dijagram

Page 52: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

52

Slika 13.

Slika 14.

Page 53: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

53

16. Simulirati ponašanje sistema opisanog modelom u prostoru stanja

)(102

)(100

102101

)( tutxtxúúú

ű

ů

ęęę

ë

é+

úúú

ű

ů

ęęę

ë

é-=&

[ ] )(201)( txty -=

kada se na ulaz dovede Dirakov impuls funkcija. Početni vektor stanja glasi [ ]101)0( -=x T. Naći rešenje primenom bloka modela u prostoru stanja.

Rešenje:

Slika 14.

Slika 15.

17. Za sistem prikazan na slici odrediti trajektoriju u ravni (x1, x2)

1/s 1/s U

-U _

u x2 x1 e Sistem

Page 54: RAČUNSKE VEŽBE - Saobraćajni fakultet - Osnovne … ·  · 2012-05-15(Linearna regresija) Korišćenjem vrednost datih u tabeli odredimo aproksimaciju sledećeg oblika: y=a1+a2x

Praktikum iz Teorije sistema - Računske vežbe

54

za početni vektor stanja x1(0)=1, x2(0)=0.

Rešenje:

Slika 16.

Slika 17.