I čas - rgf.bg.ac.rsrgf.bg.ac.rs/predmet/RO/IV semestar/Informatika II/Vezbe/Inf2_ML_01.pdf ·...

21
Skripta iz Informatike II Rudarsko-geološki fakultet Beograd I čas Predavanja 2 časa Početak rada u MATLAB-u. Radno okruženje. Komandni prozor. Skalarne promenjljive. Operacije sa skalarima. Formatiranje rezultata. Elementarne matematičke funkcije. Primeri primene MatLab-a. Vežbe 1 čas Rad na računaru: osnovni zadaci rada sa skalarima. 1.1. O MATLAB-u MATLAB je jezik koji nudi velike mogućnosti kada su u pitanju tehnička proračunavanja. MATLAB integriše proračunavanja sa vizuelizacijom i programiranjem kroz jedno okruženje koje je lako za korišćenje i u kome se i problemi i rešenja izražavaju pomoću uobičajene matematičke notacije. Karakteristične oblasti koje su obuhvaćene MATLAB-om su: Matematika i proračunavanja Razvoj algoritama Prikupljanje podataka Modeliranje, simulacija i izrada prototipova Analiza, istraživanje i vizuelizacija podataka Naučna i inženjerska grafika Razvoj aplikacija, uključujući izgradnju grafičkog korisničkog interfejsa MATLAB je interaktivni sistem u kome osnovni element podataka predstavlja niska koja ne zahteva dimenzionisanje. Time je omogućeno rešavanje mnogih problema vezanih za tehnička proračunavanja, posebno onih koji su formulisani pomoću matrica ili vektora, i to za samo mali deo vremena od onog koje bi inače bilo potrebno da se napiše odgovarajući program u skalarnom neinteraktivnom jeziku kao što je C ili Fortran. Naziv MATLAB je skraćenica od matrična laboratorija (matrix laboratory). MATLAB je izvorno napisan da bi se omogućio lakši pristup matričnom softveru razvijenom u okviru projekata LINPACK i EISPACK. Danas, MATLAB mašina u sebi sadrži LAPACK i BLAS biblioteke, i obuhvata najsavremeniji softver za matrične proračune. MATLAB se razvijao tokom godina na osnovu doprinosa koji su davali mnogi korisnici. Postao je standardno nastavno sredstvo na univerzitetima, i to kako na uvodnim tako i na naprednim kursevima iz matematike i različitih inženjerskih i naučnih disciplina. U industrijskom okruženju, MATLAB predstavlja alatku izbora u oblasti Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.1

Transcript of I čas - rgf.bg.ac.rsrgf.bg.ac.rs/predmet/RO/IV semestar/Informatika II/Vezbe/Inf2_ML_01.pdf ·...

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

I čas Predavanja 2 časa

Početak rada u MATLAB-u. Radno okruženje. Komandni prozor. Skalarne promenjljive. Operacije sa skalarima. Formatiranje rezultata. Elementarne matematičke funkcije. Primeri primene MatLab-a.

Vežbe 1 čas

Rad na računaru: osnovni zadaci rada sa skalarima.

1.1. O MATLAB-u

MATLAB je jezik koji nudi velike mogućnosti kada su u pitanju tehnička

proračunavanja. MATLAB integriše proračunavanja sa vizuelizacijom i programiranjem

kroz jedno okruženje koje je lako za korišćenje i u kome se i problemi i rešenja

izražavaju pomoću uobičajene matematičke notacije.

Karakteristične oblasti koje su obuhvaćene MATLAB-om su:

Matematika i proračunavanja

Razvoj algoritama

Prikupljanje podataka

Modeliranje, simulacija i izrada prototipova

Analiza, istraživanje i vizuelizacija podataka

Naučna i inženjerska grafika

Razvoj aplikacija, uključujući izgradnju grafičkog korisničkog interfejsa

MATLAB je interaktivni sistem u kome osnovni element podataka predstavlja

niska koja ne zahteva dimenzionisanje. Time je omogućeno rešavanje mnogih

problema vezanih za tehnička proračunavanja, posebno onih koji su formulisani

