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

Prirucnik za Matlabbb.doc

Embed Size (px)

Citation preview

MATLAB Prirunik za laboratorijske vebe

UNIVERZITET SINGIDUNUMDr Olivera NikoliKvantitativne metode- Prirunik za laboratorijske vebe -MATLAB 7

FAKULTET ZA FINANSIJSKI MENADMENT I OSIGURANJEFAKULTET ZA POSLOVNU INFORMATIKU

FAKULTET ZA TURISTIKI I HOTELIJERSKI MENADMENTValjevo, 2005UNIVERZITET SINGIDUNUM

BEOGRAD

UVOD

Postoje dve klase softverskih paketa za reavanje matematikih problema: programi zasnovani na simbolikom reavanju i programi zasnovani na numerikom reavanju problema. Tipian predstavnik prve klase programa je Mathematic, a druge MATLAB.

MATLAB je dostupan u vie verzija koje su prilagoene razliitim raunarskim platformama od PC i Macintosh raunara, preko UNIX radnih stanica do Convex i Cray raunara. Predstavlja najee korien paket u svojoj oblasti. Verzije MATLAB-a za razliite raunarske sisteme se razlikuju donekle samo po korisnikom interfejsu sve komande se jednako izvravaju na svim platformama.

MATLAB je koncipiran kao proiriv programski paket pored osnovnog paketa mogue 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 mrea (Neural Network Toolbox).

Osnovno okruenje MATLAB-a predstavlja tekstualni prozor u kome se zadaju MATLAB komande. Komande se izvravaju neposredno nakon unosa. Poseban simbol (>>) predstavlja MATLAB Prompt. Pored toga, mogue je pisati i programe u programskom jeziku kojeg nudi MATLAB. Sam MATLAB programski jezik je nalik drugim proceduralnim jezicima, izuzimajui njegovu prilagoenost radu sa matricama.

Prva, izvorna verzija MATLAB-a, napisana je kasnih sedamdesetih, na univerzitetu New Mexico i Stanford Univerzitetu, sa osnovnom namenom da slui kao pomono sredstvo na kursevima iz linearne algebre, i numerike analize. Zamiljeno je da ovaj paket bude nadgradnja FORTRAN-a koja bi koristila gotove potprograme FORTRAN-a. Dananje mogunosti MATLAB-a daleko prevazilaze tadanji originalni "MATrix LABoratory". Ogroman broj naunih i tehnikih disciplina neizostavno zahtevaju korienje MATLAB-a. U MATLAB-u se vrlo jednostavno mogu kreirati sopstvene funkcije koje daju reenja na postavljene zahteve. Skup ovako kreiranih funkcija (m-fajlova) objedinjenih u jednu celinu predstavlja osnovnu strukturu toolboxa. Toolboxovi dakako predstavljaju mnogo vie od kolekcije upotrebljivih fajlova, jer je u njima objedinjen trud velikih svetskih istraivaa u raznim podrujima nauke.

1. OSNOVNI PRINCIPI RADA U MATLAB-u

Nakon to ste pokrenuli MATLAB na vaem monitoru se pojavljuje okvir prikazan na sledeoj slici:

1.1. ARITMETIKE OPERACIJE SA SKALARIMA

U aritmetikim proraunima brojevi se mogu upotrebljavati direktno, kao na kalkulatoru ili se mogu pridruiti promenljivima koje se mogu koristiti za izraunavanja.

Simboli aritmetikih operacija su:

OperacijaSimbolPrimer

Sabiranje+5+3

Oduzimanje-5-3

Mnoenje*5*3

Deljenje s desna/5/3

Deljenje s leva\5\3=3/5

Stepenovanje^5^3 (znai 53=125)Tabela 1.

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

1.2. PRIORITET IZVRAVANJA

MATLAB izvrava operacije prema sledeem redosledu prioriteta:

PrioritetMatematika operacija

NajviiZagrade. Kada su ugnedene, prioritet ima unutranja

zagrada

Drugi po reduStepenovanje

Trei po reduMnoenje i deljenje

etvrti po redu Sabiranje i oduzimanjeU izrazu koji sadri vie operacija, operacije vieg prioriteta izvravaju se pre operacija nieg prioriteta. Izraz se izraunava s leva u desno ukoliko dve ili vie operacija imaju isti prioritet. Zagradama se moe promeniti redosled izraunavanja. 1.3. KORIENJE MATLAB-A KAO KALKULATORA

PRIMER 1: Ako u komandni prozor upiete matematiki izraz i pritisnete Enter, MATLAB e izraunati taj izraz, napisati ans = i prikazati numeriki rezultat u sledeem redu.>> 7+8/2

ans =

11

>> (7+8)/2

ans =

7.5000

