28
Sadržaj 1 UVOD.............................................................. 2 2 STRUKTURE PODATAKA U MATLAB-U.....................................3 3 GRAFIČKI PRIKAZ REZULTATA.........................................6 4 MATRICE........................................................... 7 4.1 UNOŠENJE MATRICA.................................................8 4.2 ELEMENTI MATRICE.................................................8 4.3 MANIPULACIJA VEKTORIMA I MATRICAMA.................................10 4.4 NAREDBE I PROMENJLJIVE MATLAB-A...................................14 4.5 OPERACIJE SA MATRICAMA...........................................15 4.5.1 Transponovanje............................................................................................................... 15 4.5.2 Sabiranje i oduzimanje................................................................................................... 16 4.5.3 Množenje matrica........................................................................................................... 17 4.5.4 Deljenje matrica.............................................................................................................. 17 4.5.5 Stepenovanje matrica..................................................................................................... 17 5 KVADRATNE JEDNAČINE..............................................17 6 ZAKLJUČAK........................................................ 21 7 Literatura....................................................... 22 1

Računarski alati MATLAB

  • Upload
    bato83

  • View
    148

  • Download
    6

Embed Size (px)

DESCRIPTION

seminarski Mat lab

Citation preview

Page 1: Računarski alati MATLAB

Sadržaj

1 UVOD.....................................................................................................................................................2

2 STRUKTURE PODATAKA U MATLAB-U.....................................................................................3

3 GRAFIČKI PRIKAZ REZULTATA..................................................................................................6

4 MATRICE.............................................................................................................................................7

4.1 UNOŠENJE MATRICA......................................................................................................................8

4.2 ELEMENTI MATRICE.......................................................................................................................8

4.3 MANIPULACIJA VEKTORIMA I MATRICAMA.................................................................................10

4.4 NAREDBE I PROMENJLJIVE MATLAB-A........................................................................................14

4.5 OPERACIJE SA MATRICAMA.........................................................................................................15

4.5.1 Transponovanje......................................................................................................................15

4.5.2 Sabiranje i oduzimanje...........................................................................................................16

4.5.3 Množenje matrica...................................................................................................................17

4.5.4 Deljenje matrica.....................................................................................................................17

4.5.5 Stepenovanje matrica.............................................................................................................17

5 KVADRATNE JEDNAČINE............................................................................................................17

6 ZAKLJUČAK.....................................................................................................................................21

7 Literatura...............................................................................................................................................22

1

Page 2: Računarski alati MATLAB

1 Uvod

Programski paket Matlab (MATrix LABoratory) je matematičko i simulaciono okruženje

koje omogućava matematičke proračune, razvijanje algoritama, simuliranje i analizu

procesa, obradu podataka, vizuelizaciju, a sve to kroz interaktivan i programski rad.

Interaktivan rad se postiže zadavanjem naredbi iz komandnog prozora (Command

Window). Na taj način se naredbe izvršavaju odmah nakon pritiska ENTER tastera.

Prethodne naredbe se mogu naći u okviru prozora za istoriju naredbi (Command History),

ili pritiskom na strelicu na gore (↑). U cilju ubrzavanja pretrage, moguće je otkucati

pocetna slova tražene naredbe. U okviru Matlab-a, postoje brojne ugrađenje funkcije,

koje se, na osnovu namene, mogu grupisati u određene klase, koje se nazivaju Toolbox-

ovi (Signal Processing, Control Systems, Filter Design...). Sa druge strane ostavljena je

mogućnost pisanja sopstvenih programa i funkcija, koji se mogu kreirati iz programskih

Editor-a. Takve funkcije se mogu pozivati iz komandnog prozora ili iz nekog drugog

programa, koji se moga nalaziti u okviru istog radnog foldera, path-a. Matlab nudi i

mogućnost koričćenja help-a, koji osim definicija samih naredbi sadrži i primere kako se

one mogu korisiti. Na slici je prikazano radno okruženje Matlaba, koje se najčešće sastoji

iz komandnog prozora, istorije naredbi, trenutnog direktorijuma, kao i radnog prostora, tj

Workspace-a.

2

Page 3: Računarski alati MATLAB

2 Strukture podataka u Matlab-u

U Matlab-u su sve promenljive date preko matrica. Na taj način se mogu prikazati i realni

i kompleksni brojevi, i skalari i vektori i visedimenzione matrice. Za posebne upotrebe

preko matrica je moguće zadati i stringove i polinome. Skalari se definisu kao matrice

1x1, jednostavnim zadavanjem vrednosti promenljive:

>> a=2;

dok se vektori (matrice) zadaju korišćenjem uglastih zagrada, gde se kolone razdvajaju

razmakom, a znak “;” označava kraj jedne vrste i početak nove.

>> B=[1 2;3 4]

B =

1 2

3 4

>> C=[5 6]

C =

5 6

Ukoliko se posle naredbe ne stavi znak “;” rezultat naredbe se ispisuje u komandnom

prozoru, kao što je slučaj u prethodna dva primera. Dok u primeru za definisanje

promenljive a nije došlo do ispisivanja rezultata. Vektor kolona se može zadati na dva

načina. Jedan je navodjenjem elemenata koji su razdvojeni sa “;”, a drugi da se formira

vektor vrsta i korišćenjem znaka za transponovanje “ ’ ” (apostrof).

3

Page 4: Računarski alati MATLAB

U okviru Matlab-a moguće je izvršiti predled odredjene zadate promenljive naredbom

whos:

>> whos B

Name Size Bytes Class Attributes

B 2x2 32 double

Ili svih zadatih promenljivih

>> whos

Name Size Bytes Class Attributes

B 2x2 32 double

C 1x2 16 double

a 1x1 8 double

Matrice se mogu iskoristiti i za definisanje stringova.

>> recenica='Uvod u Matlab'

recenica =

Uvod u Matlab

>> whos recenica

Name Size Bytes Class Attributes

recenica 1x13 26 char

U Matlab-u je takodje moguće zadati i kompleksne brojeve, kao i neke predefinisane

vrednosti, npr.

>> b=3i+1

b =

1.0000 + 3.0000i

>> c=pi*2/3

c =

2.0944

4

Page 5: Računarski alati MATLAB

Pojedinim elementrima matrice se može pristupati, navodjenjem pozicije elementa u

malim zadradama.

>> C(2)

ans =

6

>> B(2,1)

ans =

3

Takodje, u okviru Matlab-a je vrlo značajno korišćenje znaka “:”. Na taj način se može

odabrati deo neke vrste/kolone, ili pak cela kolona:

>> D=[1 2 3 4;5 6 7 8];

>> D(1,2:4)

ans =

2 3 4

>> D(1,:)

ans =

1 2 3 4

>> D(:,1)

ans =

1

5

Korišćenjem istog znaka, moguće je zadati

Napomena: Indeksi počinju od 1, a ne od 0, kao u nekim programskim jezicima. Ukoliko

se u matricu dodaje element na poziciju koja prevazilazi dimenzije same matrice, vrši se

automatsko dodavanje nula u cilju prosirenja matrice.

5

Page 6: Računarski alati MATLAB

>> D(3,2)=2

D =

1 2 3 4

5 6 7 8

0 2 0 0

Pri imenovanju promenljivih imati u vidu da se pravi razlika izmedju malih i velikih

slova, kao i da postoje pojedine rezervisane reci: ans, pi, nan, inf,...

Brisanje promenljivih se postiže naredbom clear, koja se može koristiti za brisanje

određenih (clear a b) ili svih (clear ili clear all) promenljivih u radnom prostoru.

>> clear a b

>> clear all

Brisanje sadržaja komandnog prozora, obezbedjuje se naredbom clc

>> clc

3 Grafički prikaz rezultata

Matla pravi razliku izmedju prikazivanja diskretnih i kontinualnih signala. Za iscrtavanje

kontinualnih signala koritsti se naredba plot. Potrebno je napraviti finu podelu vremenske

(x) ose i definisati vrednosti signala za odgovarajuću vrednost na vremenskoj osi.

Definisaćemo najpre vreme na intervalu (−2 , 2 ) sa korakom od 0.1, a zatim formirati i𝜋 𝜋

sinusoidalni signal.

>> t=-2*pi:0.1:2*pi;

>> x=sin(t);

>> plot(t,x);

6

Page 7: Računarski alati MATLAB

Rezultat ove naredbe jeste grafik

Slika 1. Crtanje kontinualnog signala

Matlab nudi mogućnost dodatnog označavanja slike, u smislu definisanja osa (xlabel,

ylabel), ime slike (title), postavljanje mreže (grid).

4 Matrice

Matrice, kao osnovni element, sveo ostalo specijalni slučaj matrice. Nema deklaracije,

alociranja memorije.

4.1 Unošenje matrica

Unošenje matrica:

7

Page 8: Računarski alati MATLAB

• ekspilcitna lista elemenata

• generisanje matrice korišćenjem ugrađenih komandi i funkcija