pomoću matrica ili vektora, i to za samo mali deo vremena od onog koje bi inače bilo

potrebno da se napiše odgovarajući program u skalarnom neinteraktivnom jeziku kao

što je C ili Fortran.

Naziv MATLAB je skraćenica od matrična laboratorija (matrix laboratory).

MATLAB je izvorno napisan da bi se omogućio lakši pristup matričnom softveru

razvijenom u okviru projekata LINPACK i EISPACK. Danas, MATLAB mašina u sebi

sadrži LAPACK i BLAS biblioteke, i obuhvata najsavremeniji softver za matrične

proračune.

MATLAB se razvijao tokom godina na osnovu doprinosa koji su davali mnogi

korisnici. Postao je standardno nastavno sredstvo na univerzitetima, i to kako na

uvodnim tako i na naprednim kursevima iz matematike i različitih inženjerskih i naučnih

disciplina. U industrijskom okruženju, MATLAB predstavlja alatku izbora u oblasti

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.1

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

istraživanja, razvoja i analize.

MATLAB obuhvata familiju dodatnih rešenja vezanih za specifične primene,

predstavljenih u vidu panela sa alatima. Od velikog značaja za većinu korisnika

MATLAB-a, paneli sa alatima pružaju mogućnost da se lako savlada primena neke

specijalizovane tehnologije. Paneli sa alatima su sveobuhvatni skupovi MATLAB

funkcija (M-datoteka) kojima se proširuje MATLAB okruženje u cilju rešavanja

određenih klasa problema. Oblasti za koje postoje paneli sa alatima obuhvataju obradu

signala, kontrolne sisteme, neuronske mreže, fazi logiku, talasiće (wavelets), simulaciju

i mnoge druge.

MATLAB sistem se sastoji od pet glavnih delova:

Desktop alati i razvojno okruženje

Ovo je skup alatki i funkcionalnosti koje olakšavaju korišćenje MATLAB funkcija i

datoteka. Mnogi od ovih alata predstavljaju grafičke korisničke interfejse. Ovim skupom

su obuhvaćeni MATLAB desktop i komandni prozor, prozor s prethodnim komandama,

editor i debager, analizator koda i ostali izveštaji, pretraživač za pregledanje sistema za

pomoć (help), radni prostor, datoteke i putanja za pretraživanje.

MATLAB biblioteka matematičkih funkcija

Ovo je veoma širok skup algoritama za proračunavanje, počev od elementarnih

funkcija, kao što su zbir, sinus, kosinus kao i operacije sa kompleksnim brojevima, pa

do složenijih funkcija kao što su invertovanje matrice, izračunavanje sopstvenih

vrednosti matrice, Beselove funkcije i brze Furijeove transformacije.

MATLAB jezik

Ovo je jezik matrica/niski visokog nivoa sa naredbama za kontrolu toka,

funkcijama, strukturama podataka, ulazom/izlazom i karakteristikama objektno

orijentisanog programiranja. On omogućava kako "programiranje na malo" odnosno

brzo kreiranje programa za jednokratnu upotrebu tako i "programiranje na veliko"

odnosno kreiranje velikih i složenih aplikativnih programa.

Grafika

MATLAB poseduje značajne mogućnosti za prikazivanje vektora i matrica u

obliku grafova, kao i za označavanje i štampanje ovih grafova. Obuhvata funkcije

visokog nivoa za vizuelizaciju dvodimenzionalnih i trodimenzionalnih podataka, obradu

slike, animaciju i prezentaciju grafike. Takođe sadrži funkcije niskog nivoa koje

omogućavaju potpuno podešavanje izgleda grafike kao i izgradnju kompletnog

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.2

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

grafičkog korisničkog interfejsa za razvijenu MATLAB aplikaciju.

Spoljni MATLAB interfejsi/API

Ovo je bilbioteka koja omogućava pisanje C i Fortran programa koji se povezuju

sa MATLAB-om. Obuhvaćene su funkcionalnosti za poziv rutina iz MATLAB-a

(dinamičko povezivanje), pozivanje MATLAB-a kao mašine za proračunavanje, i za