>> 4+5/3+2

ans =

7.6667

>> 5^3/2

ans =

62.5000

>> 27^(1/3)+32^0.2

ans =

5

>> 27^1/3+32^0.2

ans =

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

1.4. UGRAENE ELEMENTARNE MATEMATIKE FUNKCIJE

Izrazi u MATLAB-u mogu da sadre i funkcije osim osnovnih aritmetikih operacija. MATLAB ima veliku biblioteku ugraenih funkcija, a i korisnik moe definisati svoje funkcije. Funkcija se poziva imenom i argumentom u zagradama.

Na primer, funkcija sqrt (x) izraunava kvadratni koren broja (engl. square root). Ime funkcije je sqrt a argument joj je x. Argument funkcije moe biti broj, promenljiva kojoj se pridruena numerika vrednost ili izraz koji sadri brojevei/ili promenljive. PRIMER 2: Izraunati sledee 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 sledeoj tabeli su navedene najee koriene elementarne matematike funkcije. Celokupan spisak funkcija razvrstanih po kategorijama moete prikazati u prozoru za pomo (Help).

FunkcijaOpisPrimer

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.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 matematike funkcije

FunkcijaOpisPrimer

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

Tabela 3. Trigonometrijske funkcije1.5. FORMATI PRIKAZA REZULTATA

Korisnik moe izabrati format u kojem MATLAB prikazuje rezultat na ekranu. Izlazni format se zadaje komandom format. Prikaz svih formata u MATLAB-u sa pojedinostima moete dobiti kada u komandni prozor upiete help format.format longFiksni zarez sa 14 decimala za decimalne brojeve u opsegu: 0.001 broj 100 .>> format long,530/7

ans =

75.71428571428571

format shortFiksni zarez sa 4 decimala za decimalne brojeve u opsegu: 0.001 broj 1000 .>> format short,530/7

ans =

75.7143

format long eNauna notacija sa 15 decimala.>> format long e,530/7

ans =

7.571428571428571e+001

format short eNauna notacija sa etiri decimale.>> format short e,530/7

ans =

7.5714e+001

format bankDve decimale. >> format bank,530/7

ans =

75.71

Tabela 4. Formati prikaza rezultata1.6. DEFINISANJE SKALARNIH PROMENLJIVIH

Promenljiva je ime od jednog slova ili proizvoljne kombinacije slova i cifara (s poetnim slovom) kojem je pridruena numerika vrednost. Promenljiva kojoj je pridruena numerika vrednost, moe se upotrebljavati u matematikim izrazima, funkcijama i svim MATLAB-ovim iskazima i komandama. Promenljiva je zapravo ime odreene lokacije u memoriji. Kada definiete novu promenljivu, MATLAB joj dodeljuje odgovarajuu lokaciju u memoriji gde uva njoj pridruenu vrednost.

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

Levo od operatora dodele moe biti samo jedno ime promenljive. Desno moe biti broj ili izraz koji sadri brojeve i/ili promenljive kojima su prethodno dodeljene numerike vrednosti.

PRIMER 3: Izraunati x=5x-20 za x=30.>> x=30

x =

30

>> x=5*x-20

x =

130

>>

PRIMER 4: Prikaz vrednosti izraza u MATLAB-u moe se prikazati drugaije nego u prethodnim primerima. Ukoliko nekoj promenljivoj dodelite odgovarajuu vrednost i iza stavite '' ; '' dobiete prikaz kao na slici:

>> a=15;

>> b=30;

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

>> c

c =

79

Ovaj nain prikaza sa '';'' na kraju se esto koristi u radu kada nas meurezultati ne interesuju. Ovako se ubrzava rad na raunaru, jer se eliminie ispisivanje velikog broja (esto nepotrebnih) meurezultata.

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 poinjati slovom i mogu, pored slova, sadrati cifre i podvlake. MATLAB pravi razliku izmeu velikih i malih slova i treba izbegavati korienje imena ugraenih funkcija za promenljive (na primer cos, sin, exp, sqrt).1.7. UNAPRED DEFINISANE PROMENLJIVE

Pojedine esto koriene promenljive automatski su definisane ime se MATLAB pokrene. Osnovne konstante su:

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

piBroj .

epsDozvoljena tolerancija greke, odnosno najmanja razlika izmeu dva broja koju MATLAB moe da uoi.

infBeskonano velika vrednost (), ili rezultat 1/0

iDefinisano kao , to iznosi

jDefinisano kao , to iznosi

NaNSkraenica od Not-a-Number (nnije broj), rezultat operacije 0/0

Tabela 5. Osnovne konstante

PRIMER 5: Izraunati .>> x=5+(3*5+1/pi)

x =

20.3183

Broj je definisan kao stalna veliina i dovoljno je uneti samo pi.

