praktikum softverski alati 13e032psa...

Post on 10-Feb-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Praktikum softverski alati13e032psa13e032psaMATLAB

Školska 2016/2017godina

MATLABMATLAB

• MAT od matricaMAT od matrica• TOOLBOX – biblioteke

funkcijafunkcija– signal

t l– control– još mnogo drugih

t lb j ihtoolbox-ova namenjenihrazličitim oblastima “naše struke” (i drugihnaše struke (i drugih struka)

MATLABMATLAB

• Zašto je popularan?Zašto je popularan?– Ne zahteva veliko “programersko” znanje i

iskustvoiskustvo– Orijentisan je ka primeni u oblastima koje su

od interesa za tehničke struke, veliki broj većod interesa za tehničke struke, veliki broj već razvijenih funkcija i biblioteka

• Matrica je osnovni tip podatka• Kompleksnim brojevi su “automatski” podržani

– Jednostavno dodavanje novih funkcija– Dobra vizuelizacija

MATLAB “klonovi”MATLAB klonovi

• MATLAB je relativno skup programskiMATLAB je relativno skup programski paket

• Postoje alternative u domenu free ili open• Postoje alternative u domenu free ili open source alata:

S il b (htt // il b /)– Scilab (http://www.scilab.org/)– Octave (https://www.gnu.org/software/octave/)

– Pyton (https://www.python.org/)• SciPy (http://www.scipy.org/)

MATLABMATLAB

MATLABMATLAB

MATLABMATLAB

MATLABMATLAB

MATLABMATLAB

Unošenje matricaUnošenje matrica

• Eksplicitna lista elemenataEksplicitna lista elemenata• Generisanje matrice korišćenjem

ugrađenih komandi i funkcijaugrađenih komandi i funkcija• Učitavanje iz datoteka

Unošenje matricaUnošenje matrica

Matrice...Matrice...

Matrice...Matrice...

MatriceMatrice

Transponovanje matricaTransponovanje matrica• ‘ je “complex conjugate transpose” je complex conjugate transpose• A=B’ daje isti rezultat kao A=ctransponse(B)• ’ je transponovanje. je transponovanje• A=B.’ daje isti rezultat kao A=transponse(B)• Za realne matrice (nizove) dobija se isti rezultat• Za realne matrice (nizove) dobija se isti rezultat

u oba slučaja

Transponovanje matricaTransponovanje matrica

VektoriVektori

VektoriVektori

VektoriVektori

Matrica sastavljena od vektoraMatrica sastavljena od vektora

IndeksiranjeIndeksiranje• Individualni elementi matrica mogu seIndividualni elementi matrica mogu se

referencirati korišćenjem njihovih indeksa, uokvirenih malim zagradama.

• Indeksiranje počinje od 1, odnosno indeks je pozitivan ceo 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))]

IndeksiranjeIndeksiranje

IndeksiranjeIndeksiranje

IndeksiranjeIndeksiranje

Brojevi i aritmetički izraziBrojevi i aritmetički izrazi

• Matlab podržava sve uobičajene načine zaMatlab podržava sve uobičajene načine zapredstavljanje decimalnih brojeva

Brojevi i aritmetički izraziBrojevi i aritmetički izrazi

• Matlab uvek “pokušava” da da rezultatMatlab uvek pokušava da da rezultat.• Na korisniku je da vodi računa o tome da li

je rezultat validanje rezultat validan.

Brojevi i aritmetički izraziBrojevi i aritmetički izrazi

Kompleksni brojevi i matriceKompleksni brojevi i matrice

Kompleksni brojevi i matriceKompleksni brojevi i matrice

Aritmetički izraziAritmetički izrazi• Izrazi se prave pomoću standardnih aritmetičkihIzrazi se prave pomoću standardnih aritmetičkih

operatora koji podležu standardnim pravilima prvenstva.– + sabiranje– - oduzimanje– * množenje– / deljenje s desna

\ deljenje s leva– \ deljenje s leva– ^ stepenovanje

• Dva deljenja postoje zbog toga što su sve• Dva deljenja postoje zbog toga što su sve operacije prilagođene za matrični račun.

Sabiranje i oduzimanjeSabiranje i oduzimanje

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

MnoženjeMnoženje• Dozovljeno je množenjeDozovljeno je množenje

matrica*matrica s tim što unutrašnje dimenzije j jmoraju biti iste. Ovo podrazumeva i

ij l l č jspecijalne slučajeve matrica, vektore.D lj j i• Dozvoljeno je i množenje matrica*skalarmatrica skalar.

DeljenjeDeljenje

• Postoje levo i desno deljenje Definišu sePostoje levo i desno deljenje. Definišu se na sledeći način:

X=A\B odnosno– X=A\B odnosno, X=A-1*B (rešenje jednačine A*X=B)

– X=A/B odnosnoX=A/B odnosno,X=A*B-1 (rešenje jednačine X*B=A)

Array Arithmetic OperatorsArray Arithmetic Operators

• Pod “operacijama saPod operacijama sa nizovima” se zapravo podrazumevajupodrazumevajuoperacije koje želimo da sprovedemo nada sprovedemo na pojedinim elementimamatrica tj operacijematrica, tj. operacije tipa “element po element”element .

Array Arithmetic OperatorsArray Arithmetic Operators

Korišenje MATLAB-aKorišenje MATLAB a

• U MATLAB radnom okruženju mogu seU MATLAB radnom okruženju, mogu se direktno kucati naredbe, deklarisati promenljive pozivati funkcijepromenljive, pozivati funkcije...

• Rezultati ostaju “upamćeni” u workspace-u čak i ako rezultat komadne nije prikazanu, čak i ako rezultat komadne nije prikazan u komandnom prozoruO k či j k i t i ktič• Ovakav način je koristan i praktično upotrebljiv samo za veoma jednostavne

čproračune

Korišenje MATLAB-aKorišenje MATLAB a

MATLAB “program”MATLAB program

• Niz komandi definicija promenljvihNiz komandi, definicija promenljvih, “poziva” korisničkih ili MATLAB funkcija, može da se upiše redom u isti fajlmože da se upiše redom u isti fajl (tekstualni fajl) koji se zove script (ekstenzija m)(ekstenzija .m)

• Script se može “pozvati” iz MATLAB-a i onda se izvršava red po redonda se izvršava red-po-red

Kako se formira scriptKako se formira script“klikom” na “new script”“new script” otvara se MATLAB editor

Kako se formira scriptKako se formira scriptt – vektor kolona, vrednosti od -2e-3 do 2e-3 s korakom

1

od 2e 3 do 2e 3 s korakom 0.001e-3 – izbor koraka određuje “gustinu” tačaka

0.2

0.4

0.6

0.8

-0.6

-0.4

-0.2

0

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

x 10-3

-1

-0.8

Grafik se formira tako što se sin je “ugrađena” MATLAB funkcija koja “vraća” promenljivu istih dimenzija kao međusobno spoje tačke

(t(i),x(i)) i (t(i+1),x(i+1)), i=1, 2,...N-1, gde je N dužina niza

vraća promenljivu istih dimenzija kao što je ulazna promenljiva, u ovom slučaju vektor 2*pi*t*f1(konstanta*konstanta*vektor*skalar)

Kako se formira scriptKako se formira script0.4

0.6

0.8

1

-0.4

-0.2

0

0.2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

x 10-3

-1

-0.8

-0.6

0.4

0.6

0.8

1x1

x2

-0.6

-0.4

-0.2

0

0.2x(

t)

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

x 10-3

-1

-0.8

t [s]

Kako se izvršava scriptKako se izvršava script

Primer crtanja spektra periodičnog signala

1

1 1

0, 0,

t tf t E t t t

0 1

1

022

02

0.

sin1 2 , 0, 1, 2,

2

T

jn t

nT

t t T

nEF f t dt e n

T T n

2 2

Deljenje s nulom !!!

Ne rešavamo zadatak u ML, ik j š jsamo prikazujemo rešenje

na adekvatan način

Primer crtanja spektra

0 45

0.5

periodičnog signala

0.25

0.3

0.35

0.4

0.45

0

0.05

0.1

0.15

0.2

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.35

0.4

0.45

0.5

0 1

0.15

0.2

0.25

0.3

|Fn|

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.05

0.1

n

Primer crtanja spektra periodičnog signala

Fnn-FnColumns 1 through 12

0 0 0 0 0 0 0 0 0 0 0 0

Izbegava se for petalja, operacije sa nizovima “ l t l t ” “

Columns 13 through 21

0 0 0 0 0 0 0 0 0

“element-po-element ” “array operations” - ./ i .*

Primer crtanja spektra periodičnog signala

0.35

0.4

0.45

0.5

tar

spektaranvelopa

0.15

0.2

0.25

0.3

ampl

ituds

ki s

pekt

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.05

0.1

/0

Primer crtanja spektra periodičnog signala

title(['\tau/T=' num2str(faktor)])

0.16

0.18

0.2/T=0.2

spektaranvelopa

t t e([ \tau/ u st ( a to )])

0.1

0.12

0.14

0.16

spek

tar

0 02

0.04

0.06

0.08

s

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.02

/0

top related