čitanje i ispisivanje MAT-datoteka.

1.2. POKRETANJE MATLAB-A I NJEGOVI PROZORI

Kada se program pokrene, prikazuje se prozor (slika 1.1) koji sadrži tri manja

prozora - komandni prozor (Command Window), prozor tekućeg direktorijuma (Current

Directory) i prozor s prethodnim komandama (Command History). To je standardan

izgled MATLAB-a, u kome, sem navedenih, postoji još pet prozora. U tabeli 1.1

navodeni su svi MATLAB-ove prozori i njihove namene. MATLAB-ovim alatkama i

svojstvima se pristupa pomoću dugmeta Start u donjem levom uglu velikog prozora.

U ovom odeljku su dati kratki opisi četiri prozora: komandnog prozora (Command

Window), grafičkog prozora (Figure), prozora za pisanje programa (Editor) i prozora

sistema za pomoć (Help), a detaljniji opisi su dati kasnije kroz konkretne primere

korišćenja.

Komandni prozor

Glavni MATLAB-ov prozor, koji se automatski otvara kada se MATLAB pokrene

je komandni prozor. Za rad je najpogodnije da samo komandni prozor bude vidljiv, a da

se ostali prozori pojedinačno zatvore. To se postiže i kada se u meniju Desktop izabere

Desktop Layout, a u podmeniju koji se otvara stavka Command Window Only.

Slika 1.1. Standardni izgled MATLAB-ove radne površine

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.3

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Tabela 1.1. MATLAB-ovi prozori

Prozor Namena

Komandni prozor (Command Window)

Glavni prozor za unošenje promenljivih i izvršavanje programa.

Grafički prozor (Figure) Sadrži rezultate grafičkih komandi.

Prozor za pisanje programa (Editor)

Za pisanje skript datoteka i funkcijskih datoteka, te za otkrivanje i otklanjanje grešaka u njima.

Prozor sistema za pomoć (Help)

Sadrži pomoćne informacije.

Prozor za pokretanje (Launch Pad Window)

Omogućava pristupanje alatkama, demonstracijama i dokumentaciji.

Prozor s prethodnim komandama (Command History)

Sadrži komande unesene u komandnom prozoru.

Prozor radnog prostora (Workspace Window)

Sadrži podatke o svim upotrebljenim promenljivama.

Prozor tekućeg direktorijuma (Current Directory)

Prikazuje datoteke u tekućem direktorijumu.

Grafički prozor

Grafički prozor se automatski otvara kada se izvršavaju grafičke komande; sadrži

grafiku koju su te komande izgenerisale. Na slici 1.2 dat je primer grafičkog prozora.

Slika 1.2: Primer grafičkog prozora.

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.4

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Prozor za pisanje programa:

U prozoru za pisanje programa se pišu i uređuju programi. Prozor se otvara iz

menija File u komandnom prozoru. Primer je dat na slici 1.3. Ovaj prozor se koristi za

pisanje skript datoteka i za pisanje funkcijskih datoteka.

Slika 1.3: Primer prozora za pisanje programa.

Prozor sistema za pomoć

Prozor sistema za pomoć (Help) sadrži ugrađenu pomoć, a može se otvoriti iz

menija Help na traci menija svakog MATLAB-ovog prozora. Interaktivan je i služi za

dobijanje pomoćnih informacija o bilo kojoj komponenti ili svojstvu MATLAB-a. Na slici

1.4 prikazan je otvoren prozor sistema za pomoć.

Kada se prvi put pokrene MATLAB, njegov prozor izgleda kao na slici 1.1.

Prozorima se upravlja iz menija Desktop, preko stavke Desktop Layout.

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.5

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Slika 1.4: Prozor sistema za pomoć

1.3. RAD U KOMANDNOM PROZORU

Komandni prozor je glavni MATLAB-ov prozor i služi za izvršavanje komandi,

otvaranje prozora, pokretanje programa koje je napisao korisnik i upravljanje MATLAB-

om. Primer komandnog prozora, sa nekoliko jednostavnih komandi dat je na slici 1.5.