Kao to smo ve napomenuli imaginarna jedinica je definisana kao stalna veliina. Oznaava se sa ili .

>> i=sqrt(-1)

i =

0 + 1.0000i

PRIMER 6: Napisati broj z=5+3i

>> z=5+3*i

z =

5.0000 + 3.0000i

PRIMER 7: Napisati broj

>> w=5*exp(i*pi/5)

w =

4.0451 + 2.9389iPRIMER 8: Izraunati .>> sin(5*pi/2)

ans =

1PRIMER 9: Za i izraunati vrednost izraza .>> z=log(x)+sqrt(y)

z =

10.7703PRIMER 11: Izraunati .>> x=0/0

Warning: Divide by zero.

x =

NaN1.8. BRISANJE I UVANJE PODATAKA

NaredbaOpis

clearBrie podatke iz radne memorije.

clear xBrie se promenljiva x.

saveuva podatke u fajlu na disku za kasniju upotrebu.

save imePamti sve veliine iz radnog prostora pod zadatim imenom.

quit, exitOstvaruje se prekid programa.

loadPredstavlja obrnutu naredbu od save

Tabela 7. Naredbe za brisanje i uvanje podataka

Pregled uraenih vebi

Redni broj vebeNaziv vebeDatumStudent DemonstratorProfesorNapomene

1Izraunajte:

2Izraunajte:

3Izraunajte:

4Izraunajte:

5Izraunajte:

6Definiite promenljivu x kao x=8,7 i izraunajte:

7Definiite promenljivu x kao x=15,5 i izraunajte:

8Definiite promenljive x i z kao x=10,7 z=5,8 i izraunajte:

9Proveriti: za

10 za

2. DVODIMENZIONALNI GRAFIKONI

MATLAB poseduje velike mogunosti grafikog predstavljanja. Studenti se mogu upoznati sa ostalim mogunostima grafikog predstavljanja koristei naredbe help i demo. 2.1. GRAFIKO PREDSTAVLJANJE FUNKCIJA JEDNE PROMENLJIVE

Osnovna naredba za crtanje grafika je naredba plot.

Najjednostavniji nain za grafiko predstavljanje, sa linearnom podelom na osama, je korienje naredbe plot(x). Prilikom crtanja otvara se grafiki prozor za koji vae 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 moemo da vidimo da je MATLAB za vrednosti nezavisno promenljive x uzeo redni broj elementa, a njihove slike su vrednosti vektora x tj. take nacrtanog grafika imaju koordinate (1,x(1)), (2,x(2))...

U optem sluaju naredba plot(x) crta grafik spajajui take (i,x(i)), gde je i=1,2,3,...N, gde je N duina vektora.

Nezavisno promenljiva moe biti zadata posebno. U tom sluaju 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)

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: Koristei MATLAB moemo na jednom grafiku nacrtati vie funkcija kao to je prikazano u sledeem primeru.

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

>> plot(x1,y1,x2,y2)

Vrste linija i oblik mogu takoe da se zadaju naredbom plot na sledei nain:

plot(x,z,'vrsta linije'). Tabela 8. daje mogunost izbora.

Simbol linijeBoja

.takayuta

okrugmljubiasta

xx-znakccijan

+plusrcrvena

*zvezdagzelena

-puna linijabplava

-.zaka-crtakcrna

:takastawbela

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

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

Naredba ezplot omoguava crtanje funkcije u definisanom domenu: -2 < x < 2.

Domen funkcije moe 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 mogunost da simboliki zadamo funkciju je da prvo definiemo nezavisni promenljivu, koristei naredbu syms.

PRIMER 7: Nacrtati funkciju

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

PRIMER 8: Izraunati

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

PRIMER 9: Izraunati

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

PRIMER 10: Izraunati .>> ezplot('y=x^2*log(x)')

2.2. OZNAAVANJE GRAFIKA I OSA

MATLAB nudi mogunosti oznaavanja osa, pisanja razliitog teksta i razne druge mogunosti. Neke od njih su:OznakaOpis

titleNaziv grafika.

xlabelNaziv x ose.

ylabelNaziv y ose.

textNaziv teksta u grafiku.

gtexTekst na poziciji oznaenenoj miem.

gridCrtanje linija mree.

Tekst u prethodnim naredbama pie se u zagradi pod navodnicima. Naredba hold on zadrava sliku na ekranu. Suprotna njoj je naredba hold off.PRIMER 11: Nacrtati funkciju z=sin x i obeleiti sliku koristei 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

Zadaci za vebu

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)

D.

a)

b)

v)

g)

Pregled uraenih vebi

Redni broj vebeNaziv vebeDatumStudent DemonstratorProfesorNapomene

