Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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