Kursor smešten iza

komandnog odziva (>>) znači da

korisnik može da upiše komandu

Slika 1.5: Komandni prozor

Napomene o radu u komandnom prozoru:

Da bi se upisala komanda, kursor mora biti neposredno iza komandnog odziva (»).

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.6

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Upisana komanda biće izvršena kada se pritisne <Enter>. Međutim, izvršava se samo poslednja upisana komanda. Sve prethodno izvršene komande ostaju nepromenjene.

U isti red se može upisati više komandi ako se razdvoje zarezom. Kada se pritisne <Enter>, komande će biti izvršene redom, sleva nadesno.

Ne može se vratiti u prethodni red komandnog prozora, izmeniti nešto i zatim ponovo izvršiti tako izmenjena komanda.

Ako se pritisne taster sa strelicom nagore, iza komandnog odzivnika (»), prikazaće se prethodna komanda. Tako napisana komanda se može izmeniti (ako treba) i izvršiti. Strelicom nadole redom se prikazuju sve prethodno upisane komande.

Ako je komanda preduga da bi stala u jedan red, upišu se tri tačke (...) i pritisnite <Enter>. Nastavak komande se piše u sledećem redu. Komanda se može protezati na više redova i sadržati do 4096 znakova.

Tačka-zarez (;)

Komanda se izvršava kada se upiše u komandni prozor i pritisne <Enter>. I re-

zultat komande se prikazuje u komandnom prozoru. Ukoliko se na kraju komande

unese tačka-zarez (;), njen rezultat se neće prikazati. To je podesno kada je rezultat

očigledan ili poznat, ili kada je veoma veliki.

Ukoliko se u isti red upiše više komandi, njihovi rezultati se neće prikazati ako se

razdvoje znakovima tačka-zarez umesto zarezima.

Znak procenta (%)

Kada se na početak reda upiše znak procenta (%), red se označava kao

komentar. Tako označeni redovi se ne izvršavaju. Ukoliko se znak % i odgovarajući

tekst (komentar) upišu iza komande (u istom redu), to neće uticati na izvršavanje

komande.

Obično nema potrebe da se u komandnom prozoru pišu komentari, ali se opisi i

objašnjenja u vidu komentara često dodaju programima.

Komanda clc

Komanda clc (clc<Enter>) briše sadržaj komandnog prozora. Posle dužeg rada u

komandnom prozoru, njegov sadržaj može postati predugačak. Komanda clc briše

sadržaj komandnog prozora i nema nikakvih drugih efekata. Na primer, sve prethodno

definisane promenljive i dalje postoje i mogu se upotrebljavati. Prethodno upisane

komande i dalje se mogu prikazati strelicom nagore.

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.7

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

1.4 ARITMETIČKE OPERACIJE SA SKALARIMA

U ovom odeljku biće razmotrene samo aritmetičke operacije sa skalarima, dakle

s pojedinačnim brojevima. Kao što će biti objašnjeno u nastavku poglavlja, brojevi se u

aritmetičkim proračunima mogu upotrebljavati direktno (kao na kalkulatoru) ili se mogu

pridružiti promenljivama, koje se potom koriste za izračunavanja. Simboli aritmetičkih

operacija su:

Operacija Simbol Primer

Sabiranje + 5 + 3

Oduzimanje - 5-3

Množenje * 5*3

Deljenje zdesna / 5/3

Deljenje sleva \ 5 \3 = 3/5

Stepenovanje ^ 5^3 (znači 53 = 125)

Svi simboli (sem deljenja sleva) su isti kao na većini kalkulatora. Za skalare je

deljenje sleva operacija inverzna deljenju zdesna. Međutim, deljenje sleva se uglavnom

upotrebljava za operacije sa nizovima.

1.4.1 Prioritet izvršavanja

MATLAB izvršava operacije prema sledećem redosledu prioriteta, koji je isti kao

na većini kalkulatora:

Prioritet Matematička operacija

Najviši Zagrade. Kada su zagrade ugneždene, prvo se izračunava unutrašnja zagrada

Drugi po redu Stepenovanje