Nacrtati grafik funkcija i sa grafika uneti podatke za:

domen, znak,nule, parnost (neparnost), monotonost, ekstremne vrednosti, konveksnost (konkavnost), prevojne take

1

2

3

4

5

6

7

8

9

10

NAPOMENERedni broj vebeNaziv vebeNapomene

Nacrtati grafik funkcija i sa grafika uneti podatke za:

domen, znak,nule, parnost (neparnost), monotonost, ekstremne vrednosti, konveksnost (konkavnost), prevojne take

1

2

3

4

5

6

7

8

9

10

3. EKONOMSKE FUNKCIJE

3.1. FUNKCIJA PRIHODA

PRIMER 1: Data je funkcija tranje x=10-0,5p.a) Na osnovu grafika analiziraj funkciju.

b) Pronai nivo proizvodnje xp za koji se postie maksimalan ukupan prihod P i utvrditi njegov iznos.c) Proanalizirati elastinost ukupnog prihoda P u odnosu na x .

PRIMER 2: Data je funkcija tranje p=20-2x.a) Pronai nivo proizvodnje x kod koga se postie maksimalan ukupan prihod P i utvrditi njegov iznos.

b) Algebarski, tabelarno i grafiki analizirati elastinost ukupnog prihoda P u odnosu na nivo proizvodnje x.

c) Na grafikonu nacrtati funkcije: tranje, ukupnog prihoda i graninog prihoda, uz prilaganje odgovarajue algebarske analize.

3.2. FUNKCIJA TROKOVA

PRIMER 3: Za funkciju trokova odrediti proizbvodnju za koju su proseni trokovi jednaki graninom.

PRIMER 4: Data je funkcija ukupnih trokova . Pokazati da su minimalni proseni trokovi jednaki ukupnim graninim trokovima.

3.3. FUNKCIJA DOBITI

PRIMER 5: Data je funkcija tranje p=9-1,5x i funkcija ukupnih trokova C=6+1,5x

a) Pronai 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).

4. MATRICE

Poto je matrica osnovni element MATLAB-a postoji mnogo naina za manipulisanje i rad sa matricama. Kada se matrica definie, odnosno unese u program, MATLAB omoguuje itav niz postupaka kojima se unesena matrica po volji moe menjati. Ovo je u stvari klju za efikasno korienje MATLAB-a.4.1. UNOS MATRICA I VEKTORA

Matrica je polje brojeva koje se definie sa dva indeksa gde prvi indeks oznaava broj vrsta a drugi broj kolona. Elementi se uglavnom unose po vrstama, a zagrade [ , ] oznaavaju 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 9Druga mogunost 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;x

x =

1 2 3 4 5 6 7 8 9 10Naredba length izraunava duinu vektora.

>> length(x)

ans =

10

PRIMER 3: Uneti vektor x.>> 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*i

Z =

-2.0000 + 3.0000i 1.0000 - 5.0000i

3.0000 + 6.0000i 7.0000 + 2.0000iMatricu moemo uneti i na sledei nain:>> 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 moe 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 traenu 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 moemo uraditi koristei komande: A(k,:) i A(:,k) gde k predstavlja traenu vrstu ili kolonu. Dimenzije matrice odreuju se komandom size (A) ili [m,n]=size(A) . PRIMER 6: Odrediti dimenzije matrice iz prethodnog primera koristei naredbu size(A).

>> size(A)

ans =

3 3

Zamena elemenata matrice A brojevima izmeu 21 i 29 jedininim korakom ostvaruje se na sledei nain:PRIMER 7: >> A(:)=21:29

A =

21 24 27

22 25 28

23 26 294.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 jedininu matricu.

FunkcijaOpis

eye(n)Daje jedininu matricu

eye(m,n)Daje jedininu matricu

eye(size(A))Daje jedininu matricu dimenzija date matrice

Tabela 8. Naredba eyePRIMER 8: Odrediti jedininu matricu sa tri vrste i dve kolone koristei naredbe iz prethodne tabele.>> A=eye(3,2)

A =

1 0

0 1

0 0

PRIMER 9: Koristei dimenzije matrice iz primera 5, odrediti jedininu 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

Naredba ones daje matricu iji su svi elementi jedinice.

FunkcijaOpis

ones(n)Daje matricu iji su svi elementi jedinice

ones(m,n)Daje matricu iji su svi elementi jedinice

ones(size(A))Daje matricu dimenzija date matrice A iji su svi elementi jedinice

Tabela 9. Naredba onesPRIMER 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.FunkcijaOpis

zeros (n)Daje matricu iji su svi elementi nule

zeros (m,n)Daje matricu iji su svi elementi nule

zeros (size(A))Daje matricu dimenzija date matrice A iji su svi elementi nule

