69
UNIVERZITET SINGIDUNUM Dr Olivera Nikolić Kvantitativne metode - Priručnik za laboratorijske vežbe - MATLAB 7

PRIRUCNIK vezbe

Embed Size (px)

Citation preview

Page 1: PRIRUCNIK vezbe

UNIVERZITET SINGIDUNUM

Dr Olivera Nikolić

Kvantitativne metode

- Priručnik za laboratorijske vežbe -

MATLAB 7

FAKULTET ZA FINANSIJSKI MENADŽMENT I OSIGURANJEFAKULTET ZA POSLOVNU INFORMATIKU

FAKULTET ZA TURISTIČKI I HOTELIJERSKI MENADŽMENT

Page 2: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Valjevo, 2005

2

Page 3: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

UNIVERZITET SINGIDUNUMBEOGRAD

3

FAKULTET ZA FINANSIJSKI MENADŽMENT I OSIGURANJE FAKULTET ZA POSLOVNU

INFORMATIKU

FAKULTET ZA TURISTIČKI I HOTELIJERSKI MENADŽMENT

Page 4: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

UVOD

Postoje dve klase softverskih paketa za rešavanje matematičkih problema: programi zasnovani na simboličkom rešavanju i programi zasnovani na numeričkom rešavanju problema. Tipičan predstavnik prve klase programa je Mathematic, a druge MATLAB.

MATLAB je dostupan u više verzija koje su prilagođene različitim računarskim platformama – od PC i Macintosh računara, preko UNIX radnih stanica do Convex i Cray računara. Predstavlja najčešće korišćen paket u svojoj oblasti. Verzije MATLAB-a za različite računarske sisteme se razlikuju donekle samo po korisničkom interfejsu – sve komande se jednako izvršavaju na svim platformama.

MATLAB je koncipiran kao proširiv programski paket – pored osnovnog paketa moguće je nabaviti i dodatne module specijalizovane za rad u oblastima kao što su automatsko upravljanje (Control System Toolbox), obrada signala (Signal Processing Toolbox) ili simulacija neuronskih mreža (Neural Network Toolbox).

Osnovno okruženje MATLAB-a predstavlja tekstualni prozor u kome se zadaju MATLAB komande. Komande se izvršavaju neposredno nakon unosa. Poseban simbol (>>) predstavlja MATLAB Prompt. Pored toga, moguće je pisati i programe u programskom jeziku kojeg nudi MATLAB. Sam MATLAB programski jezik je nalik drugim proceduralnim jezicima, izuzimajući njegovu prilagođenost radu sa matricama.

Prva, izvorna verzija MATLAB-a, napisana je kasnih sedamdesetih, na univerzitetu New Mexico i Stanford Univerzitetu, sa osnovnom namenom da služi kao pomoćno sredstvo na kursevima iz linearne algebre, i numeričke analize. Zamišljeno je da ovaj paket bude nadgradnja FORTRAN-a koja bi koristila gotove potprograme FORTRAN-a. Današnje mogućnosti MATLAB-a daleko prevazilaze tadašnji originalni "MATrix LABoratory". Ogroman broj naučnih i tehničkih disciplina neizostavno zahtevaju korišćenje MATLAB-a. U MATLAB-u se vrlo jednostavno mogu kreirati sopstvene funkcije koje daju rešenja na postavljene zahteve. Skup ovako kreiranih funkcija (m-fajlova) objedinjenih u jednu celinu predstavlja osnovnu strukturu toolboxa. Toolboxovi dakako predstavljaju mnogo više od kolekcije upotrebljivih fajlova, jer je u njima objedinjen trud velikih svetskih istraživača u raznim područjima nauke.

4

Page 5: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

1. OSNOVNI PRINCIPI RADA U MATLAB-u

Nakon što ste pokrenuli MATLAB na vašem monitoru se pojavljuje okvir prikazan na sledećoj slici:

1.1. ARITMETIČKE OPERACIJE SA SKALARIMA

U aritmetičkim proračunima brojevi se mogu upotrebljavati direktno, kao na kalkulatoru ili se mogu pridružiti promenljivima koje se mogu koristiti za izračunavanja.

Simboli aritmetičkih operacija su:

Operacija Simbol PrimerSabiranje + 5+3Oduzimanje - 5-3Množenje * 5*3Deljenje s desna / 5/3Deljenje s leva \ 5\3=3/5Stepenovanje ^ 5^3 (znači 53=125)

Tabela 1.

Treba naglasiti da su svi simboli, sem deljenja s leva, isti kao u većini kalkulatora. Za skalare je deljenje s leva operacija inverzna deljenju s desna. Deljenje s leva se uglavnom upotrebljava za operacije sa nizovima.

5

Page 6: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

1.2. PRIORITET IZVRŠAVANJA

MATLAB izvršava operacije prema sledećem redosledu prioriteta:

Prioritet Matematička operacija

Najviši Zagrade. Kada su ugneždene, prioritet ima unutrašnja zagrada

Drugi po redu StepenovanjeTreći po redu Množenje i deljenjeČ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. Izraz se izračunava s leva u desno ukoliko dve ili više operacija imaju isti prioritet. Zagradama se može promeniti redosled izračunavanja.

1.3. KORIŠĆENJE MATLAB-A KAO KALKULATORA

PRIMER 1: Ako u komandni prozor upišete matematički izraz i pritisnete Enter, MATLAB će izračunati taj izraz, napisati ans = i prikazati numerički rezultat u sledećem redu.