Treći po redu Množenje, deljenje (jednak prioritet)

Četvrti po redu Sabiranje i oduzimanje

U izrazu koji sadrži više operacija, operacije višeg prioriteta izvršavaju se pre

operacija nižeg prioriteta. Ako dve ili više operacija imaju isti prioritet, izraz se

izračunava sleva udesno. Redosled izračunavanja se može promeniti zagradama.

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.8

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

1.4.2 Korišćenje MATLAB-a kao kalkulatora

MATLAB je najjednostavnije koristiti kao kalkulator, kada se u komandni prozor

upiše matematički izraz i pritisne <Enter>. MATLAB će izračunati izraz, napisati ans = i

prikazati numerički rezultat u sledećem redu. To je pokazano u vežbi 1.1.

Vežba 1.1.

Obratiti pažnju na redosled izvršavanja

Tri tačke (...) se upisuju da bi se izraz nastavio u sledećem redu

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.9

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.10

1.5. FORMATI PRIKAZA REZULTATA

Korisnik može da izabere format u kojem MATLAB prikazuje rezultat na ekranu.

U vežbi 1.1, za ispisivanje rezultata korišćen je fiksan zarez i 4 decimale; to je kratki

(short) format koji je podrazumevani format za numeričke vrednosti. Izlazni format se

zadaje komandom format, nakon čega se svi rezultati prikazuju u to formatu. U tabeli

1.2 navedeno je i opisano nekoliko dostupnih formata.

MATLAB ima više formata za prikazivanje brojeva. Pojedinosti o tim formatima se

mogu dobiti ako se u komandni prozor upiše help format. Format prikaza na ekranu ne

utiče na preciznost kojom MATLAB izračunava i pamti brojeve.1

Tabela 1.2. Formati prikaza

Komanda Opis Primer

format short Fiksni zarez sa četiri decimale za decimalne brojeve u opsegu: 0.001 <broj< 1000. Izvan ovog opsega primenjuje se format short e.

>> 290/7 ans = 41.4286

format long Fiksni zarez sa 14 decimala za decimalne brojeve u opsegu: 0.001 <=broj<= 100. Izvan ovog opsega primenjuje se format long e.

>> 290/7 ans = 41.42857142857143

format short e Naučna notacija sa četiri decimale. >> 290/7 ans = 4.1429e+001

format long e Naučna notacija sa 15 decimala. >> 290/7 ans = 4.142857142857143e+001

format short g Pet cifara s fiksnim ili pokretnim zarezom. >> 290/7 ans = 41.429

format long g Petnaest cifara s fiksnim ili pokretnim zarezom.

>> 290/7 ans = 41.4285714285714

format bank Dve decimale. >> 290/7 ans = 41.43

format compact Uklanja prazne redove da bi više redova sa sadržajem stalo na ekran.

format loose Dodaje prazne redove (obrnuto od compact).

1 U svim primerima MATLAB koda i zadacima, umesto decimalnog zareza koristi se

decimalna tačka

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

1.6. UGRAĐENE ELEMENTARNE MATEMATIČKE FUNKCIJE

Sem osnovnih aritmetičkih operacija, izrazi u MATLAB-u mogu sadržati i funkcije.

MATLAB ima veoma veliku biblioteku ugrađenih funkcija, a korisnik može definisati i

svoje funkcije. Funkcija se poziva imenom i argumentom u zagradama. Na primer,

funkcija sqrt (x) izračunava kvadratni koren (engl. square root) broja. Ime joj je sqrt, a

argument je x. Argument funkcije može biti broj, promenljiva kojoj je pridružena

numerička vrednost, ili izraz koji sadrži brojeve i/ili promenljive. I argumenti i izrazi

mogu sadržati funkcije. Vežba 1.2 pokazuje primere korišćenja funkcije sqrt (x) kada se

MATLAB upotrebljava kao kalkulator sa skalarima.

Vežba 1.2: Korišćenje ugrađene funkcije sqrt

U tabelama od 1.3 do 1.5 navedene su najčešće korišćene elementarne