Tabela 10. Naredba zerosPRIMER 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, mnoenje, 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 odgovarajuih elemenata.

PRIMER 12: Izraunati C=A+B.

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

A =

1 -2 3

4 -5 6

-7 8 -9

B =

-1 8 -2

6 3 -4

3 -2 1

C =

0 6 1

10 -2 2

-4 6 -8

PRIMER 13: Izraunati B=A-3.>> A=[1,-2,3;4,-5,6;-7,8,-9],B=A-3

A =

1 -2 3

4 -5 6

-7 8 -9

B =

-2 -5 0

1 -8 3

-10 5 -12

MNOENJE MATRICA

Ako su A i B dve matrice, operacija A*B moe 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: Izraunati C=A*B.>> A=[1,4,3;2,6,1;5,2,8],B=[1,2;2,-3;2,6],C=A*A1

A =

1 4 3

2 6 1

5 2 8

B =

1 2

2 -3

2 6

C =

15 8

16 -8

25 52

Mnoenje matrica skalarom se vri tako to svaki element te matrice pomnoimo vrednou datog skalara.PRIMER 15: Odrediti C=3A.

>> A=[1,4,3;2,6,1;5,2,8],C=3*A

A =

1 4 3

2 6 1

5 2 8

C =

3 12 9

6 18 3

15 6 24

TRANSPONOVANJE MATRICA

Transponovanje matrica sa realnim koeficijentima, je zamena vrsta i kolona i vri se pomou 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 vri na sledei nain:>> a=[3.5]',x=[-3 5 4]',y=[-5;-3;-4]'

a =

3.5000

x =

-3

5

4

y =

-5 -3 -4

PRIMER 18: Ukoliko radimo sa matricom iji su elementi kompleksni brojevi, MATLAB transponuje matricu i istovremeno konjuguje svaki njen element tj. vri 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

3.0000 + 6.0000i 7.0000 + 2.0000i

T =

-2.0000 - 3.0000i 3.0000 - 6.0000i

1.0000 + 5.0000i 7.0000 - 2.0000i

DETERMINANTA MATRICE

Operator det slui za izraunavanje determinante matrice.

PRIMER 19: Izraunati 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 odreuje inverzna matrica date matrice A.

PRIMER 20: Nai 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 izraunamo inverznu matricu matrice ija je determinanta jednaka 0, MATLAB daje sledei 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

Ovo pokazuje jo jednu prednost MATLAB-a da vam ukazuje na greku pri radu.

U MATLAB-u ne postoji poseban operator za izraunavanje adjungovane matrice, ali na osnovu definicije inverzne matrice moemo je izraunati.

STEPENOVANJE MATRICA

Za matricu A ija je determinanta razliita od 0, vai Operator ^ slui za stepenovanje matrice.

PRIMER 22: Za matricu A odrediti i proveriti da li je (I je jedinina matrica istih dimenzija kao matrica A) >> A=[ 1 -2 3;4 -5 6; 7 8 -9];

>> M=A^2,N=A^(-2),I=M*N

M =

14 32 -36

26 65 -72

-24 -126 150

N =

0.3844 -0.1497 0.0204

-1.2313 0.7007 0.0408

-0.9728 0.5646 0.0442

I =

1.0000 0 -0.0000

0 1.0000 -0.0000

0 0.0000 1.0000DELJENJE MATRICA

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

Deljenjem s leva (engl. left division) reavamo matrinu jednainu . U toj jednaini, X i B su vektori kolone. Jednaina se moe reiti mnoenjem obe strane matricom inverznom matrici A, i to s leva:

.

Leva strana ove jednaine jednaka je X poto je: . Dakle, reenje od je: .

U MATLAB-u se poslednja jednaina moe napisati pomou simbola za deljenje s leva: \B. Premda dve poslednje operacije daju isti rezultat, MATLAB u njima izraunava X na dva razliita naina. U prvoj jednaini MATLAB izraunava i zatim njime mnoi B. U drugoj (deljenje s leva), reenje se dobija numeriki, metodom zasnovanom na postupku Gausove eliminacije. Za reavanje skupova linearnih jednaina preporuujemo matrino deljenje s leva, poto je rezultat izraunavanja inverzne matrice manje precizan od rezultata Gausove eliminacije kada se radi o velikim matricama.

Deljenje s desna (engl. right division) reavamo matrinu jednainu . U toj jednaini X i D su vektori vrste. Jednaina se moe reiti mnoenjem obe strane matricom koja je inverzna matrici C i to s desna:

to daje

U MATLAB-u se poslednja jednaina moe napisati pomou simbola za deljenje s desna: /C . PRIMER 23: Uoimo razliku izmeu 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/B

A =

1 4 3

2 6 1

5 2 8