>> 7+8/2ans = 11>> (7+8)/2ans = 7.5000>> 4+5/3+2ans = 7.6667>> 5^3/2ans = 62.5000>> 27^(1/3)+32^0.2ans = 5>> 27^1/3+32^0.2ans = 11>>0.7854-(0.7854)^3/(1*2*3)+0.785^5/(1*2*3*4*5)-(0.785)^7/(1*2*3*4*5*6*7)ans = 0.7071

6

Prvo se izračunava 8/2

Prvo se izračunava 7+8

Prvo se izračunava 5/3

Prvo se izračunava 5^3 a zatim /2

Prvo se izračunava 1/3, zatim 27^(1/3) i 32^0.2; poslednje je +

Page 7: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

1.4. UGRAĐENE ELEMENTARNE MATEMATIČKE FUNKCIJE

Izrazi u MATLAB-u mogu da sadrže i funkcije osim osnovnih aritmetičkih operacija. MATLAB ima veliku biblioteku ugrađenih funkcija, a i korisnik može definisati svoje funkcije. Funkcija se poziva imenom i argumentom u zagradama.

Na primer, funkcija sqrt (x) izračunava kvadratni koren broja (engl. square root). Ime funkcije je sqrt a argument joj je x. Argument funkcije može biti broj, promenljiva kojoj se pridružena numerička vrednost ili izraz koji sadrži brojevei/ili promenljive.

PRIMER 2: Izračunati sledeće izraze: , , ,

>> sqrt(64)ans =8

>> sqrt(50+14*3)ans =9.5917

>> sqrt(54+9*sqrt(100))ans =12

>> (15+600/4)/sqrt(121)ans =15

U sledećoj tabeli su navedene najčešće korišćene elementarne matematičke funkcije. Celokupan spisak funkcija razvrstanih po kategorijama možete prikazati u prozoru za pomoć (Help).

7

Argument je broj

Argument je izraz

Argument sadrži funkciju

Funkcija je deo izraza