matematičke funkcije ugrađene u MATLAB. Celokupan spisak funkcija razvrstanih po

kategorijama se može prikazati u prozoru sistema za pomoć (Help).

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.11

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Tabela 1.3. Elementarne matematičke funkcije

Funkcija Opis Primer

sqrt(x) Kvadratni koren >> sqrt(81) ans= 9

exp(x) Eksponencijalna funkcija (ex) >> exp(5) ans= 148.4132

abs(x) Apsolutna vrednost >> abs(24) ans = 24

log(x) Prirodni logaritam - logaritam sa osnovom e (ln)

>> log(1000) ans = 6.907S

log10(x) Logaritam sa osnovom 10 >> log10(1000) ans = 3.000

factorial(x) Faktorijel od x (x!) gde x mora biti pozitivan ceo broj

>> factorial(5) ans = 120

Tabela 1.4: Trigonometrijske funkcije

Funkcija Opis Primer

sin(x) Sinus ugla x (u radijanima) >> sin(pi/6) ans = 0.5000

cos(x) Kosinus ugla x (u radijanima) >> cos(pi/6) ans= 0.8660

tan(x) Tangens ugla x (u radijanima) >>tan(pi/6) ans= 0.5774

cot(x) Kotangens ugla x (u radijanima) >> cot(pi/6) ans = 1.7321

Inverzne trigonometrijske funkcije su asin(x), acos(x), atan(x) i acot(x).

Hiperboličke trigonometrijske funkcije su sinh(x), cosh(x), tanh(x) i coth(x). U primerima

iz prethodne tabele kao oznaka za π korišćeno je pi.

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.12

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Tabela 1.5: Funkcije za zaokruživanje

Funkcija Opis Primer

round(x) Zaokruživanje na najbliži ceo broj >> round(17/5) ans= 3

fix(x) Zaokruživanje naniže >> fix(13/5) ans= 2

ceil(x) Zaokruživanje naviše >> cei l(11/5) ans= 3

floor(x) Zaokruživanje na najbliži manji ceo broj >> floor(-9/4) ans= -3

rem (x,y) Vraća ostatak deljenja x sa y >> rem(13,5) ans = 3

sign(x) Funkcija signum: vraća 1 kada je x > 0, -1 kada je x < 0, i 0 kada je x = 0

>> sign(5) ans = 1

1.7. DEFINISANJE SKALARNIH PROMENLJIVIH

Promenljiva je ime koje sadrži najmanje jedno slovo a može biti i proizvoljna

kombinacija slova i cifara (s tim da mora započinjati slovom) kojem je pridružena

numerička vrednost. Promenljiva kojoj je pridružena numerička vrednost može se

upotrebljavati u matematičkim izrazima, funkcijama i svim MATLAB-ovim iskazima i

komandama. Promenljiva je zapravo ime određene lokacije u memoriji. Kada se

definiše nova promenljiva MATLAB joj dodeljuje odgovarajuću lokaciju u memoriji gde

se čuva njoj pridružena vrednost. Svaki put kada se upotrebi ime promenljive, MATLAB

koristi njoj dodeljenu vrednost. Ako se promenljivoj dodeli nova vrednost, menja se

sadržaj odgovarajuće lokacije u memoriji.

1.7.1. Operator dodele

U MATLAB-u se znak = naziva operatorom dodele (assignment operator). Ovaj

operator dodeljuje vrednost promenljivoj.

Ime_promenljive = numerička vrednost ili izraz

Levo od operatora dodele može biti samo jedno ime promenljive.

Desno može biti broj ili izraz koji sadrži brojeve i/ili promenljive kojima su pret-

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.13

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

hodno dodeljene numeričke vrednosti. Kada se pritisne taster Enter, numerička

vrednost s desne strane dodeljuje se promenljivoj, a MATLAB u sledeća dva reda

prikazuje promenljivu i njoj dodeljenu vrednost.

Kako radi operator dodele?

Poslednji iskaz (x=3x-12) ilustruje razliku između operatora dodele i znaka

jednakosti. Kada bi u tom iskazu znak = označavao jednakost, vrednost x bi bila 6