B =

1 2 1

2 -3 -1

2 6 -2

D =

0.4474 -1.1316 -1.3158

0.1974 -0.3816 0.1842

-0.0789 1.5526 0.5263

D1 =

2.1765 -0.3529 -0.2353

1.5882 -0.1765 0.3824

6.1176 0.7647 -1.3235

PRIMER 24: Reiti matrinu jednainu AX=B gde su date matrice i >> A=[1 -2 -3;2 -5 1;-3 -5 -7];B=[1;2;-2];X=inv(A)*B

X =

0.8172

-0.0753

-0.0108

ili>> X=A\B

X =

0.8172

-0.0753

-0.0108

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

??? Error using ==> mldivide

Matrix dimensions must agree.

>> A/3

ans =

0.3333 -0.6667 -1.0000

0.6667 -1.6667 0.3333

-1.0000 -1.6667 -2.3333Pregled uraenih vebi

Redni broj vebeNaziv vebeDatumStudent DemonstratorProfesorNapomene

1. Koristei datu matricu A= odrediti: a) lan na mestu (3,1)

b) drugu vrstu matrice A

c) determinantu matrice

d) transponovanu matricu matrice

2. Izraunajte: koristei datu matricu A.

3. Izraunati zbir matrica:

4. Izraunati zbir matrica:

5. Ako je

Izraunati 3A-5B.

6. Izraunati ako je

7. Reiti matrine jednaine:

5. SISTEMI LINEARNIH ALGEBARSKIH JEDNAINA

Sistemi jednaina po nepoznatim x, y, z moemo zapisati:

gde su ,,, realni brojevi. Stepen moemo zapisati i ovako:

zapravo AX=B

gde je

pa sistem moemo reiti matrinom metodom , u sluaju kada je .

Za reavanje sistema moemo primeniti i Kramerovo pravilo, koje moemo takoe primeniti u sluaju kad je determinanta sistema razliita od 0.PRIMER 1: Kreirati m-fajl Cramer.m za reavanje sistema linearnih algebarskih jednaina koristei Kramerovo pravilo:

%Resavanje sistema AX=B Cramerovim pravilom

%

function X=Cramer(A,B)

[m,n]=size(A);

if m~=n,

error('Matrica nije kvadratna'),

end

if det(A)==0,

error('Matrica je singularna'),

end

for j=1:n,

C=A; C(:,j)=B; X(j)=det(C)/det(A);

end

X=X';PRIMER 2: Reiti sistem jednaina matrinom metodom i koristei kreirani fajl Cramer.m. Uporediti dobijena reenja.

>> M=[2,-3,1;-3,5,-2;1,-2,3];N=[11;-19;14];

>> X1=inv(M)*N

X1 =

1.0000

-2.0000

3.0000

>> X2=Cramer(M,N)

X2 =

1

-2

3PRIMER 3: Reiti sistem jednaina matrinom metodom:

>> syms p q

A=[-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)*B

X =

-(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: Reiti sistem jednaina koritei fajl Cramer.m

>> 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 ==> Cramer

Matrica je singularna

Pregled uraenih vebi

Redni broj vebeNaziv vebeDatumStudent DemonstratorProfesorNapomene

Reiti sistem jednaina matrinom metodom:

1.

2.

3.

4.

Reiti sisteme jednaina koristei Kramerove formule (fajl Cramer.m)

5.

6.

7.

6. INTEGRALI I PRIMENA INTEGRALANeodreeni integral

Integraljenje se moe obaviti pomou komande int. Ta komanda se upotrebljava za izraunavanje neodreenih i odreenih integrala. Neodreeni integral ima sledee komande:

int(S) ili int(S,prom)

S moe biti oznaka za ranije definisan izraz, ili se izraz upisuje kao argument

Kada se upotrebi komanda int(S) ako izraz sadri samo jednu promenljivu, integraljenje se odvija po toj promenljivoj. Ako izraz sadri vie promenljivih, izraunava se integral za naznaenu promenljivu.

Kada se upotrebi oblik komande int(S,prom), pogodan za izraze s vie simolikih promeljivih, integraljenje se obavlja za promenljivu prom.

PRIMER 1:>> int('cos(x)')

ans =

sin(x)PRIMER 2:>> syms x

>> S=2*cos(x)-5*x

S =

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)

ans =

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

PRIMER 6: Izraunati 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: Izraunati 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: Izraunati 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: Izraunati integral

>> syms x

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

>> int(S,x)

ans =

-1/3*exp(-x^3)PRIMER 10: Izraunati 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: Izraunati 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: Izraunati 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 )Odreeni integral

Za odreene integrale komanda ima sledei 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, odreeni integral u MatLab-u se izraunava na sledei nain:

PRIMER 1:>> syms x>> int(sin(x)-5*x^2,0,pi)

ans =

2-5/3*pi^3 S moe biti oznaka za ranije definisan izraz, ili se izraz upisuje kao argument

MatLab ponekad ne moe izraunati integral. U tom sluaju umesto odgovora izbacuje poruku Explicit integral could not be found (integral nije pronaen).

PRIMER 2: Izraunati .

>> syms x

>> f=x^3;

>> int(f,1,3)

ans =

20PRIMER 3: Izraunati .

>> syms x

>> f=x^(2/3);

>> int(f,1,8)

ans =

24/5*8^(2/3)-3/5PRIMER 4: Izraunati .

>> 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 3PRIMER 5: Izraunati .

>> syms x

>> f=sin(x);

>> int(f,0,2*pi)

ans =

0PRIMER 6: Izraunati .

>> syms x

>> f=1/(1+x^2);

>> int(f,0,1)

ans =

1/4*piNeki primeri primene odreenog integrala pri izraunavanju povrina

PRIMER 7: Nacrtati luk krive i runo izraunatii povrinu ogranienu 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, obeleiti oblast ogranienu datom funkcijom i x osom na intervalu i izraunati brojnu vrednost povrine.

>> x=[0:0.001:1];

>> fill(x,sin(x),'r')

>> x=[0:0.001:1];

>> fill([x 1],[sin(x) 0],'r')

Traena povrina ima vrednost:

>> p=int('sin(x),0,1')

p =

[ -cos(x), 0, x]PRIMER 9: Izraunati funkciju ogranienu funkcijom i x osom na intervalu , nacrtati funkciju i obeleiti traenu povrinu.

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

Zadaci za vebu

1.Proveriti rezultate:a)

b)

v)

g)

d)

)

2.Izraunati sledee integrale:a)

;b)

;v)

g)

;d)

;)

e)

;)

;z)

i)

;j)

;k)

l)

;lj)

;m)

n)

;nj)

;o)

p)

;r)

;s)

t)

)

u)

3. Izraunati:

a)

;

b) ; v)

g)

;

d) ; )

e)

;

) ; z)

i)

;j) k)

4. Proveriti da li su tane jednakosti:

a)

b)

v)

g)

d)

)

e)

)

z)

Pregled uraenih vebi

Redni broj vebeNaziv vebeDatumStudent DemonstratorProfesorNapomene

1Izraunati

2Izraunati

3Izraunati

4Izraunati

5Izraunati

6Izraunati

7Izraunati

8Izraunati

9Izraunati

10Izraunati

11Izraunati

12Izraunati

13Izraunati

14Izraunati

15Izraunati

16Proveriti:

17Proveriti:

18Izraunati

19Izraunati

20Izraunati

Argument je broj

Argument je izraz

Argument sadri funkciju

Funkcija je deo izraza

Prvo se izraunava 8/2

Prvo se izraunava 7+8

Prvo se izraunava 5/3

Prvo se izraunava 5^3 a zatim /2

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

Ime_promenljive = numerika vrednost ili izraz

Broj 30 dodeljen je promenljivoj x

MATLAB prikazuje ime promenljivei njoj dodeljenu vrednost

Definiemo matrice A i B dimenzija 3x3

FAKULTET ZA POSLOVNU INFORMATIKU

FAKULTET ZA TURISTIKI I HOTELIJERSKI MENADMENT

PAGE 54

_1171631752.unknown

_1171656371.unknown

_1171660228.unknown

_1186814819.unknown

_1193211490.unknown

_1193486236.unknown

_1194420714.unknown

_1194420980.unknown

_1194421130.unknown

_1194421242.unknown

_1194421360.unknown

_1194421408.unknown

_1194421184.unknown

_1194421004.unknown

_1194420790.unknown

_1194420845.unknown

_1194420753.unknown

_1194420519.unknown

_1194420606.unknown

_1194420641.unknown

_1194420562.unknown

_1194420407.unknown

_1194420490.unknown

_1193824128.unknown

_1193212931.unknown

_1193214674.unknown

_1193486184.unknown

_1193214149.unknown

_1193212257.unknown

_1193212827.unknown

_1193211613.unknown

_1186830187.unknown

_1192982488.unknown

_1192982861.unknown

_1192983014.unknown

_1192982698.unknown

_1192981767.unknown

_1192982198.unknown

_1192981546.unknown

_1186815785.unknown

_1186815853.unknown

_1186829948.unknown

_1186815810.unknown

_1186814916.unknown

_1186815761.unknown

_1186814896.unknown

_1171661066.unknown

_1171666987.unknown

_1172006955.unknown

_1171667491.unknown

_1171664521.unknown

_1171660557.unknown

_1171660712.unknown