Page 8: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Funkcija Opis Primersqrt(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.9078

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

factorial(x)

Faktorijel od x (x!)(x mora biti pozitivan ceo broj).

>> factorial(5)ans = 120

Tabela 2. Elementarne matematičke funkcije

Funkcija Opis Primersin (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

Tabela 3. Trigonometrijske funkcije

1.5. FORMATI PRIKAZA REZULTATA

Korisnik može izabrati format u kojem MATLAB prikazuje rezultat na ekranu. Izlazni format se zadaje komandom format. Prikaz svih formata u MATLAB-u sa pojedinostima možete dobiti kada u komandni prozor upišete help format.

8

Page 9: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

format long Fiksni zarez sa 14 decimala za decimalne brojeve u opsegu: 0.001 broj 100 .

>> format long,530/7ans = 75.71428571428571

format short Fiksni zarez sa 4 decimala za decimalne brojeve u opsegu: 0.001 broj 1000 .

>> format short,530/7ans = 75.7143

format long e

Naučna notacija sa 15 decimala.

>> format long e,530/7ans = 7.571428571428571e+001

format short e

Naučna notacija sa četiri decimale.

>> format short e,530/7ans = 7.5714e+001

format bank Dve decimale. >> format bank,530/7ans = 75.71

Tabela 4. Formati prikaza rezultata

1.6. DEFINISANJE SKALARNIH PROMENLJIVIH

Promenljiva je ime od jednog slova ili proizvoljne kombinacije slova i cifara (s početnim 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 definišete novu promenljivu, MATLAB joj dodeljuje odgovarajuću lokaciju u memoriji gde čuva njoj pridruženu vrednost.

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

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 prethodno dodeljene numeričke vrednosti.

PRIMER 3: Izračunati x=5x-20 za x=30.

>> x=30x =

9

Ime_promenljive = numerička vrednost ili izraz

Broj 30 dodeljen je promenljivoj x

Page 10: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

30

>> x=5*x-20x = 130>>

PRIMER 4: Prikaz vrednosti izraza u MATLAB-u može se prikazati drugačije nego u prethodnim primerima. Ukoliko nekoj promenljivoj dodelite odgovarajuću vrednost i iza stavite '' ; '' dobićete prikaz kao na slici:

>> a=15;>> b=30;>> c=2*a+50-b/3+(a/5)^2;>> cc = 79

Ovaj način prikaza sa '';'' na kraju se često koristi u radu kada nas međurezultati ne interesuju. Ovako se ubrzava rad na računaru, jer se eliminiše ispisivanje velikog broja (često nepotrebnih) međurezultata.

Imena promenljivih u MATLAB-u 7 mogu imati do 63 znaka za razliku od verzije MATLAB 6.0 gde je taj broj bio 31. Imena promenljivih moraju počinjati slovom i mogu, pored slova, sadržati cifre i podvlake. MATLAB pravi razliku između velikih i malih slova i treba izbegavati korišćenje imena ugrađenih funkcija za promenljive (na primer cos, sin, exp, sqrt).

1.7. UNAPRED DEFINISANE PROMENLJIVE

Pojedine često korišćene promenljive automatski su definisane čime se MATLAB pokrene. Osnovne konstante su:

ans Promenljiva kojoj je dodeljena vrednost poslednjeg izraza koji nije bio dodeljien nekoj promenljivoj. Skraćeno od answer (engl.). Ako se ne dodeli vrednost izraza promenljivoj, automatski se snima u ans.

pi Broj π.eps Dozvoljena tolerancija greške, odnosno najmanja razlika između dva broja

koju MATLAB može da uoči. inf Beskonačno velika vrednost ( ), ili rezultat 1/0i Definisano kao , što iznosi j Definisano kao , što iznosi NaN Skraćenica od Not-a-Number (nnije broj), rezultat operacije 0/0

Tabela 5. Osnovne konstante

10

MATLAB prikazuje ime promenljivei njoj dodeljenu vrednost

Page 11: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

PRIMER 5: Izračunati .

>> x=5+(3*5+1/pi)x = 20.3183

Broj je definisan kao stalna veličina i dovoljno je uneti samo pi.

Kao što smo već napomenuli imaginarna jedinica je definisana kao stalna veličina. Označava se sa ili .

>> i=sqrt(-1)i = 0 + 1.0000i

PRIMER 6: Napisati broj z=5+3i

>> z=5+3*iz = 5.0000 + 3.0000i

PRIMER 7: Napisati broj

>> w=5*exp(i*pi/5)w = 4.0451 + 2.9389i

PRIMER 8: Izračunati .

>> sin(5*pi/2)ans = 1

PRIMER 9: Za i izračunati vrednost izraza .

>> z=log(x)+sqrt(y)z = 10.7703

PRIMER 11: Izračunati .

11

Page 12: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

>> x=0/0Warning: Divide by zero.

x = NaN

1.8. BRISANJE I ČUVANJE PODATAKA

Naredba Opisclear Briše podatke iz radne memorije.clear x Briše se promenljiva x.save Čuva podatke u fajlu na disku za kasniju upotrebu.save ime Pamti sve veličine iz radnog prostora pod zadatim imenom.quit, exit Ostvaruje se prekid programa.load Predstavlja obrnutu naredbu od save

Tabela 7. Naredbe za brisanje i čuvanje podataka

12

Page 13: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Pregled urađenih vežbi

Redni broj

vežbeNaziv vežbe

Dat

um

Stu

den

t

Dem

onst

rato

r

Pro

feso

r

Napomene

1 Izračunajte:

2

Izračunajte:

3 Izračunajte:

4

Izračunajte:

5 Izračunajte:

6Definišite promenljivu x kao

x=8,7 i izračunajte:

7

Definišite promenljivu x kao x=15,5 i izračunajte:

8

Definišite promenljive x i z kao x=10,7 z=5,8 i izračunajte:

9Proveriti: za

10 za

13

Page 14: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

2. DVODIMENZIONALNI GRAFIKONI

MATLAB poseduje velike mogućnosti grafičkog predstavljanja. Studenti se mogu upoznati sa ostalim mogućnostima grafičkog predstavljanja koristeći naredbe help i demo.

2.1. GRAFIČKO PREDSTAVLJANJE FUNKCIJA JEDNE PROMENLJIVE

Osnovna naredba za crtanje grafika je naredba plot.Najjednostavniji način za grafičko predstavljanje, sa linearnom podelom na

osama, je korišćenje naredbe plot(x). Prilikom crtanja otvara se grafički prozor za koji važe ista pravila kao kod Windows prozora.

PRIMER 1: Nacrtati vektor dat svojim koordinatama.

>> x=[1,3,5,7,25,33,51];plot(x)

Iz ovog primera možemo da vidimo da je MATLAB za vrednosti nezavisno promenljive x uzeo redni broj elementa, a njihove slike su vrednosti vektora x tj. tačke nacrtanog grafika imaju koordinate (1,x(1)), (2,x(2))...

U opštem slučaju naredba plot(x) crta grafik spajajući tačke (i,x(i)), gde je i=1,2,3,...N, gde je N dužina vektora.

Nezavisno promenljiva može biti zadata posebno. U tom slučaju se koristi naredba plot(x,y).

PRIMER 2: Nacrtati vektor zadat koordinatama.

>>x=[1 2 3 4 5];y=[-1,0,3,-5,7];plot(x,y)

14

Page 15: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

PRIMER 3: Nacrtati funkciju y = xcos x(πx)3 u datom opsegu.

>> x=-10:.1:10;>> y=x.*cos(pi*x).^3;>> plot(x,y)

PRIMER 4: Koristeći MATLAB možemo na jednom grafiku nacrtati više funkcija kao što je prikazano u sledećem primeru.

>> x1=-2:2:2;y1=2*x1;>> x2=-2:.2:2;y2=x2.*exp(x2);>> plot(x1,y1,x2,y2)

15

Page 16: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Vrste linija i oblik mogu takođe da se zadaju naredbom plot na sledeći način:plot(x,z,'vrsta linije'). Tabela 8. daje mogućnost izbora.

Simbol linije Boja. tačka y žutao krug m ljubičastax x-znak c cijan+ plus r crvena* zvezda g zelena- puna linija b plava-. začka-crta k crna: tačkasta w bela-- isprekidana linija

Tabela 8.

PRIMER 5: Nacrtati funkciju y = x4-3x-3 u domenu [-5,5]

>> f='x^4-3*x-3';fplot(f,[-5,5])

16

Page 17: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Naredba ezplot omogućava crtanje funkcije u definisanom domenu: -2π < x < 2π.

Domen funkcije može da se menja i tada naredba ima oblik ezplot(f,[a,b]). Ovom naredbom se crta grafik funkcije na intervalu .

PRIMER 6: Nacrtati funkciju .

>> ezplot('y=x*exp(x)')

Druga mogućnost da simbolički zadamo funkciju je da prvo definišemo nezavisni promenljivu, koristeći naredbu syms.

PRIMER 7: Nacrtati funkciju

17

Page 18: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

>>ezplot('1/y-log(y/2)+log(-1+5*y)+x+1')

PRIMER 8: Izračunati

>> ezplot('y=x^3/(x^2-4)')

PRIMER 9: Izračunati

>> ezplot ('exp(x)/x^2')

18

Page 19: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

PRIMER 10: Izračunati .

>> ezplot('y=x^2*log(x)')

2.2. OZNAČAVANJE GRAFIKA I OSA

MATLAB nudi mogućnosti označavanja osa, pisanja različitog teksta i razne druge mogućnosti. Neke od njih su:

Oznaka Opistitle Naziv grafika.xlabel Naziv x ose.ylabel Naziv y ose.text Naziv teksta u grafiku.gtex Tekst na poziciji označenenoj mišem.grid Crtanje linija mreže.

19

Page 20: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Tekst u prethodnim naredbama piše se u zagradi pod navodnicima. Naredba hold on zadržava sliku na ekranu. Suprotna njoj je naredba hold off.

PRIMER 11: Nacrtati funkciju z=sin x i obeležiti sliku koristeći naredbe iz predhodnog teksta.

>> syms x>> y=sin(x);>> ezplot(y)>> hold on>> title('sinus')>> xlabel('x osa')>> ylabel('y osa')>> text(0,0,'nula')>> gtext('max')>> grid

20

Page 21: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Zadaci za vežbu

1. Ispitati tok i nacrtati grafik funkcije:

A.

a) b) v)