(kada se reši jednačina po x).

Sledi primer upotrebe prethodno definisane promenljive u definisanju nove

promenljive.

Ako se na kraj reda upiše tačka-zarez pa zatim pritisne <Enter>, MATLAB neće

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.14

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

prikazati promenljivu i njoj dodeljenu vrednost, ali će joj vrednost ipak dodeliti i smestiti

je u memoriju.

Kada se upiše ime postojeće promenljive i pritisne <Enter>, u sledeća dva reda

prikazaće se ime i vrednost te promenljive.

Primer sa tačkazarezom

U isti red se može upisati nekoliko dodeljenih vrednosti. Razdvajaju se zarezima

(posle zareza se može otkucati više razmaka). Kada se pritisne <Enter>, vrednosti se

dodeljuju sleva udesno, a promenljive i njima dodeljene vrednosti prikazuju se u

sledećim redovima. Ukoliko se umesto zareza otkuca tačka-zarez, vrednost

promenljive neće biti prikazana. Na primer, promenljivama a, b i c vrednosti se mogu

dodeliti u istom redu

Postojećoj promenljivoj može se dodeliti novu vrednost. Na primer:

V

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.15

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Već definisana promenljiva može se upotrebiti kao argument funkcije. Na primer:

1.7.2. Pravila za imena promenljivih

Imena promenljivih u MATLAB-u mogu imati do 63 znaka, mogu sadržati slova,

cifre i podvlake, i moraju počinjati slovom. MATLAB pravi razliku između velikih i malih

slova, na primer, AA, Aa, aA i aa su imena četiri različite promenljive.

Treba izbegavati korišćenje imena rezervisanih reči, tj. nazive ugrađenih funkcija

za promenljive (cos, sin, exp, sqrt itd.). Funkcija čije je ime upotrebljeno za definisanje

promenljive, više se ne može koristiti.

1.7.3. Unapred definisane promenljive

Pojedine često korišćene promenljive automatski su definisane čim se MATLAB

pokrene. Među njima su:

ans Promenljiva kojoj se dodeljuje vrednost poslednjeg izraza koji nije dodeljen nekoj drugoj promenljivoj (vežba 1.1). Ako korisnik ne dodeli vrednost izraza nekoj promenljivoj, MATLAB ga automatski dodeljuje promenljivoj ans.

pi Broj π

eps Najmanja razlika izmedu dva broja koju MATLAB još uvek može da prepozna. Jednaka je 2A(-52), što je približno 2.2204e-016.

inf Označava beskonačno veliku vrednost.

i Definisano kao imaginarna jedinica, što je: 0 + 1 .0000i.

j Isto što i promenljiva i.

NaN Skraćeno od Not-a-Number (nije broj). Upotrebljava se kada MATLAB ne može da izračuna numeričku vrednost. Na primer, rezultat operacije 0/0.

Vrednost unapred definisanih promenljivih može biti proizvoljno redefinisana.

Promenljive pi, eps i inf obično se ne redefinišu. Ostale unapred definisane promen-

ljive (i i j), katkada se redefinišu (obično unutar petlji za indeksne promenljive -

brojače), ukoliko se u datom slučaju ne koriste kompleksni brojevi.

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.16

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

1.8. KOMANDE ZA RAD S PROMENLJIVAMA

Sledeće komande se koriste za uklanjanje promenljivih odnosno dobijanje

podataka o svim postojećim promenljivama. Kada se neka od njih upiše u komandni

prozor i pritisne Enter, prikazaće se podaci ili izvršiti jedan od dole navedenih

postupaka.

Komanda Ishod

Clear Uklanja sve promenljive iz memorije.

clear x y z Uklanja iz memorije promenljive x, y i z.

Who Prikazuje imena promenljivih koje postoje u memoriji.

Whos Prikazuje imena promenljivih koje postoje u memoriji, njihovu veličinu, klasu i veličinu u bajtovima.

1.9. PRIMERI PRIMENE MATLAB-A

Vežba: Trigonometrijska formula

Trigonometrijska formula data je jednačinom: x

xxxtan2

sintan2

