You are on page 1of 13

Sadraj vjebi

Upoznavanje alata Matlab Vjebe sa praktinim primjerima teorijskog rjeavanja problema programiranja i primjene softverskih alata.

Metode optimizacije
Vjebe
Dr.sc. eljko Stojki

to je to MATLAB

Interaktivno razvojno suelje Jezik tehnikog raunarstva Analiza podataka i vizualizacija Razvoj algoritama i distribucija aplikacija

Osnove rada sa programskim paketom Matlab


Linearno programiranje

Korisniko suelje Koritenje helpa Operacije sa poljima Rad sa matricama Grafiki prikaz podataka M-datoteke i pisanje funkcija u MATLAB-u Relacijski i logiki operatori Kontrolne petlje

Primjena softvera MATLAB za rjeavanje problema linearnog programiranja

Osnove rada sa programskim paketom Matlab


Matlab i rjesavanje jednaina Vektori funkcije i crtanje u matlab-u Netnowa metoda rjesavanja jednacina Metoda bisection rjesavanja jednacina Metoda sekante rjesavanja jednacina Rjesavanje linearnih sustava u matlabu Nelinearni sustavi

HELP!!!
Help help help sqrt SQRT Square root. SQRT(X) is the square root of the elements of X. Complex results are produced if X is not positive. See also SQRTM. Overloaded methods help sym/sqrt.m

Izvravanje naredbi

Izvravanje naredbi :
Proitati naredbi (razumjeti je) Izvriti naredbu Ispisati rezultat

Jednostavni matematiki prorauni


MATLAB moe posluiti za kao kalkulator


>> 4*25+3 ans = 103 >>(2+1)^6 ans = 729

Ukoliko liniju naredbe zavrimo sa ; naredba e se izvriti ali se njen rezultat nee ispisati
>>A=5; >>

Meukoraci iji rezultat nas ne zanima Tekst iza znaka % zanemaruje se


>>A=5; %ovo je komentar >>% a=10 >>

Osnovne aritmetike operacije


+ * / \ ^ zbrajanje oduzimanje mnoenje "Desno" dijeljenje "lijevo" dijeljenje potenciranje

Logiki i Relacijski operatori


Logiki operatori rade s dvije vrijednosti Logika istina sve osim 0, eksplicitno 1 Logika neistina 0 Logiki operatori u MATLAB-u su simboli: ~ (negacija) | (disjunkcija) & (konjunkcija)

Relacijski operatori

Varijable

Rezultat relacijske operacije je logika istina ili neistina Relacijski operatori su sljedei simboli: Manje Vee manje ili jednako vee ili jednako jednako nije jednako

< > <= >= == ~=

Varijablu ans Matlab automatski generira i pridruuje joj vrijednost zadnjeg izraunatog izraza koji nije pridruen nijednoj varijabli. U radnom prostoru MATLABa moemo definirati varijable: >> a=4 a=4 >> b=25; >> c=3; >> d=a*b+c d = 103

Pravila imenovanja varijabli


potrebno je razlikovati uporabu velikih/malih slova maksimalni broj znakova je 31 prvi znak mora biti slovo. specijalne varijable iji su nazivi rezervirani: ans, pi, eps, flops, inf, nan, i, j, nargin, nargout, realmin, realmax

Osnovne matematike funkcije


MATLAB podrava osnovne matematike funkcije npr. abs(x), acos(x), sqrt(x), sin(x),tan(x), asin(x), atan(x), ... >> x=sqrt(2)/2 x = 0.7071 >> y=asin(x) y = 0.7854 >> y_s=y*180/pi y_s = 45.0000

Komandni prozor MATLABa


MATLABov radni prostor

MATLABov radni prostor


Ukoliko neku vrijablu elimo izbrisati iz radnog prostora koristimo naredbu clear na nain:

>> clear p_kmpl1 x y ans >> who Your variables are: a c kmpl1 kmpl3 b d kmpl2