g) d) đ)

e) ž) z)

i) j) k)

l) lj) m)

n) nj) o)

p) r) s)

B.

a) b) v)

g) d) đ)

e) ž) z)

i) ;

C.

a) b) v)

g) d) đ)

e) ž) z)

21

Page 22: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

D.

a) b) v)

g)

22

Page 23: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Pregled urađenih vežbi

Redni broj

vežbeNaziv vežbe

Dat

um

Stu

den

t

Dem

onst

rato

r

Pro

feso

r

Napomene

Nacrtati grafik funkcija i sa grafika uneti podatke za:domen, znak,nule, parnost (neparnost), monotonost, ekstremne vrednosti, konveksnost (konkavnost), prevojne tačke

1

2

3

4

5

6

7

8

9

10

23

Page 24: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

NAPOMENE

Redni broj

vežbeNaziv vežbe Napomene

Nacrtati grafik funkcija i sa grafika uneti podatke za:domen, znak,nule, parnost (neparnost), monotonost, ekstremne vrednosti, konveksnost (konkavnost), prevojne tačke

1

2

3

4

5

6

7

8

9

10

24

Page 25: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

3. EKONOMSKE FUNKCIJE

3.1. FUNKCIJA PRIHODA

PRIMER 1: Data je funkcija tražnje x=10-0,5p.a) Na osnovu grafika analiziraj funkciju.b) Pronaći nivo proizvodnje xp za koji se postiže maksimalan ukupan prihod P i

utvrditi njegov iznos.c) Proanalizirati elastičnost ukupnog prihoda P u odnosu na x .

25

Page 26: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

PRIMER 2: Data je funkcija tražnje p=20-2x.a) Pronaći nivo proizvodnje x kod koga se postiže maksimalan ukupan prihod P

i utvrditi njegov iznos.b) Algebarski, tabelarno i grafički analizirati elastičnost ukupnog prihoda P u

odnosu na nivo proizvodnje x.c) Na grafikonu nacrtati funkcije: tražnje, ukupnog prihoda i graničnog

prihoda, uz prilaganje odgovarajuće algebarske analize.

26

Page 27: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

3.2. FUNKCIJA TROŠKOVA

PRIMER 3: Za funkciju troškova odrediti proizbvodnju za koju su prosečni troškovi jednaki graničnom.

27

Page 28: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

PRIMER 4: Data je funkcija ukupnih troškova . Pokazati da su minimalni prosečni troškovi jednaki ukupnim graničnim troškovima.

28

Page 29: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

3.3. FUNKCIJA DOBITI

PRIMER 5: Data je funkcija tražnje p=9-1,5x i funkcija ukupnih troškova C=6+1,5xa) Pronaći funkciju ukupnog prihoda P=P(x) i na istom grafiku nacrtati funkcije

p=p(x), C=C(x) i P=P(x); b) Odrediti intervale nerentabilne, rentabilne i najrentrabilnije proizvodnje.c) Odrediti funkciju ukupne dobiti D=D(x).

29

Page 30: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

4. MATRICE

Pošto je matrica osnovni element MATLAB-a postoji mnogo načina za manipulisanje i rad sa matricama. Kada se matrica definiše, odnosno unese u program, MATLAB omogućuje čitav niz postupaka kojima se unesena matrica po volji može menjati. Ovo je u stvari ključ za efikasno korišćenje MATLAB-a.

4.1. UNOS MATRICA I VEKTORA

Matrica je polje brojeva koje se definiše sa dva indeksa gde prvi indeks označava broj vrsta a drugi broj kolona. Elementi se uglavnom unose po vrstama,

a zagrade [ , ] označavaju listu elemenata. U okviru liste elementi se razdvajaju zarezom ili razmakom. Taster Enter ili ; se korise za odvajanje vrsta matrice.

Vektori su matrice vrste ili kolone.

PRIMER 1: Uneti matricu

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

Druga mogućnost unosa je:

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

PRIMER 2: Uneti vektor

>> x=1:10;xx = 1 2 3 4 5 6 7 8 9 10

Naredba length izračunava dužinu vektora.

>> length(x)ans = 10

PRIMER 3: Uneti vektor x.

30

Page 31: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