_1171660410.unknown

_1171657989.unknown

_1171658822.unknown

_1171660153.unknown

_1171660207.unknown

_1171658917.unknown

_1171658113.unknown

_1171658178.unknown

_1171658089.unknown

_1171657360.unknown

_1171657607.unknown

_1171657872.unknown

_1171657504.unknown

_1171657291.unknown

_1171657330.unknown

_1171657093.unknown

_1171638237.unknown

_1171654529.unknown

_1171656038.unknown

_1171656233.unknown

_1171655108.unknown

_1171640483.unknown

_1171654452.unknown

_1171638265.unknown

_1171633506.unknown

_1171635689.unknown

_1171638203.unknown

_1171634666.unknown

_1171632119.unknown

_1171632317.unknown

_1171632099.unknown

_1170672132.unknown

_1170804046.unknown

_1170808565.unknown

_1171047094.unknown

_1171047590.unknown

_1170808567.unknown

_1170808566.unknown

_1170804376.unknown

_1170808562.unknown

_1170808563.unknown

_1170808564.unknown

_1170808525.unknown

_1170808561.unknown

_1170808456.unknown

_1170804235.unknown

_1170804297.unknown

_1170804194.unknown

_1170795850.unknown

_1170797147.unknown

_1170800323.unknown

_1170800342.unknown

_1170797280.unknown

_1170798132.unknown

_1170797199.unknown

_1170796210.unknown

_1170797050.unknown

_1170795857.unknown

_1170779344.unknown

_1170795507.unknown

_1170795548.unknown

_1170794416.unknown

_1170795450.unknown

_1170794199.unknown

_1170778422.unknown

_1170778468.unknown

_1170778379.unknown

_1170672607.unknown

_1092039710.unknown

_1092040924.unknown

_1152363677.unknown

_1156533627.unknown

_1156534173.unknown

_1156594983.unknown

_1170670068.unknown

_1170671621.unknown

_1156595451.unknown

_1170670049.unknown

_1156595579.unknown

_1156595285.unknown

_1156594650.unknown

_1156594695.unknown

_1156594628.unknown

_1156534038.unknown

_1156534133.unknown

_1156533776.unknown

_1156533496.unknown

_1156533539.unknown

_1156533566.unknown

_1156533525.unknown

_1156440097.unknown

_1156533361.unknown

_1152457606.unknown

_1156414238.unknown

_1152457204.unknown

_1093273359.unknown

_1152363618.unknown

_1152363650.unknown

_1152363458.unknown

_1092040975.unknown

_1092041304.unknown

_1092041305.unknown

_1092996169.unknown

_1092041303.unknown

_1092041302.unknown

_1092040942.unknown

_1092040466.unknown

_1092040860.unknown

_1092040897.unknown

_1092040910.unknown

_1092040881.unknown

_1092040507.unknown

_1092040844.unknown

_1092040482.unknown

_1092040397.unknown

_1092040430.unknown

_1092040446.unknown

_1092040414.unknown

_1092040347.unknown

_1092040375.unknown

_1092039726.unknown

_1091374674.unknown

_1091378136.unknown

_1092039560.unknown

_1092039640.unknown

_1092039675.unknown

_1092039692.unknown

_1092039655.unknown

_1092039601.unknown

_1092039619.unknown

_1092039584.unknown

_1092039430.unknown

_1092039503.unknown

_1092039535.unknown

_1092039447.unknown

_1091378206.unknown

_1092039353.unknown

_1092039370.unknown

_1091378280.unknown

_1091378485.unknown

_1092039337.unknown

_1091378307.unknown

_1091378221.unknown

_1091378172.unknown

_1091378192.unknown

_1091378148.unknown

_1091374897.unknown

_1091376026.unknown

_1091376075.unknown

_1091376096.unknown

_1091376058.unknown

_1091375915.unknown

_1091375934.unknown

_1091374915.unknown

_1091375813.unknown

_1091374807.unknown

_1091374842.unknown

_1091374877.unknown

_1091374825.unknown

_1091374759.unknown

_1091374791.unknown

_1091374702.unknown

_1090411333.unknown

_1090413078.unknown

_1090413964.unknown

_1090758641.unknown

_1090758955.unknown

_1090759122.unknown

_1090758872.unknown

_1090758463.unknown

_1090413410.unknown

_1090413486.unknown

_1090413170.unknown

_1090411943.unknown

_1090412672.unknown

_1090412888.unknown

_1090412038.unknown

_1090411661.unknown

_1090411856.unknown

_1090411413.unknown

_1090362727.unknown

_1090410942.unknown

_1090411079.unknown

_1090410309.unknown

_1090362359.unknown

_1090362613.unknown

_1090362248.unknown

_1090351966.unknown