MATLAB pamti varijable koje smo koristili Vrijable koje su u radnom prostoru moemo vidjeti naredbom
who (ispis varijabli) >> who Your variables are: a b d kmpl2 p_kmpl1 y ans c kmpl1 kmpl3 x whos (detaljniji ispis varijabli) >>whos Name Size Elements Bytes Density Complex a 1 by 1 1 8 Full No ans 1 by 1 1 8 Full No b 1 by 1 1 8 Full No kmpl1 1 by 1 1 16 Full Yes

Workspace Browser otvara se odabirom Show Workspace naredbe iz File izbornika

Spremanje i ponovna uporaba podataka


Diary

Sadraj radnog prostora moemo spremiti s binarnim formatom u eljenu datoteku ime.mat naredbom >> save ime ili iz menija File|Save Workspace as... Uitavanje eljenog radnog prostora vrimo naredbom >> load ime ili iz menija File|Load Workspace...

Diary imedatoteke.txt
U datoteku imena imedatoteke.txt zapisuje sve to se dogaa u komandnom prozoru

DIARY OFF zaustavlja diary DIARY ON ukljuuje diary DIARY mijenja stanje Datoteka se obino sprema u direktorij C:\MATLABR11\work

Programi i funkcije u MATLABu


Path varijabla

MATLAB ima i mogunost razvoja algoritama u vlastitom programskom jeziku. M-datoteke - pohranjuju se s ekstenzijoma '.m'. Moemo razlikovati dvije vrste M-datoteka:
skripte funkcije

Skripte - skup naredbi koje se prenose, i izvravaju u komandnom prozoru Funkcije - crne kutije kojima dajemo odreeni ulaz i dobijamo traeni izlaz