>> x=1:10;x=[x x+2]x = 1 2 3 4 5 6 7 8 9 10 3 4 5 6 7 8 9 10 11 12

PRIMER 4: Uneti matricu

>> a=[-2,1;3,7];b=[3,-5;6,2];Z=a+b*iZ = -2.0000 + 3.0000i 1.0000 - 5.0000i 3.0000 + 6.0000i 7.0000 + 2.0000i

Matricu možemo uneti i na sledeći način:

>> Z=[-2+3*i,1-5*i;3+6*i,7+2*i]

Z =

-2.0000 + 3.0000i 1.0000 - 5.0000i 3.0000 + 6.0000i 7.0000 + 2.0000i

Jedan element matrice se može izdvojiti uz pomoć komande A(i,j). Ako želimo da izdvojimo celu vrstu ili kolonu matrice koristimo komande: A(k,:) , A(:,k), gde k predstavlja traženu vrstu odnosno kolonu.

PRIMER 5: Iz matrice izdvojiti element u prvoj vrsti i drugoj

koloni.

>> A=[-2 1 -5;3 6 7;3 -5 4];>> A(1,2)ans = 1

Ako želimo da izdvojimo celu neke matrice to svakako možemo uraditi koristeći komande: A(k,:) i A(:,k) gde k predstavlja traženu vrstu ili kolonu. Dimenzije matrice određuju se komandom size (A) ili [m,n]=size(A) .

PRIMER 6: Odrediti dimenzije matrice iz prethodnog primera koristeći naredbu size(A).

>> size(A)ans = 3 3

31

Page 32: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Zamena elemenata matrice A brojevima između 21 i 29 jedinišnim korakom ostvaruje se na sledeći način:

PRIMER 7:

>> A(:)=21:29A = 21 24 27 22 25 28 23 26 29

4.2. MATRICE SPECIJALNIH STRUKTURA

U MATLAB-u postoje posebne naredbe za matrice specijalnih struktura kao što su eye, ones, zeros, magic, diag i druge.

Naredba eye daje jediničnu matricu.

Funkcija Opiseye(n) Daje jediničnu matricueye(m,n) Daje jediničnu matricueye(size(A)) Daje jediničnu matricu dimenzija date matrice

Tabela 8. Naredba eye

PRIMER 8: Odrediti jediničnu matricu sa tri vrste i dve kolone koristeći naredbe iz prethodne tabele.

>> A=eye(3,2)A = 1 0 0 1 0 0

PRIMER 9: Koristeći dimenzije matrice iz primera 5, odrediti jediničnu matricu.

>> A=[-2 1 -5;3 6 7;3 -5 4];X=eye(size(A))X = 1 0 0 0 1 0 0 0 1

32

Page 33: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Naredba ones daje matricu čiji su svi elementi jedinice.

Funkcija Opisones(n) Daje matricu čiji su svi elementi jediniceones(m,n) Daje matricu čiji su svi elementi jediniceones(size(A)) Daje matricu dimenzija date matrice A čiji su svi elementi jedinice

Tabela 9. Naredba ones

PRIMER 10: Formirati kvadratnu matricu reda 3 čiji su svi elementi jednaki 1.

>> A=ones(3)A = 1 1 1 1 1 1 1 1 1

Naredba zeros daje matricu čiji su svi elementi nule.

Funkcija Opiszeros (n) Daje matricu čiji su svi elementi nulezeros (m,n) Daje matricu čiji su svi elementi nulezeros (size(A)) Daje matricu dimenzija date matrice A čiji su svi elementi nule

Tabela 10. Naredba zeros

PRIMER 11: Formirati matricu sa tri vrste i dve kolone čiji su svi elementi jednaki 0.

>> A=zeros(3,2)A = 0 0 0 0 0 0

4.3. OPERACIJE SA MATRICAMA

U osnovne operacije sa matricama spadaju sabiranje, oduzimanje, množenje, stepenovanje, deljenje i transponovanje.

SABIRANJE I ODUZIMANJE MATRICA

Operacije sabiranja (+) i oduzimanja (-) mogu biti izvedene nad nizovima jednakih dimenzija (koji imaju jednak broj vrsta i kolona). Zbir ili razlika dva niza dobija se sabiranjem odnosno oduzimanjem njihovih odgovarajućih elemenata.

PRIMER 12: Izračunati C=A+B.

33

Page 34: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

>>A=[1,-2,3;4,-5,6;-7,8,-9],B=[-1,8,-2;6,3,-4;3,-2,1],C=A+BA = 1 -2 3 4 -5 6 -7 8 -9B = -1 8 -2 6 3 -4 3 -2 1C = 0 6 1 10 -2 2 -4 6 -8

PRIMER 13: Izračunati B=A-3.

>> A=[1,-2,3;4,-5,6;-7,8,-9],B=A-3A = 1 -2 3 4 -5 6 -7 8 -9B = -2 -5 0 1 -8 3 -10 5 -12

MNOŽENJE MATRICA

Ako su A i B dve matrice, operacija A*B može biti izvedena samo ako je broj kolona matrice A jednak broju vrsta matrice B. Rezultat je matrica koja ima isti broj vrsta kao A i isti broj kolona kao B.

PRIMER 14: Izračunati C=A*B.

>> A=[1,4,3;2,6,1;5,2,8],B=[1,2;2,-3;2,6],C=A*A1A = 1 4 3 2 6 1 5 2 8B = 1 2 2 -3 2 6C = 15 8 16 -8 25 52

34

Definišemo matrice A i B dimenzija 3x3

Page 35: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Množenje matrica skalarom se vrši tako što svaki element te matrice pomnožimo vrednošću datog skalara.

