Professional Documents
Culture Documents
MATLAB
(Skripta)
Studenti: Mentor:
Aleksandra Borzanović Negovan Stamenković
Nemanja Zdravković
2017. godina
SADRŽAJ:
2
1. RAZVOJ MATLAB-A.......................................................................... 4
1.1. Uvod u MATLAB........................................................... 4
1.2. Pokretanje i organizacija MATLABA............................. 6
2. SINTAKSA PROGRAMSKOG PAKETA MATLA............................... 8
2.1. Rad u komandnom prozoru(Command Window)......... 8
2.2. Aritmetičke operacije.................................................... 10
3. MATRIČNI NAČIN U MATLABU........................................................ 20
3.1. Generisanje matrica...................................................... 20
3.2. Adresiranje matrica....................................................... 21
3.3. Matematičke operacije sa matricama........................... 23
4. GRAFIČKI PRIKAZ U MATLABU....................................................... 24
4.1. Crtanje više grafika na jednom grafikonu...................... 25
5. SIMBOLIČKA ANALIZA...................................................................... 30
6. REŠAVANJE JEDNAČINA U MATLABU............................................ 36
6.1. Matrični način rešavanja sistema jednačina.................. 36
6.2. Levo i desno deljenje..................................................... 38
7. SKRIPT DATOTEKE, M-FAJLOVI...................................................... 39
7.1. Skript fajlovi................................................................... 40
7.2. Funkcije......................................................................... 41
7.2.1. Kontrolne petlje............................................. 42
LITERATURA............................................................................................... 44
1.RAZVOJ MATLAB-a
3
1.1. Uvod u MATLAB
Matematika i optimizacija
Statistika i analiza podataka
Obrada slike
Test i merenja
Distribuirano računanje
Izdvaja se i posebni modul koji je sastavni deo Matlaba poznatiji kao SIMULINK i
on služi za simulaciju dinamike sistema. Pored toga postoje i verzije Matlaba koje su
prilagođene za rad i u okviru mnogih drugih kompjuterskih sistema. Sistemi koji spadaju
u tu grupu su: Macintosh, Sun, Apollo, HP, DECstations i DEC VAX, Stardent Titan,
Convex, kao i za Alliant i Cray.
6
Slika 2.
Kao što je prikazano na slici, osnovni prozor Matlaba sadrži četiri manja prozora i
svaki od njih ima različitu primenu pri korišćenju ovog programa. Osnovni prozor sadrži
Komandni prozor (Command window), prozor tekućeg direktorijuma(current folder),
prozor istorije komandi (Command History) i prozor sa podacima o upotreblјenim
promenlјivama (Workspace).
U sledećoj tabeli su navedeni svi prozori koji se mogu naći kao sastavni deo osnovnog
prozora Matlaba pri njegovom pokretanju uz kratko objašnjenje njihovog zadatka.
7
2. SINTAKSA PROGRAMSKOG PAKETA MATLAB
Ono što moramo znati pre početka pisanja komandi je da kursor mora biti iza
komandnog odzivnika „(>>)“ koji označavaju da je program spreman za rad i primanje
komandi. Kada upišemo neku komandu ona će biti izvršena tek posle pritiskanja tastera
Enter. Ali moramo znati da se tako izvršava samo poslednja komanda dok sve ostale
ostaju nepromenjene. U istom redu možemo napisati i više komandi, međutim takve
komande moramo razdvojiti zarezom. Nakon toga one će se izvršavati sleva na desno.
Kada izvršimo neku komandu, neka to npr. Bude sabiranje dva broja, pritiskom na taster
Enter pojaviće se rezultat i to će izgledati kao na slici 3 I slici 4 :
8
Slika 3. Slika 4.
Ukoliko u ovom slučaju pritisnete na tastaturi strelicu nagore tj. (↑) onda će vam
se ponovo pojaviti vaša naredba koju ste upisali pre izvršenja. Ako pritisnete na tastaturi
strelicu nadole tj.(↓) onda će vam se pojaviti sve prethodno upisane komande.
Ukoliko imamo komandu koja je predugačka i ne može stati u jedan red onda
možemo staviti samo tri tačke tj. (...) i pritiskom na enter nastavlјamo pisanje u novom
redu. Jedna komanda koju upisujemo može imati do 4096 znakova. Ako unapred
znamo rešelјe tj rezultat naše komande i ne želimo da nam se to ispisuje u komandnom
prozoru ili pak je rezultat veliki onda sve što moramo da uradimo je da na kraju
komande stavimo tačku-zarez tj.(;) .
To bi u komandnom prozoru
Ukoliko posle komande stavimo znak za procenat (%) onda se sve posle njega
računa kao komentar a ne utiče na izvršavanje komandi.(Slika 6.)
9
Slika 6.
Pored ovoga postoji i opcija clc koja se koristi za brisanje sadržaja u komandnom
prozoru, ali ona ne briše definisane promenlјive već samo sadržaj u komandnom
prozoru.
Kada je reč o prioritetima prilikom računanja, takođe je i ono isto kao i kod većine
kalkulatora, glavni prioritet su zagrade (ukoliko ih ima), odmah posle njih stepenovanje
brojeva, zatim množenje i delјenje i na samom kraju idu aritmetičke operacije sabiranja i
oduzimanja.
11
Slika 9. Slika 10
Prilikom aritmetičkih operacija u Matlabu možemo sami birati kojeg formata će nam
biti prikaz rezultata, ukoliko ne odaberemo on ima svoj fiksni prikaz koji je poznatiji kao
format short koji prikazuje rezultat sa 4 decimale. Pored ovog fomata postoje i sledeći
formati prikazivanja rezultata:
- format long: Prikaz rezultata sa 14 decimala. Obuhvata opseg 0.001 ≤ broj ≤ 100 Za
sve ostale brojeve van ovog opsega primenjuje se format long e.
- format compact: Nјegova namena je da uklanja prazne redove da bi stalo što više.
12
Slika 11. Slika 12.
- nthroot(x,n): n-ti koren nekog zadatog broja (Ako je broj negativan, n mora da bude
neparan celi broj;
13
- factorial(x): Predstavlјa fsaktorijel od x (x!), gde h mora biti pozitivan.
Slika 13.
14
- cot(x): Kotanges ugla neko broja izražen u radijanima;
- asin(x),
- acos(x),
- atan(x)
- acot(x);
- asind(x);
- acosd(x);
- atand(x);
- acotd(x).
15
Takođe postoje u funkcije za zaokruživanje brojeva koje su ugrađene u programski
paket Matlaba. Neke od takvih funkcija su:
- sign(x): Ovo je funkcija signum. Ona vraća 1 ako je broj veći od 0 tj. ako je broj
pozitivan, vraća -1 ako je broj manji od nule tj. negativan i vraća 0 ako je broj 0.
16
U Matlabu funkcija koja je izuzetno bitna, a ugrađena je u ovom programskom
paketu je operator dodele. Znak za operator dodele je znak jednakosti tj. „ = “(Slika
20.) . Kada u komandnom prozoru stavimo da nam je neka promenlјiva jednaka nekom
broju onda smo toj varijabli dodelili vrednost koja je iza znaka jednakosti. Čim nekoj
promenlјivoj dodelimo vrednost, to nas se prikazuje u prozoru Workspace (Slika 21.),
prilikom različitih aritmetičkih operacija vrednost se menja i u komandnom prozoru
(Slika 22.) i u prozoru gde nam se prikazuju promenlјive (Slika 23).
17
Imena promenlјivih mogu sadržati slova,brojeve i podvlake, ali moraju počinjati
slovom, moramo znati da se mala i velika slova u ovom programskom paketu razlikuju i
moramo voditi računa o tome, takođe se preporučuje zbegavanje davanja imena već
ugrađenih funkcija kao što su sqrt,tan,abs i sl. Jer ako to uradimo promenlјiva će imati
vrednost koju smo joj mi dodelili prilikom pisanja u komandnom prozoru, a kao
ugrađena funkcija neće moći da se koristi.
Slika 24.
18
Neke od rezervisanih reči koja se često upotreblјavaju pri radu su odmah pri
pokretanju rogramskog paketa definisane, npr.:
- pi Broj π (3,14);
- eps Najveća moguća razlika između dva broja. To je zapravo broj 2^(-52), što je
približno 2.2204e-016;
- inf Beskonačna vrednost, dobijamo je kad npr. bilo koji broj podelimo sa nulom;
Ako pri radu u ovom programskom paketu želimo da vidimo sve informacije o
promenlјivama koje smo definisali, ili želimo da izbrišemo promenlјive postoje posebne
komande koje su ugrađene i kao takve se koriste baš za ove namene. To su:
- clear x y z: Brišemo samo promenlјive koje smo naveli iza komande clear;
- who: Prikazaće nam samo imena promenlјivih koja smo definisali pri radu;
- whos: Pored imena pokazuje nam i veličinu promenlјivih, klasu i veličinu u bajtovima.
Slika 25.
Funkcija Opis
Eye Generiše jediničnu matricu (matrica u kojoj su elementi na glavnoj dijagonali
jedinice, a vandijagonalni nule).
Ones Generiše matricu u kojoj su svi elementi jedinice.
20
Zeros Generiše nula matricu (matricu u kojoj su svi elementi nule).
Rand Generiše uniformno raspodelјenih slučajnih brojeva u intervalu 0 do 1 (kao
skalara ili matrice)
Magic Generiše magičnu matricu tzv. “čarobni kvadrat“ (za n>=3, dobija se matrica
čiji su elementi prirodni brojevi od 1 do n² i kod koje svaka vrsta i kolona
imaju isti zbir elemenata).
3.2.Adresiranje matrice.
Adrese elemenata matrice definiše se brojem vrste i kolone u kojoj se nalazi. Ako je
definisana matrica A, tada (m,n) označava matricu A u preseku vrste m i kolone n.
Napraviti matricu M. Zatim prikazati element matrice M u preseku prve vrste i treće
kolone i dodeliti mu novu vrednost 100. (Slika 26.)
Slika 26.
21
A (:,m,n)- izdvaja elemente u svim vrstama između kolona m i n matrice A.
Sabiranje i oduzimanje može biti sprovedeno kod matrica jednakih dimenzija. Ukoliko
nisu jednakih dimenzija Matblab će izbaciti poruku o grešci. (Slika 29.)
22
Slika 29.
linearne algebre.
Slika 30.
Elementarne matrične funkcije koje se mogu naći u programskom paketu Matlab-a su:
23
– inverzija inv(x);
Jedna od možda najbolјih funkcija MATLAB-a je ta što ima veoma velike grafičke
mogućnosti. MATLAB pruža izuzetno veliki broj naredbi pomoću kojih podatke
možemo prikazivati pomoću 2D i 3D grafika.
Najvažnija naredba kada je reč o crtanju nekog vektora h je naredba plot(x). Ova
naredba crta određeni vektor u koordinatnom sistemu tako što se na h-osi nalaze
indeksi broja h, a dok se na y–osi nalaze vrednosti broja h, ova naredba se koristi i za
crtanje funkcija jedne promenlјive (Slika 31, Slika 32.), ali pre fukcije mi moramo
definisati i opseg u kojem se biti nacrtana funkcija h. Bitna naredba za crtanje ovakvih
funkcija je naredba linspace – pomoću nje se definiše oblast h-ose. Sintaksa ove
naredbe je: linspace(x1,x2,n) gde su h1,h2 početna i krajnja tačka tj. opseg, a dok n
predstavlјa broj tačaka u tom opsegu. Ukoliko se broj tačaka ne definiše u naredbi,
onda se uzima 100 tačaka.
24
Slika 31. Slika 32.
Ukoliko izaberemo plot onda se dve susedne tačke na grafiku spajaju pravom
linijom, naravno postoji i mogućnost menjanja izgleda linije, boje, deblјine linija .Bar
prikaz je prikaz sa stubićima.Stairs prikaz predtavlјa prikazivanje podataka slično kao i
kod prikaz sa stubićima, samo što unutrašnjost stubića nije popunjena već se prikazuju
samo ivice stubića. Stem prikaz je prikaz pomoću vertikalnih linija koje na vrhu imaju
mali kružić . Pie prikaz je prikaz podatak u obliku pite.
Bitna karakteristina kod crtanja grafika je ta što se može crtati više linija na
jednom grafiku.
plot(x,y).
Primer:
25
t = 0:pi/100:2*pi; y2 = sin(t-.25);
y = sin(t); → y3 = sin(t-.5);
plot(t,y,t,y2,t,y3)
Slika 33.
Postoje sledeći simboli za vrstu linije i boju (Slika 34, Slika 35):
26
Za uređivanje grafika postoje naredbe pomoću kojih se zadaje ime grafiku, zadaju se
imena osama, da se postavi tekst na grafiku gde mi želimo i postavlјanje legende o
linijama.
Primer kako to sve izgleda u Matlab-u pomoću navedenih naredbi(Slika 36, Slika 37):
27
Posle svih ovih naredbi grafik izgleda ovako (Slika 38. )
Slika 38.
28
Slika 39.
Slika 40.
Postoji i naredba kojom možemo podeliti prozor za crtanje na koliko god dela
želimo a da svaki deo predstavlja novu funkciju. Za deljenje prozora se koristi naredba
subplot(1,1,1) , koja smešta grafik tako što upisujemo mesto na kom želimo kao što su
deffinisani kod matrica.
29
Slika 41. Slika 42.
5. SIMBOLIČKA ANALIZA
30
Slika 43. Slika 44.
Slika 45 Slika 46
31
Int je naredba koja se koristi za izračunavanje integrala , njom se izračunava i određeni i
neodređeni integrali. Neodređeni integral ima sledeće komande:
p
� (sin y + 5 y 2
Primer: Rešitavamo integral )dy . U Matlab-u izgleda to ovako (Slika
0
49.)
Slika 49.
32
Kada Matlab ne može da izračuna integral on izbaci poruku da integral nije
pronađen ili na engleskom „ Explicit integral could not be found.“ Određeni
integral se takođe u Matlab-u koristi pri izračunavanju površina. Za crtanje grafita
prilikom rešavanja integrala i površina koristi naredba ezplot( ‘ ‘).
Slika 52.
33
Takodje pored svim ovih fukcija, postoji I mogucnost da podelimo prozor I da u
jednom grafickom prozoru predstavimo vise grafika. Programski paket Matlaba pored
računanja integrala pruža mogućnosti računanja izvoda, limesa i ekstremnih vrednosti.
>> syms x
>> y=cos(x)+x^4+2*x^2;
>> diff(y)
ans =
>> diff(y,2)
ans =
12*x^2 - cos(x) + 4
>> pretty(ans)
12 x - cos(x) + 4
>> y=cos(x)+x^4+2*x^2
>> pretty(y)
cos(x)2 + 2 x 4 + x
34
Limes se računa upotrebom rezervisane reči limit. Pa pogledajmo kako to izgleda na
konkretnom primeru ako je zadatak y=tgx/x kada lim x→0.
Rešenje:
Syms x
>> limit(tan(x)/x,0)
ans =
1.
>> y=exp(x)*(3*x-2*x^2)
>> diff(y)
ans =
>> solve(ans)
ans =
-3/2
>> y1=exp(-1.5)*(-2*(-1.5)^2+3*(-1.5))
y1 =
35
-2.0082
>> y1=exp(1)*(-2*(1)^2+3*(1))
y1 =
2.7183
>> diff(y,2)
ans =
>> solve(ans)
ans =
- 41^(1/2)/4 - 5/4
41^(1/2)/4 - 5/4
>> double(ans)
ans =
-2.8508
0.3508
>> y1=
1,1451
36
6.1. Matrični način rešavanja sistema jednačina
Ax=b . Posto kada rešavamo sisteme linearnih jednačina mi kao rešenje imamo
nepoznatu vektor kolonu x1…xn, kada to znamo onda imamo da se sistem rešava kao
x= A-1 *b , gde je A-1 inverzna matrica matrice A, koja se u programskom paketu dobija
pomo’u ugrađene funkcije inv(A) ili prostim unosom u komandnom prozoru kao A^(-1).
37
2x1 + x2 + x3 = 5;
Pored već gore navedenog metoda postoje i metodi levog i desnog matričnig
deljenja. Ako izaberemo neki od ovih načina moramo da znamo da se sistem jednačina
rešava počevši od poslednje jednačine pa se vrednost poslednje menja u prethodnoj i
tako sve dok ne dodjemo do prv. Rešava se jedna po jedna jednačina unazad. Ovaj
metod je poznatiji kao metod unazad.
38
Slika 58. Slika 59.
39
U ovom programskom paketu se skript datoteke prave i uređuju u prozoru za
pisanje programa prozor Editor (Slika ) koji se otvara iz komandnog prozora tako što se
u meniju File odabere New i zatim M-file. Na samom početku skript datoteka praktukuje
se da se ostavlja komentar sa kratkim objašnjenjem zadatka odredjene datoteke.
Prvi način:
Drugi način:
40
Slika 62. Slika 63.
Treći način:
7.2. Funkcije
function [y1, y2, …] = imefunkcije (x1, x2, …) , gde počinje rezervisanom rečju za
funkcije, a y1, y2 predstavlja rešenja za program, imefunkcije predstavlja ime pod kojim
je funkcija sačuvana i pomoću kojeg mi pozivamo funkciju u glavnom programu, a x1 I
x2 su argumenti koje svaka funkcija mora da sadrži. Medjutim za razliku od skript
datoteke kada pokrenemo funkciju moramo da unesemo I argumente, kako koji
argument unosimo u komandnom prozoru tim redom iz zamenjuje u funkcijskoj datoteci.
Ukoliko je potrebno da neke promenljive budu vidljive unutar funkcije, moraju biti
proglašene globalnim pomoću naredbe global, a postoje i lokalne promenljive koje se
41
koriste samo u određenom programu u kojem su definisane i one se ne definišu u
workspace.
1.For – petlja koja datu naredbu izvršava samo određeni broj puta. (Primer korišćenja
na slici ());
2. If – kod koje se program dalje izvršava samo ako se ispunjava određeni uslov.(Primer
na slici ()). Uz if se koriste else i else if, komande za preusmeravanje toka programa.
4. Switch – daje nam mogućnost granjanja uz odabir jednog slučaja koji će program
vršiti. (Primer na slici( ))
42
Primer 1. Napisati program koji za n brojeva racuna sumu brojeva samo onih brojeva
koju su deljivi sa 2 ili sa 3 korišćenjem for i if petlje. Rešenje na Slici 69. i Slici 70.
Primer 2. Napisati program koji računa broj dvocifrenih i sumu jednocifrenih u intervalu
od 1 do n. Rešenje na slici 71. i slici 72.
Primer 3. Napisati program koji ispisuje koji broj smo unesi za broj od 1 do 5
korišćenjem switch. Rešenje na slici 73, I slici 74.
43
LITERATURA
- Matematika u Mablatu
http://www.rgf.bg.ac.rs/predmet/RO/IV%20semestar/Informatika
%20II/Predavanja/3_I2_RO_ML3.pdf
https://www.fer.unizg.hr/_download/repository/matlab_upute.pdf
https://drakic.files.wordpress.com/2011/12/knjiga-matlab1.pdf
http://www.rgf.bg.ac.rs/predmet/RO/IV%20semestar/Informatika
%20II/Predavanja/3_I2_RO_ML3.pdf
http://www.dm.unibo.it/~piccolom/didattica/num_met/SAmatlab_09.pdf
https://www.math.muni.cz/~kolacek/vyuka/vypsyst/navod.pdf
https://www.tutorialspoint.com/matlab/matlab_matrics.htm
http://telekomunikacije.etf.rs/predmeti/ot2psa/psa_ML_01.pdf
44