• kreiranje matrica u M-datotekama

• učitavanje iz datoteka

Primeri

A=[1 2 3; 4 5 6; 7 8 9]

A = 1 2 3 4 5 6 7 8 9

A=[1 2 3 4 5 6 7 8 9]

A = 1 2 3 4 5 6 7 8 9

Ako postoji datoteka ime.m na primer gena.m koja sadrži samo red A=[1 2 3;4 5 6;7 8 9]

gena

A = 1 2 3 4 5 6 7 8 9

4.2 Elementi matrice

Element matrice može biti bilo koji validan MATLAB izraz

x=[-1.3 sqrt(3) (1+2+3)*4/5]

x = -1.3000 1.7321 4.8000

element matice se referencira pomoću indeksa (jednog ili dva) koji se piše u malim

zagradama

x(1)

ans =

-1.3000

x(1,2)

8

Page 9: Računarski alati MATLAB

ans =

1.7321

x(5)=abs(x(1))

x =

-1.3000 1.7321 4.8000 0 1.3000

zapaziti dopunjavanje sa nulama.

Sastavljanje matrica:

A=[A A]

A =

1 2 3 1 2 3

4 5 6 4 5 6

7 8 9 7 8 9

Izvlačenje podmatrice:

A=A(2:3,4:5)

A =

4 5

7 8

A=A(1,:)

A =

4 5

4.3 Manipulacija vektorima i matricama

9

Page 10: Računarski alati MATLAB

Specifičan način indeksiranja u MATLAB-u omogućava manipulaciju redovima,

kolonama, individualnim elementima, podmatricama matrica. Najinteresantnija je

maipulacija vektorima koji se generišu korišćenjem simbola ":".

Generisanje vektora

Simbol ":", je važan element u MATLAB-u. Izraz

Primer

x=1:5

Generiše vektor koji sadrži brojeve od 1 do 5 sa jediničnim inkrementom.

x =

1 2 3 4 5

y=0:pi/4:pi

y =

0 0.7854 1.5708 2.3562

3.1416

z=6:-1:1

z =

6 5 4 3 2 1

Korišćenjem ":" mogu se jednostavno kreirati i tabele. Da bi se dobila vertikalna

tabelarna forma, treba transponovati vektor dobijen sa : , izračunati kolonu vrednosti neke

funkcije i najzad formirati matricu koja sadrži dev kreirane kolone.

Primer

x=(0.0:0.2:3.0)';

y=exp(-x).*sin(x);

z=[x y]

z =

10

Page 11: Računarski alati MATLAB

0 0

0.2000 0.1627

0.4000 0.2610

0.6000 0.3099

0.8000 0.3223

1.0000 0.3096

1.2000 0.2807

1.4000 0.2430

1.6000 0.2018

1.8000 0.1610

2.0000 0.1231

2.2000 0.0896

2.4000 0.0613

2.6000 0.0383

2.8000 0.0204

3.0000 0.0070

Postoje i funkcije za automatsko generisanje vektora kao što su logspace i linspace.