PRIMER 15: Odrediti C=3A.

>> A=[1,4,3;2,6,1;5,2,8],C=3*AA = 1 4 3 2 6 1 5 2 8C = 3 12 9 6 18 3 15 6 24

TRANSPONOVANJE MATRICA

Transponovanje matrica sa realnim koeficijentima, je zamena vrsta i kolona i vrši se pomoću operatora ' .

PRIMER 16: Transponovati datu matricu A, gde je E novonastala matrica.

>> A=[1,4,3;2,6,1;5,2,8];E=A'E = 1 2 5 4 6 2 3 1 8

PRIMER 17: Transponovanje skalara i vektora se vrši na sledeći način:

>> a=[3.5]',x=[-3 5 4]',y=[-5;-3;-4]'a = 3.5000x = -3 5 4y = -5 -3 -4

PRIMER 18: Ukoliko radimo sa matricom čiji su elementi kompleksni brojevi, MATLAB transponuje matricu i istovremeno konjuguje svaki njen element tj. vrši kompleksnu transpoziciju.

>> Z=[-2+3*i,1-5*i;3+6*i,7+2*i],T=Z'Z = -2.0000 + 3.0000i 1.0000 - 5.0000i

35

Page 36: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

3.0000 + 6.0000i 7.0000 + 2.0000iT = -2.0000 - 3.0000i 3.0000 - 6.0000i 1.0000 + 5.0000i 7.0000 - 2.0000i

DETERMINANTA MATRICE

Operator det služi za izračunavanje determinante matrice.

PRIMER 19: Izračunati determinantu kvadratne matrice A.

>> A=[ 1 -2 3;4 -5 6; 7 8 -9];>> D=det(A)D = 42

INVERZNA MATRICA

Operatorom inv(A) se određuje inverzna matrica date matrice A.

PRIMER 20: Naći inverznu matricu, matrice A.

>> A;Ai=inv(A)Ai = -0.0714 0.1429 0.0714 1.8571 -0.7143 0.1429 1.5952 -0.5238 0.0714

PRIMER 21: Ukoliko želimo da izračunamo inverznu matricu matrice čija je determinanta jednaka 0, MATLAB daje sledeći odgovor:

>> A=[ 1 2 3;4 5 6; 7 8 9];D=det(A)D = 0>> inv(A)Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.541976e-018.ans = 1.0e+016 * -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504

36

Page 37: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Ovo pokazuje još jednu prednost MATLAB-a da vam ukazuje na grešku pri radu.

U MATLAB-u ne postoji poseban operator za izračunavanje adjungovane matrice, ali na osnovu definicije inverzne matrice možemo je izračunati.

STEPENOVANJE MATRICA

Za matricu A čija je determinanta različita od 0, važi Operator ^ služi za stepenovanje matrice.

PRIMER 22: Za matricu A odrediti i proveriti da li je (I je jedinična matrica istih dimenzija kao matrica A)

>> A=[ 1 -2 3;4 -5 6; 7 8 -9];>> M=A^2,N=A^(-2),I=M*NM = 14 32 -36 26 65 -72 -24 -126 150N = 0.3844 -0.1497 0.0204 -1.2313 0.7007 0.0408 -0.9728 0.5646 0.0442I = 1.0000 0 -0.0000 0 1.0000 -0.0000 0 0.0000 1.0000

DELJENJE MATRICA

MATLAB ume da deli matrice na dva načina: deljenje s leva i deljenje s desna.

Deljenjem s leva (engl. left division) rešavamo matričnu jednačinu . U toj jednačini, X i B su vektori kolone. Jednačina se može rešiti množenjem obe strane matricom inverznom matrici A, i to s leva:

. Leva strana ove jednačine jednaka je X pošto je: . Dakle,

rešenje od je: .U MATLAB-u se poslednja jednačina može napisati pomoću simbola za deljenje

s leva: \B. Premda dve poslednje operacije daju isti rezultat, MATLAB u njima izračunava X na dva različita načina. U prvoj jednačini MATLAB izračunava i zatim njime množi B. U drugoj (deljenje s leva), rešenje se dobija numerički, metodom zasnovanom na postupku Gausove eliminacije. Za rešavanje skupova linearnih jednačina preporučujemo matrično deljenje s leva, pošto je rezultat izračunavanja

37

Page 38: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

inverzne matrice manje precizan od rezultata Gausove eliminacije kada se radi o velikim matricama.

Deljenje s desna (engl. right division) rešavamo matričnu jednačinu . U toj jednačini X i D su vektori vrste. Jednačina se može rešiti množenjem obe strane matricom koja je inverzna matrici C i to s desna:

što daje U MATLAB-u se poslednja jednačina može napisati pomoću simbola za deljenje

s desna: /C .

PRIMER 23: Uočimo razliku između operatora deljenja s leva \ i s desna /.

>>A=[1,4,3;2,6,1;5,2,8],B=[1,2,1;2,-3,-1;2,6,-2],D=A\B,D1=A/BA = 1 4 3 2 6 1 5 2 8B = 1 2 1 2 -3 -1 2 6 -2D = 0.4474 -1.1316 -1.3158 0.1974 -0.3816 0.1842 -0.0789 1.5526 0.5263D1 = 2.1765 -0.3529 -0.2353 1.5882 -0.1765 0.3824 6.1176 0.7647 -1.3235

PRIMER 24: Rešiti matričnu jednačinu AX=B gde su date matrice

i