Path je varijabla okoline koja sadri spisak direktorija u kojima se nalaze izvrne datoteke. U MATLABu path je unaprijed podeen za sve direktorije u kojima se nalaze orginalne MATLABove naredbe Path podeavamo naredbom:
>> path(path,'c:\temp\matlab\'); Ili promjenimo trenutni direktorij: >> cd c:\temp\matlab

MATRICE

Matrice
Ako je m=n kaemo da je A kvadratna matrica reda n . Ako je m=1 kaemo da je A retana matrica (ima samo jedan redak), Ako je n=1kaemo da je A stupana matrica. Retane i stupane matrice se jo zovu vektori.

matrica tipa m x n. Brojevi su elementi matrice ili komponente matrice. i -ti redak j-ti stupac Dijagonala matrice

Matrice

Zbrajanje matrica

Matrice A i B su jednake ako su istog tipa i ako je aij=bij za sve parove indeksa i,j

Mogu se zbrajati samo matrice istog tipa. Ako su matrice A i B istog tipa, tada je matrica C=A+B istog tipa kao i matrice A i B i vrijedi cij=aij+bij Dakle, matrice se zbrajaju lan po lan. Svojstva zbrajanja su : A+B=B+A (komutativnost) (A+B)+C=A+(B+C) (asocijativnost)

Mnoenje matrica sa skalarom


Mnoenje matrica

Matrica se mnoi s nekim skalarom (brojem) tako da se svaki element matrice pomnoi s tim brojem. Drugim rijeima, elementi matrice B=A su bij=aij Svojstva ove operacije proizlaze direktno iz svojstava mnoenja brojeva: (A+B)=A+B (+)A=A+ A (A)=()A

Definicija mnoenja matrica je na prvi pogled neobina, ali upravo nam ona omoguava jednostvno zapisivanje sustava linearnih jednadbi. Matrice A i B moemo pomnoiti samo ako su ulanane, odnosno ako A ima onoliko stupaca koliko Bima redaka. Matrica C=A*B ima redaka koliko A i stupaca koliko B. Neka je, dakle, A tipa m x k i B tipa k x n . Tada je matrica C tipa m x n i vrijedi:

Mnoenje matrica
1 4 7 2 5 8 3 6 9
*

1 2 3

4 5 6

7 8 9
=

Element (2,3) se izraunava:

1*1+2*2+3*3=14

14 32 50

32 77

50 122

122 194

mnoenje matrica openito nije komutativno. vrijedi: (i) (AB)C=A(BC) (asocijativnost), (ii) A(B+C)=AB+AC(distributivnost), (iii) (A+B)C=AC+BC(distributivnost), (iv) (AB)=( A)B=A( B)

Nul matrica i jedinina matrica


Nul matrica i jedinina matrica

Kod zbrajanja brojeva broj 0 je neutralni element s obzirom na zbrajanje Analogija kod matrica je nul-matrica koja ima sve elemente jednake nuli. Nul-matricu oznaavamo s O, odnosno Omn kada elimo naglasiti o kojem tipu se radi. Kod mnoenja brojeva broj je neutralni element s obzirom na mnoenje, odnosno Analogija kod matrica je jedinina matrica . Ukoliko matrica nije kvadratna, jedinine matrice u odnosu na mnoenje slijeva i zdesna su razliitog reda.

Transponirana matrica

Operacije s matricama

Transponirana matrica matrice A je matrica AT koja je definirana sa [AT]ij=Aji Ako je A tipa m x n , AT je tima n x m Oito je (AT) T Vrijedi :
(A+B)T = AT +BT (A)T =AT (AB)T =AT BT

Promatrati emo samo realne matrice, odnosno dvodimenzionalna polja podataka, i vektore, tj. jednodimenzionalna polja podataka.
2 5 8 3 6 9

1 4 7

Matrica za koju je AT =A je simetrina matrica.

Formiranje matrica
>> A=[1,2,3;4,5,6;7,8,9] A=
123 456 789

Formiranje matrica
Mogue je i automatizirano formiranje vektora >> x=(0:0.1:1)

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


123 456 789

>> y=linspace(0,1,11)

x = Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000 y = Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000

Formiranje matrica

Formiranje matrica

Kreiranje matrica iji su elementi sluajni brojevi Rand(m,n) kreira matricu dimenzija m x m iji su elementi sluajno generirani brojevi izmeu 0 i 1 Rand(m)-kreira kvadratnu matricu dimenzija m x m iji su elementi sluajno generirani brojevi izmeu 0 i 1 Ukoliko elimo brojeve 0 -10 moramo cijelu matricu pomnoit s 10 A=fix(rand(3)*10) A= 420 866 583

U MATLABu postoje funkcije kojima se mogu definirati matrice iji elementi su jednaki jedinici i nuli (nul matrica)
>> Q=zeros(3) >>R=eye(3) Q= R=
000 000 000 100 010 001

>> P=ones(3) P=
111 111 111

Pristupanje dijelu matrice


Pristupanje dijelu matrice


Pojedini element matrice moemo ispisati definiranjem njegova retka i stupca (npr. element matrice A u prvom retku i drugom stupcu)
>> A(1,2) ans = 2

Mogua je korekcija pojedinih elemenata >> r=[101 102 103]; >> A(3,:)=r A=
123 456 101 102 103

Ukoliko elimo vidjeti prva dva retka matrice A


>> A(1:2,:) ans = 1 2 3 456

Pristupanje dijelu matrice


Pristupanje dijelu matrice


Mogua je nadopuna matrice (npr. elimo matricu B proiriti s dodatnim redom jednakim vektoru-retku r) >> B=[B;r]
B=
123 456 789 101 102 103

Ukoliko bi kod matrice A definirali element u drugom redu i estom stupcu matrica se proiruje na portebnu dimenziju dodavajui na novodefiniranim mjestima nule. >> A(2,6)=1 A=
123000 456001 101 102 103 0 0 0

Pristupanje dijelu matrice


Ukoliko dio matrice izjednaimo s praznom matricom [ ] isti dio se brie ime se poetna matrica svodi na ostatak:
>> A(:,4:5)=[ ] A=
1 2 3 0 4 5 6 1 101 102 103 0

You might also like