Linspace(d1,d2,N) (Od d1 do d2, N (def 100) tačaka

Logspace(d1,d2,N) (Od 10^d1 do 10^d2, N (default 50) tačaka

Primer

k=linspace(-pi,pi,4)

k =

-3.1416 -1.0472 1.0472 3.1416

Subscripting (Indeksiranje)

Individualni elementi matrica mogu se referencirati korišćenjem njihovih indeksa,

uokvirenih malim zagradama. Indeksiranje počinje od 1, odnosno indeks je pozitivan ceo

11

Page 12: Računarski alati MATLAB

broj. Ako se kao indeks koristi izraz njegova vrednost se zaokružuje na najbliži pozitivan

ceo broj. Indeks može biti i vektor. Ako su x i v vektori onda je x(v)

[x(v(1)), x(v(2)), ..., x(v(n))]

Primer

x=[100 200 300 400];

v=[3 1 2];

x(v)

ans =

300 100 200

Za matrice, vektor kao indeks omogućava pristup podmatricama i njihovo generisanje.

Primer

A=1:5;

A=A'*A

A =

1 2 3 4 5

2 4 6 8 10

3 6 9 12 15

4 8 12 16 20

5 10 15 20 25

A(1:3,3)

ans =

3

6

9

A(1:3,2:5)

ans =

2 3 4 5

12

Page 13: Računarski alati MATLAB

4 6 8 10

6 9 12 15

A(:,2)

ans =

2

4

6

8

10

A(1:2,:)

ans =

1 2 3 4 5

2 4 6 8 10

Dvotačka se istovremeno može koristiti sa obe strane izraza.

Primer

B(:,[1 3 5])=A(1:2,2:4)

B =

2 0 3 0 4

4 0 6 0 8

Uopšteno, ako su v i w vektori sa celobrojnim pozitivnim elementima

Primer

v=[2 1];

w=[5 1 3];

A(v,w)

ans =

10 2 6

5 1 3

13

Page 14: Računarski alati MATLAB

v=[1.2 2];

A(v,w)

ans =

5 1 3

10 2 6

v=[10 1];

A(v,w)

??? Index exceeds matrix dimensions.

Još jedna primena dvotačke je oblika A(:). Ako se nalazi sa desne strane izraza ovo

označava sve elemente A nanizane u jednu kolonu

4.4 Naredbe i promenjljive Matlab-a

Matlab je interpreterski jezik. Interpretira i izračunava unete izraze jedan po jedan.

Najčešći oblik je:

promenljiva=izraz

ili samo izraz.

Primer

b=1+sqrt(4)-sin(pi/2)

b =

2

Ako se napiše ; (tačka-zarez) na kraju onda se na ekranu ničta ne ispisuje ali se računa.

Ovo je zgodno ako je naredba takva da definiše matricu jako velikih dimenzija.

Primer

b(100,100)=1;

14

Page 15: Računarski alati MATLAB

Ako se unese samo izraz onda se automatski generiše ans (od answer).

Primer

2+5

ans =

7

Ako je naredba suviše komplikovana deli se u više redova sa dve ili više tačaka na kraju

svakog prelomljenog reda.

Primer

c=100+200+300 ...

+1+2 ...

+pi

c =

606.1416

Imena promenljivih u Matlab-u počinju sa slovom a onda može da stoji bilo koji niz

slova i brojeva osim rezervisanih reči. Matlab je case sensitive, imena funkcija se pišu

malim slovima. Naredbom casesen poničtava se case sensitive osobina.

4.5 Operacije sa matricama

4.5.1 Transponovanje

Ako je matrica realna trnasponovana matrica se dobija pomoću '.

y=x’

y =

-1.3000

15

Page 16: Računarski alati MATLAB

1.7321

4.8000

0

1.3000

Ako je matrica kompleksna onda se kao rezultat dobija konjgovano kompleksna

transponovana matrica, o čemu treba voditi računa. Ako je matrica kompleksna,

transponovana matrica se dobija pomoću .' (postoji tačka pre ').

4.5.2 Sabiranje i oduzimanje

Matrice se mogu sabirati i oduzimati samo ako su istih dimenzija.

Primer

A=[1 2 3;4 5 6;7 8 9];

B=A’;

C=A+B

C =

2 6 10

6 10 14

10 14 18

Dozvoljena je i naredba tipa:

D=A+2

D =

3 4 5

6 7 8

9 10 11

16

Page 17: Računarski alati MATLAB

koja svakom elementu matrice dodaje 2.

4.5.3 Množenje matrica

Dozovljeno je množenje matrica*matrica s tim što unutršnje dimenzije moraju biti iste.

Ovo podrazumeva i specijalne slučajeve matrica, vektore . Dozvoljeno je i množenje

matrica*skalar.

4.5.4 Deljenje matrica

Postoje levo i desno deljenje. Definišu se na sledeći način: X=A\B odnosno, X=A-1*B, je

rešenje jednačine A*X=B X=A/B odnosno, X=A*B-1, je rešenje jednačine X*B=A

4.5.5 Stepenovanje matrica

Ako je A kavadratna matrica a p skalar definisano je stepenovanje:

A^p.

5 Kvadratne jednačine

Još jedna velika prednost MATLAB-a jeste mogućnost rada sa kompleksnim brojevima.

Da bismo to ilustrovali razmotrićemo ovde kvadratnu jednačinu poznatog oblika:

ax 2 + bx + c = 0

Za a=1, b=5 i c=6, rešenje postavljene jednačine dobija se na sledeći način:

»a=1; b=5; c=6;

»x1=(-b+sqrt(b^2-4*a*c))/(2*a)

17

Page 18: Računarski alati MATLAB

x1 =

-2

»x2=(-b-sqrt(b^2-4*a*c))/(2*a)

x2 =

-3

»a*x1^2+b*x1+c %provera rezultata

ans =

0

»a*x2^2+b*x2+c %provera rezultata

ans =

0

Poslednje dve linije u ovom algoritmu očigledno služe za proveru rezultata. Kod

kvadratne jednačine sa ovako izabranim koeficijentima diskriminanta je bila veća od

nule, pa su rešenja bila realna i različita. Izaberimo sada za koeficijente jednačine sledeće

vrednosti: a=1, b=4 i c=13. Tada će rešenje jednačine biti:

»a=1; b=4; c=13;

»x1=(-b+sqrt(b^2-4*a*c))/(2*a)

x1 =

-2.0000+3.0000i

»x2=(-b-sqrt(b^2-4*a*c))/(2*a)

x2 =

-2.0000-3.0000i

Ovde su x1 i x2 dati u kompleksnom obliku, odnosno u obliku z=a+bi, gde su a i b realni

i imaginarni delovi kompleksnog broja z, respektivno. Evo nekoliko jednostavnih primera

kompleksnih brojeva i operacija nad njima:

» c1=1-2i

c1 =

18

Page 19: Računarski alati MATLAB

1.0000 - 2.0000i

» c1=1-2j

c1 =

1.0000 - 2.0000i

» c2= 3*( 2-sqrt ( -1 ) *3 )

c2 =

6.0000 - 9.0000i

» c3=sqrt ( -2 )

c3 =

0 + 1.4142i

» c4=6+sin( .5 )*i

c4 =

6.0000 + 0.4794i

» c5=6+sin( .5 )*j

c5 =

6.0000 + 0.4794i

Iz ovih primera se vidi da MATLAB ne pravi razliku u označavanju imaginarne jedinice,

tj. svejedno mu je da li smo je označili sa "i" ili sa "j". U nekim programskim jezicima

operacije nad kompleksnim brojevima zadaju dosta muke programerima i rad sa

kompleksnim brojevima je prilično mukotrpan. Sa MATLABom to nije slučaj jer se

svaki kompleksan broj unosi na sličan način kao i realan.

Primer kvadratne jednačine

if a == 0

% Jednacina je zapravo linearna

if b == 0

% Jednacina je oblika c = 0

if c == 0

% Jednacina je oblika 0 = 0

19

Page 20: Računarski alati MATLAB

disp (’Svako x zadovoljava datu jednačinu’)

else

% Jednacina je oblika c = 0, gde je c ≠ 0

disp (’Ni jedno x ne zadovoljava datu jednačinu’)

end

else

% Jednacina je oblika bx +c = 0, gde je b ≠ 0

x = ‐c/b

end

else

% Jednacina je uistinu kvadratna

D = b^2 – 4*a*c;

if D >= 0

% Jednacina ima realna resenja

x1 = (‐b+sqrt(D))/(2*a)

x2 = (‐b‐sqrt(D))/(2*a)

else

% Jednacina ima konjugovano‐kompleksna resenja

x1 = (‐b+i*sqrt(‐D))/(2*a)

x2 = (‐b‐i*sqrt(‐D))/(2*a)

end

end

20

Page 21: Računarski alati MATLAB

6 Zaključak

MATLAB je okruženje za numeričke proračune i programski jezik koji proizvodi firma

MathWorks. MATLAB omogućava lako manipulisanje matricama, prikazivanje funkcija

i fitovanje, implementaciju algoritama, stvaranje grafičkog korisničkog interfejsa kao i

povezivanje sa programima pisanim u drugim jezicima. MATLAB je nastao kao

skraćenica za „MATrix LABoratory“ („laboratorija za matrice“). Izumeo ga je kasnih

1970ih Kliv Moler (engl. Cleve Moler), šef katedre za informatiku na Univerzitetu „Novi

Meksiko“. Procena je da preko milion ljudi zaposlenih u industriji i na univerzitetima

koristi MATLAB. MATLAB je moguće nabaviti zajedno sa Simulinkom kao i brojnim

dodacima. Dodaci su svrstani po sledećim kategorijama:

Matematika i optimizacija

Statistika i analiza podataka

Kontrola i analiza sistema

Procesiranje signala i komunikacija

Obrada slike

Test i merenja

Finansijsko modelovanje i analiza

Povezivanje sa drugim aplikacijama

Povezivanje baza podataka i izveštavanje

Distribuirano računanje

21

Page 22: Računarski alati MATLAB

7 Literatura

1. Gilat, Amos (2004). MATLAB: An Introduction with Applications 2nd Edition.

John Wiley & Sons.

2. Petrovič, Milan (2010), Programske strukture u MATLAB‐u, skripta PMF

Beograd, Beograd

3. MATLAB - Uputstvo za upotrebu, Novi Sad, 2011.

22