>> A=[1 -2 -3;2 -5 1;-3 -5 -7];B=[1;2;-2];X=inv(A)*BX = 0.8172 -0.0753 -0.0108

ili

>> X=A\BX =

38

Page 39: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

0.8172 -0.0753 -0.0108

PRIMER 25: Podeliti matricu A skalarom 3 s leva i s desna.

>> A\3??? Error using ==> mldivideMatrix dimensions must agree.

>> A/3ans = 0.3333 -0.6667 -1.0000 0.6667 -1.6667 0.3333 -1.0000 -1.6667 -2.3333

39

Page 40: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Pregled urađenih vežbi

Redni broj

vežbeNaziv vežbe

Dat

um

Stu

den

t

Dem

onst

rato

r

Pro

feso

r

Napomene

1.

Koristeći datu matricu A=

odrediti:

a) član na mestu (3,1)b) drugu vrstu matrice Ac) determinantu matrice d) transponovanu matricu matrice

2.Izračunajte: koristeći

datu matricu A.

3.Izračunati zbir matrica:

4.

Izračunati zbir matrica:

5.

Ako je

Izračunati 3A-5B.

6.Izračunati ako je

7.

Rešiti matrične jednačine:

40

Page 41: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

5. SISTEMI LINEARNIH ALGEBARSKIH JEDNAČINA

Sistemi jednačina po nepoznatim x, y, z možemo zapisati:

gde su , , , realni brojevi. Stepen možemo zapisati i ovako:

zapravo AX=Bgde je

pa sistem možemo rešiti matričnom metodom , u slučaju kada je .Za rešavanje sistema možemo primeniti i Kramerovo pravilo, koje možemo

takođe primeniti u slučaju kad je determinanta sistema različita od 0.

PRIMER 1: Kreirati m-fajl Cramer.m za rešavanje sistema linearnih algebarskih jednačina koristeći Kramerovo pravilo:

%Resavanje sistema AX=B Cramerovim pravilom%function X=Cramer(A,B)[m,n]=size(A);if m~=n, error('Matrica nije kvadratna'),endif det(A)==0, error('Matrica je singularna'),endfor j=1:n, C=A; C(:,j)=B; X(j)=det(C)/det(A);endX=X';

PRIMER 2: Rešiti sistem jednačina matričnom metodom i koristeći kreirani fajl Cramer.m. Uporediti dobijena rešenja.

41

Page 42: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

>> M=[2,-3,1;-3,5,-2;1,-2,3];N=[11;-19;14];>> X1=inv(M)*NX1 = 1.0000 -2.0000 3.0000>> X2=Cramer(M,N)X2 = 1 -2 3

PRIMER 3: Rešiti sistem jednačina matričnom metodom:

>> syms p qA=[-p q 1;1 -q -p;-1 p*q 1]A =[ -p, q, 1][ 1, -q, -p][ -1, p*q, 1]>> B=[1;1;q]B = 1 1 q>> X=inv(A)*BX = -(p+1)/(p^2+p-2)-1/(p^2+p-2)+1/(p^2+p-2)*q (p+1)/(p^2+p-2) -1/(p^2+p-2)-(p+1)/(p^2+p-2)-1/(p^2+p-2)*q

PRIMER 4: Rešiti sistem jednačina koriteći fajl Cramer.m

42

Page 43: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

>> Z=[-2 3 1;1 3 -2;1 -6 1]Z = -2 3 1 1 3 -2 1 -6 1>> Z1=[1;1;3]Z1 = 1 1 3>> Cramer(Z,Z1)??? Error using ==> CramerMatrica je singularna

43

Page 44: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Pregled urađenih vežbi

Redni broj

vežbeNaziv vežbe

Dat

um

Stu

den

t

Dem

onst

rato

r

Pro

feso

r

Napomene

Rešiti sistem jednačina matričnom metodom:

1.

2.

3.

4.

Rešiti sisteme jednačina koristeći Kramerove formule (fajl Cramer.m)

5.

6.

7.

44

Page 45: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

6. INTEGRALI I PRIMENA INTEGRALA

Neodređeni integral

Integraljenje se može obaviti pomoću komande int. Ta komanda se upotrebljava za izračunavanje neodređenih i određenih integrala. Neodređeni integral ima sledeće komande:

int(S) ili int(S,prom)

S može biti oznaka za ranije definisan izraz, ili se izraz upisuje kao argument Kada se upotrebi komanda int(S) ako izraz sadrži samo jednu promenljivu,

integraljenje se odvija po toj promenljivoj. Ako izraz sadrži više promenljivih, izračunava se integral za naznačenu promenljivu.

Kada se upotrebi oblik komande int(S,prom), pogodan za izraze s više simoličkih promeljivih, integraljenje se obavlja za promenljivu prom.

PRIMER 1:>> int('cos(x)')ans =sin(x)

PRIMER 2:>> syms x>> S=2*cos(x)-5*xS =2*cos(x)-5*x>> int(S,x)ans =2*sin(x)-5/2*x^2

PRIMER 3:>> int(x*sin(x))ans =sin(x)-x*cos(x)

PRIMER 4:>> syms x>> S=5*x^2*cos(4*x);>> int(S)ans =5/4*x^2*sin(4*x)-5/32*sin(4*x)+5/8*x*cos(4*x)

PRIMER 5:>> syms x>> S=x^2*(x-1);>> int(S,x)

45

Page 46: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

ans =1/4*x^4-1/3*x^3

PRIMER 6: Izračunati integral

>> syms x>> S=(3*x+5)/(x^2+2*x+2);>> int(S,x)ans =3/2*log(x^2+2*x+2)+2*atan(x+1)>> pretty(ans) 2 3/2 log(x + 2 x + 2) + 2 atan(x + 1)

