vjezbe matlab-1

  • 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