Upload
mexx007
View
56
Download
1
Embed Size (px)
Citation preview
Metode optimizacijeMetode optimizacijeVjebe
Dr.sc. eljko Stojki
SadrSadraj vjeaj vjebibi
y Upoznavanje alata Matlaby Vjebe sa praktinim primjerima
teorijskog rjeavanja problema programiranja i primjene softverskih alata.
to je to MATLABto je to MATLAB
Interaktivno razvojno sueljeJezik tehnikog raunarstvaAnaliza podataka i vizualizacijaRazvoj algoritama i distribucija aplikacija
Osnove rada sa programskim Osnove rada sa programskim paketom Matlabpaketom Matlaby Korisniko sueljey Koritenje helpay Operacije sa poljimay Rad sa matricamay Grafiki prikaz podatakay M-datoteke i pisanje funkcija u MATLAB-uy Relacijski i logiki operatori y Kontrolne petlje
Linearno programiranjeLinearno programiranje
y Primjena softvera MATLAB za rjeavanje problema linearnog programiranja
Osnove rada sa programskim Osnove rada sa programskim paketom Matlabpaketom Matlaby Matlab i rjesavanje jednainay Vektori funkcije i crtanje u matlab-uy Netnowa metoda rjesavanja jednacinay Metoda bisection rjesavanja jednacinay Metoda sekante rjesavanja jednacinay Rjesavanje linearnih sustava u matlabuy 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 methodshelp sym/sqrt.m
Izvravanje naredbi
y Izvravanje naredbi : Proitati naredbi (razumjeti je) Izvriti naredbu Ispisati rezultat
y Ukoliko liniju naredbe zavrimo sa ; naredba e se izvriti ali se njen rezultat nee ispisati>>A=5;>>
y Meukoraci iji rezultat nas ne zanimay Tekst iza znaka % zanemaruje se
>>A=5; %ovo je komentar>>% a=10>>
Jednostavni matematikiprorauni
y MATLAB moe posluiti za kao kalkulator>> 4*25+3
ans = 103
>>(2+1)^6ans =729
Osnovne aritmetikeoperacije
potenciranje^
"lijevo" dijeljenje\
"Desno" dijeljenje/
mnoenje*
oduzimanje-
zbrajanje+
Logiki i Relacijski operatoriy Logiki operatori rade s dvije vrijednostiy Logika istina sve osim 0, eksplicitno 1y Logika neistina 0y Logiki operatori u MATLAB-u su simboli:
~ (negacija)| (disjunkcija)&(konjunkcija)
Relacijski operatoriy Rezultat relacijske operacije je logika istina ili
neistinay Relacijski operatori su sljedei simboli:
nije jednako~=jednako==vee ili jednako>=manje ili jednakoManje> a=4 a = 4 >> b=25; >> c=3; >> d=a*b+cd = 103
Pravila imenovanja varijabliy potrebno je razlikovati uporabu
velikih/malih slovay maksimalni broj znakova je 31 y prvi znak mora biti slovo. y specijalne varijable iji su nazivi
rezervirani: ans, pi, eps, flops, inf, nan, i, j, nargin, nargout, realmin, realmax
Osnovne matematikefunkcijey 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 MATLABaMATLABov radni prostor
y MATLAB pamti varijable koje smo koristiliy Vrijable koje su u radnom prostoru moemo
vidjeti naredbomx who (ispis varijabli) >> who Your variables are: a b d kmpl2 p_kmpl1 y ans c kmpl1 kmpl3 x x whos (detaljniji ispis varijabli)>>whosName 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
MATLABov radni prostor
y Ukoliko neku vrijablu elimo izbrisati izradnog prostoray koristimo naredbu clear na nain:
>> clear p_kmpl1 x y ans>> who Your variables are: a c kmpl1 kmpl3 b d kmpl2
yWorkspace Browser otvara se odabirom Show Workspacenaredbe iz File izbornika
Spremanje i ponovnauporaba podatakay Sadraj radnog prostora moemo
spremiti s binarnim formatom u eljenudatoteku ime.mat naredbom>> save imeili iz menija File|Save Workspace as...y Uitavanje eljenog radnog prostora
vrimo naredbom>> load ime
ili iz menija File|Load Workspace...
Diary
y Diary imedatoteke.txt U datoteku imena imedatoteke.txt zapisuje
sve to se dogaa u komandnom prozoru
y DIARY OFF zaustavlja diaryy DIARY ON ukljuuje diaryy DIARY mijenja stanje y Datoteka se obino sprema u direktorij
C:\MATLABR11\work
Programi i funkcije u MATLABuy MATLAB ima i mogunost razvoja algoritama
u vlastitom programskom jeziku. y M-datoteke - pohranjuju se s ekstenzijoma '.m'. y Moemo razlikovati dvije vrste M-datoteka:
skripte funkcije
y Skripte - skup naredbi koje se prenose, i izvravaju u komandnom prozoru
y Funkcije - crne kutije kojima dajemo odreeniulaz i dobijamo traeni izlaz
Path varijablay Path je varijabla okoline koja sadri spisak
direktorija u kojima se nalaze izvrne datoteke. y U MATLABu path je unaprijed podeen za sve
direktorije u kojima se nalaze orginalneMATLABove naredbe
y Path podeavamo naredbom:>> path(path,'c:\temp\matlab\'); Ili promjenimo trenutni direktorij:>> cd c:\temp\matlab
MATRICE
y matrica tipa m x n.y Brojevi su elementi matrice ili komponente
matrice.y i -ti redaky j-ti stupacy Dijagonala matrice
Matrice
y Ako je m=n kaemo da je Akvadratna matrica reda n . y Ako je m=1 kaemo da je A retana
matrica (ima samo jedan redak), y Ako je n=1kaemo da je A stupana
matrica. y Retane i stupane matrice se jo
zovu vektori.
Matrice
yMatrice A i B su jednake ako su istogtipa i ako je aij=bij za sve paroveindeksa i,j
Zbrajanje matricay Mogu se zbrajati samo matrice istog tipa. Ako
su matrice A i B istog tipa, tada je matricay C=A+By istog tipa kao i matrice A i B i vrijedi
cij=aij+bijy Dakle, matrice se zbrajaju lan po lan. y Svojstva zbrajanja su :yy A+B=B+A (komutativnost)y (A+B)+C=A+(B+C) (asocijativnost)
Mnoenje matrica sa skalaromy Matrica se mnoi s nekim skalarom (brojem)
tako da se svaki element matrice pomnoi s timbrojem.
y Drugim rijeima, elementi matrice B=A subij=aij
y Svojstva ove operacije proizlaze direktno izsvojstava mnoenja brojeva:
y (A+B)=A+By (+)A=A+ Ay (A)=()A
Mnoenje matricay Definicija mnoenja matrica je na prvi pogled
neobina, ali upravo nam ona omoguavajednostvno zapisivanje sustava linearnihjednadbi.
y Matrice A i B moemo pomnoiti samo akosu ulanane, odnosno ako A ima onolikostupaca koliko Bima redaka. Matrica C=A*Bima 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:
987
654
321
*
963
852
741
14
=
1*1+2*2+3*3=14
19412250
1227732
5032
Mnoenje matrica
y mnoenje matrica openito nije komutativno.y vrijedi: y (i) (AB)C=A(BC) (asocijativnost), y (ii) A(B+C)=AB+AC(distributivnost), y (iii) (A+B)C=AC+BC(distributivnost), y (iv) (AB)=( A)B=A( B)
Element (2,3) se izraunava:
Nul matrica i jedinina matricay Kod zbrajanja brojeva broj 0 je neutralni
element s obzirom na zbrajanjey Analogija kod matrica je nul-matrica koja ima sve
elemente jednake nuli. Nul-matricu oznaavamos O, odnosno Omn kada elimo naglasiti o kojem tipu se radi.
y Kod mnoenja brojeva broj je neutralnielement s obzirom na mnoenje, odnosno
y Analogija kod matrica je jedinina matrica . Ukoliko matrica nije kvadratna, jedininematrice u odnosu na mnoenje slijeva i zdesnasu razliitog reda.
Nul matrica i jedinina matrica
Transponirana matricay Transponirana matrica matrice A je matrica AT
koja je definirana say [AT]ij=Ajiy Ako je A tipa m x n , AT je tima n x my Oito je (AT) Ty Vrijedi :
(A+B)T = AT +BT
(A)T =AT (AB)T =AT BT
y Matrica za koju je AT =A je simetrina matrica.
Operacije s matricamay Promatrati emo samo realne matrice,
odnosno dvodimenzionalna poljapodataka, i vektore, tj. jednodimenzionalna polja podataka.
987
654
3214321
Formiranje matrica>> A=[1,2,3;4,5,6;7,8,9] A =
1 2 3 4 5 6 7 8 9
>> B=[1 2 3;4 5 6;7 8 9]B =
1 2 3 4 5 6 7 8 9
Formiranje matricay Mogue je i automatizirano formiranje vektora>> x=(0:0.1:1)
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=linspace(0,1,11) 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 matricay Kreiranje matrica iji su elementi sluajni brojeviy Rand(m,n) kreira matricu dimenzija m x m iji su
elementi sluajno generirani brojevi izmeu 0 i 1y Rand(m)-kreira kvadratnu matricu dimenzija m x m iji
su elementi sluajno generirani brojevi izmeu 0 i 1y Ukoliko elimo brojeve 0 -10 moramo cijelu matricu
pomnoit s 10y A=fix(rand(3)*10)
A =
4 2 0 8 6 65 8 3
Formiranje matricay U MATLABu postoje funkcije kojima se
mogu definirati matrice iji elementi sujednaki jedinici i nuli (nul matrica)
>>R=eye(3)R =
1 0 00 1 0 0 0 1
>> Q=zeros(3) Q =
0 0 0 0 0 00 0 0
>> P=ones(3) P =
1 1 1 1 1 1 1 1 1
Pristupanje dijelu matricey Pojedini element matrice moemo ispisati
definiranjem njegova retka i stupca (npr. element matrice A u prvom retku i drugomstupcu) >> A(1,2) ans = 2
y Ukoliko elimo vidjeti prva dva retka matrice A >> A(1:2,:) ans = 1 2 3
4 5 6
Pristupanje dijelu matricey Mogua je korekcija pojedinih elemenata>> r=[101 102 103]; >> A(3,:)=r
A = 1 2 3 4 5 6 101 102 103
Pristupanje dijelu matricey Mogua je nadopuna matrice (npr. elimo
matricu B proiriti s dodatnim redomjednakim vektoru-retku r)
>> B=[B;r] B =
1 2 3 4 5 6 7 8 9 101 102 103
Pristupanje dijelu matricey Ukoliko bi kod matrice A definirali
element u drugom redu i estom stupcumatrica se proiruje na portebnudimenziju dodavajui na novodefiniranimmjestima nule.
>> A(2,6)=1 A =
1 2 3 0 0 0 4 5 6 0 0 1 101 102 103 0 0 0
Pristupanje dijelu matricey Ukoliko dio matrice izjednaimo s
praznom matricom [ ] isti dio se brieime se poetna matrica svodi na ostatak: >> A(:,4:5)=[ ] A =
1 2 3 0 4 5 6 1
101 102 103 0