PRIMER 7: Izračunati integral

>> syms x>> S=(1+x^2+2*x^4)/(3*x^2);>> int(S,x)ans =2/9*x^3+1/3*x-1/3/x>> pretty(ans) 3 2/9 x + 1/3 x - 1/3 1/x

PRIMER 8: Izračunati integral

>> syms x>> S=(5*x-2)^9;>> int(S,x)ans =1/50*(5*x-2)^10>> pretty(ans) 10 1/50 (5 x - 2)

PRIMER 9: Izračunati integral

>> syms x>> S=exp(-x^3)*x^2;>> int(S,x)

46

Page 47: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

ans = -1/3*exp(-x^3)

PRIMER 10: Izračunati integral

>> syms x>> S=(3*x^2-2)/(x^3-2*x);>> int(S,x)ans =log(x*(x^2-2))>> pretty(ans) 2 log(x (x - 2))

PRIMER 11: Izračunati integral

>> syms x>> S=1/(x^2+4);>> int(S,x)ans =1/2*atan(1/2*x)>> pretty(ans) 1/2 atan(1/2 x)

PRIMER 12: Izračunati integral

>> syms x>> S=(1+x^5)^(1/3)*x^4;>> int(S,x)ans =3/20*(1+x^5)^(4/3)>> pretty(ans) 5 4/3 3/20 (1 + x )

47

Page 48: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Određeni integral

Za određene integrale komanda ima sledeći oblik:int(S,a,b) ili int(S,prom,a,b)

a i b su granice integrala. Granice mogu biti brojevi ili drugi simboli.

Na primer, određeni integral u MatLab-u se izračunava na sledeći

način:PRIMER 1:

>> syms x>> int(sin(x)-5*x^2,0,pi)ans =2-5/3*pi^3

S može biti oznaka za ranije definisan izraz, ili se izraz upisuje kao argument MatLab ponekad ne može izračunati integral. U tom slučaju umesto odgovora

izbacuje poruku Explicit integral could not be found (integral nije pronađen).

PRIMER 2: Izračunati .

>> syms x>> f=x^3;>> int(f,1,3)ans =20

PRIMER 3: Izračunati .

>> syms x>> f=x^(2/3);>> int(f,1,8)ans =24/5*8^(2/3)-3/5

48

Page 49: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

PRIMER 4: Izračunati .

>> syms x>> f=1/sin(x)^2;>> int(f,pi/4,pi/3)ans =1-1/3*3^(1/2)>> pretty(ans) 1/2 1 - 1/3 3

PRIMER 5: Izračunati .

>> syms x>> f=sin(x);>> int(f,0,2*pi)ans =0

PRIMER 6: Izračunati .

>> syms x>> f=1/(1+x^2);>> int(f,0,1)ans =1/4*pi

49

Page 50: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Neki primeri primene određenog integrala pri izračunavanju površina

PRIMER 7: Nacrtati luk krive i ručno izračunatii površinu ograničenu lukom krive i x osom.

>> syms x;f1=x^2-9;>> a=solve(f1) a = 3 -3 >> int(f1,-3,3)ans =-36>> abs(ans)ans = 36>> ezplot(f1);hold on

PRIMER 8: Data je funkcija f(x)=sin x. Nacrtati funkciju, obeležiti oblast ograničenu datom funkcijom i x osom na intervalu i izračunati brojnu vrednost površine.

>> x=[0:0.001:1];>> fill(x,sin(x),'r')

>> x=[0:0.001:1];>> fill([x 1],[sin(x) 0],'r')

50

Page 51: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Tražena površina ima vrednost:

>> p=int('sin(x),0,1')p =[ -cos(x), 0, x]

PRIMER 9: Izračunati funkciju ograničenu funkcijom i x osom na

intervalu , nacrtati funkciju i obeležiti traženu površinu.

>> fill([0 0:.1:4 4 0],[0 exp(-(0:.1:4).^2) 0 0],'c')

51

Page 52: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Zadaci za vežbu

1. Proveriti rezultate: a)

b)

v)

g)

d)

đ)

2. Izračunati sledeće integrale:

a) ; b) ; v)

g) ; d) ; đ)

e) ; ž) ; z)

i) ; j) ; k)

l) ; lj) ; m)

n) ; nj) ; o)

p) ; r) ; s)

t) ć) u)

3. Izračunati:

52

Page 53: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

a) ; b) ; v)

g) ; d) ; đ)

e) ; ž) ; z)

i) ; j) k)

4. Proveriti da li su tačne jednakosti:

a)

b)

v)

g)

d)

đ)

e)

ž)

z)

53

Page 54: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Pregled urađenih vežbi

Redni broj

vežbeNaziv vežbe

Dat

um

Stu

den

t

Dem

onst

rato

r

Pro

feso

r

Napomene

1 Izračunati

2 Izračunati

3 Izračunati

4 Izračunati

5 Izračunati

6 Izračunati

7 Izračunati

8 Izračunati

9 Izračunati

10 Izračunati

11 Izračunati

54

Page 55: PRIRUCNIK vezbe

MATLAB – Priručnik za laboratorijske vežbe

Redni broj

vežbeNaziv vežbe

Dat

um

Stu

den

t

Dem

onst

rato

r

Pro

feso

r

Napomene

12 Izračunati

13 Izračunati

14 Izračunati

15 Izračunati

16 Proveriti:

17 Proveriti:

18 Izračunati

19 Izračunati

20 Izračunati

55