cos2 += . Proveriti da

li je formula ispravna izračunavanjem vrednost obe strane jednačine, uz zamenu

=x .

Vežba: Geometrija i trigonometrija

Četiri kružnice su smeštene kao na slici. U svakoj tački dodira kružnice su

tangentne jedna na drugu. Odrediti rastojanje između centara C2 i C4.

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.17

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Poluprečnici kružnica su: R1 = 16 mm, R2 = 6.5 mm, R3 = 12 mm i R4 = 9.5 mm

Linije koje povezuju centre kružnica čine četiri trougla. Poznate su dužine svih

stranica dva takva trougla, ∆C1C2C3 i ∆C1C3C4. Taj podatak se koristi za izračunavanje

uglova 1γ i 2γ tih trouglova pomoću kosinusne teoreme. Na primer, 1γ se izračunava

iz jednačine:

(C2C3)2 = (C1C2)2 + (C1C3)2-2(C1C2)(C1C3)cos 1γ

Zatim se izračuna dužina stranice C2C4 pomoću trougla ∆C1C2C4 . I tu pomaže

kosinusna teorema (poznate su dužine C1C2 i C1C3, a ugao 3γ je zbir uglova 1γ i 2γ

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.18

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Vežba: Provođenje toplote

Telo početne temperature T0 smešteno je u trenutku t=0 u prostor konstantne

temperature Ts. Temperatura tela će se menjati prema jednačini:

T=TS + (T0-TS) e-kt

gde je T temperatura tela u trenutku t, a k je konstanta. Konzerva piva

temperature 120° F stavljena je u frižider unutrašnje temperature 38° F. Izračunati

temperaturu konzerve posle tri sata (zaokruženo na najbliži stepen). Pretpostaviti da je

k = 0.45. Najpre se definišu sve promenljive, a potom se izračuna temperatura jednom

MATLAB-ovom komandom.

Vežba: Složeno obračunavanje kamate

Stanje B na računu posle t godina štednje, ako je glavnica P uložena uz godišnju

kamatnu stopu r, a kamata se pripisuje n puta godišnje, iznosi:

nt

nrPB ⎟⎠⎞

⎜⎝⎛ += 1 (1)

Ako se kamata pripisuje jednom godišnje, stanje na računu iznosi:

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.19

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.20

( trPB += 1 ) (2)

Na prvi račun je uloženo 5.000 € na 17 godina uz godišnje pripisivanje kamate.

Na drugi račun uložen je isti iznos, ali uz mesečno pripisivanje kamate. Kamatna stopa

za oba računa je 8.5%. Koliko godina i meseci štednje na drugom računu treba da

prođe da bi njegovo stanje dostiglo stanje prvog računa nakon 17 godina štednje.

Rešenje:

1. Na osnovu jednačine (2) izračunati B za 5.000 € uloženih na 17 godina

uz godišnje pripisivanje kamate

2. Izračunati t za B izračunato u prethodnom koraku, pomoću formule (1)

za mesečno pripisivanje kamate

3. Pretvoriti t u odgovarajući broj godina i meseci

>> P=5000;r=0.085;ta=17;n=12; >> B=P*(1+r)^ta >> t=log(B/P)/(n*log(1+r/n)) >> godina=fix(t) >> meseci=ceil((t-godina)*12)

Skripta iz Informatike II Rudarsko-geološki fakultet Beograd

Vežbe za samostalan rad

U pravouglom trouglu sa stranicama čije su katete 11 cm i 21 cm izračunati hipotenuzu i uglove (u stepenima). (acos)

Rastojanje d od tačke (x0,y0) od linije Ax+By+Cz=0 dato je formulom:

22

00

BA

CByAxd

+

++= . Izračunati rastojanje tačke (2,3) od linije 3x+5y-6=0.

Prvo definisati promenljive A,B,C, x0, y0, pa potom izračunati d. (abs,sqrt)

Izračunati: 7

)8ln6

tan()

87sin()

65(cos2

πππ

+

Prof.dr Ivan Obradović, dipl.mat, Mr. Ranka Stanković, dipl.mat 1.21