MATLAB tutorial, 2. deo.pdf

Embed Size (px)

Citation preview

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    1/25

    MATLAB, tutorial, 2. deo

    Polinomi i interpolacione funkcije

    MATLAB predstavlja polinom kao vektor vrstu iji su elementi

    koeficijenti polinoma po opadajuem stepenu promenljive.

    Tako je p=[1 -6 -72 -27] prikaz polinoma x3-6x2-72x-27 uMATLAB-u.

    Funkcije namenjene za rad sa polinomima

    convmnoenje polinomadeconv deljenje polinomapoly karakteristini polinom

    polyder diferenciranje polinomapolyfit nalaenje polinoma kojim se aproksimiraju dati podacipolyvalizraunavanje vrednosti polinomapolyvalm izraunavanje vrednosti matrinog polinomaresidue razvoj u racionalne razlomke (reziduale)roots odreivanje nula polinoma

    rootsnalazi nule polinoma

    r=roots(p)

    p je vektor vrsta iji su elementi koeficijenti polinomaAko vektor p ima n+1 elemenata, onda on predstavlja polinom:p1sn+ + pns + pn+1Rezultat je vektor kolona iji su elementi nule polinoma definisanogvektorom p.

    Primer1:Nalaenje sopstvenih vrednosti matrice korienjem funkcija poly iroots.

    >> A = [-5.0 -52.06; 0.092 -0.443];>> p = poly(A)p =

    1.0000 5.4430 7.0045>> r = roots(p)r =

    -3.3556-2.0874

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    2/25

    polyfitnalazi polinom zadatog reda kojim se aproksimiraju dati podaci

    c = polyfit(x, y, n)

    c je vektor duine n+1, iji su elementi koeficijenti polinoma zadatogreda n kojim se aproksimiraju podaci dati u vektorima x i yKoeficijenti polinoma c se odreuju korienjem metode najmanjihkvadrata

    Primer2:pretpostavimo da su eksperimentalni podaci dati u vektorima x i y.Potrebno je izvriti njihovu aproksimaciju polinomom 4. stepena

    >> x = [0.1 0.3 0.4 0.44 0.5 0.7 0.8];

    >> y = [1 1.5 1.6 1.4 1.1 1.1 1.5];>> c = polyfit(x, y, 4)c =

    13.2447 1.3735 -20.3555 10.3114 0.1641

    polyvalizraunava vrednosti polinoma u zadatim takama

    y = polyval(c, X)

    gde je c vektor koji sadri koeficijente polinoma ije vrednosti treba

    izraunati za svaki element vektora ili matrice X

    Primer3:potrebno je izraunati vrednosti polinoma dobijenog u prethodnomprimeru u opsegu koji je definisan vektorom x (od 0.1 do 0.8)

    Na grafiku prikazati eksperimentalne podatke zvezdicama ivrednosti dobijene izraunavanjem polinoma kojim se aproksimirajueksperimentalni podaci punom linijom

    >> x1 = 0.1: 0.1: 0.8;>> y1 = polyval(c, x1);>> plot(x1, y1, x, y, *)

    Korienje funkcije plot bie objanjeno kasnije

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    3/25

    Funkcije koje slue za interpolaciju podataka

    griddata 2D interpolacija sa generisanjem xy mreeinterp1 1-dimenzionalna interpolacijainterp2 2-dimenzionalna interpolacija za zadatu xy mreu

    interpft 1-dimenzionalna interpolacija korienjem diskretneFurijeove transformacije

    interp1izvodi jednodimenzionalnu interpolaciju

    yi = interp1(x, y, xi)yi = interp1(x, y, xi, metod)

    yi = interp1(x, y, xi)

    daje vektor yi iji elementi odgovaraju elementima vektora xi, priemu su elementi yi izraunati interpolacijom pomou vektora y i xAko je y matrica sa n kolona i brojem redova jednakim duini vektorax, funkcija interp1 daje matricu yi istih dimenzija kao matrica y.

    Ukoliko se koristi prva opcija, odnosno ukoliko nije zadat metodinterpolacije, interp1 koristi linearnu interpolaciju

    yi = interp1(x, y, xi, metod)vri interpolaciju jednom od sledeih metoda:

    - linear

    - spline- cubic

    Sve navedene metode zahtevaju da su vrednosti elemenata vektorax monotono rastue (opadajue)

    cubic zahteva isto rastojanje izmeu susednih taaka

    Primer4:linearna interpolacija polinoma>> x = [0.1 0.3 0.4 0.44 0.5 0.7 0.8];

    >> y = [1 1.5 1.6 1.4 1.1 1.1 1.5];>> xi = [0.2 0.35 0.6 0.65 0.73 0.73 0.78];>> yi = interp1(x, y, xi)

    yi =1.25001.55001.10001.1000

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    4/25

    1.22001.30001.4200

    Funkcije funkcija

    Funkcije koje manipuliu MATLAB funkcijama u cilju reavanjazadataka kao to su:

    - analiza i crtanje funkcija- numerika integracija- reavanje sistema obinih diferencijalnih jednaina prvog reda- optimizacija linearnih i nelinearnih funkcija

    Postoji poseban MATLAB modul koji sadri dodatne funkcije zareavanje i optimizaciju nelinearnih jednaina (Optimization Toolbox)

    Funkcije u okviru ove grupe, koje se nalaze u osnovnom MATLAB-u:

    fmin nalaenje minimuma funkcije jedne promenljivefmins nalaenje minimuma funkcije vie promenljivihfplotcrtanje funkcijefzero nalaenje nula funkcije jedne promenljiveode23 reavanje sistema diferencijalnih jednaina metodom Runge-Kutta drugog i treeg redaode45 reavanje sistema diferencijalnih jednaina metodom Runge-Kutta etvrtog i petog redaode23p reavanje sistema diferencijalnih jednaina metodom

    Runge-Kutta drugog i treeg reda sa prikazivanjem rezultata ufaznoj ravniquad numeriko reavanje integrala metodom nieg redaquad8 numeriko reavanje integrala metodom vieg reda

    fplotcrta grafik funkcije

    fplot(fun, granice)fplot(fun, granice, marker)

    fplot(fun, granice, marker, tol)[x, Y] = fplot(fun, granice, )

    fplot(fun, granice)crta funkciju definisanu znakovnom promenljivom fun izmeuzadatih granica za nezavisno promenljivu definisanu vektoromgranice: [xmin, xmax]

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    5/25

    Funkcija koja se crta treba da ima oblik fun(x) gde je x vektor iji jeprvi element xmin a poslednji element xmax, tako da funkcija fun(x)predstavlja takoe vektor istih dimenzija kao x, koji sadri vrednostifunkcije u svim takama vektora x.Ako je fun vektorska funkcija, onda je svaka komponenta fun(x)

    kolona matrice.

    marker i tol su opcioni argumentimarker je znakovna promenljiva kojom se definie simbol zaiscrtavanje linijeukoliko ovaj argument nije zadat, crta se puna linija, to odgovarasimbolu -.

    Funkcija fplot prihvata i sledee simbole:-+, -x, -o, -*

    (ili +-, x-, o-, *-)

    tol je tolerancija relativne grekeUkoliko nije zadata, podrazumeva se 2e-3.

    Opcija [x, Y] = fplot(fun, granice, ) umesto crtea daje vrednostinezavisno promenljive u vektor koloni x i vrednosti zavisnopromenljive u kolonama matrice Y

    Primer5:korienje funkcije fplot za dobijanje grafika funkcije dfun definisane

    u funkcijskoj M-datoteci dfun.m (u prvom delu tutorijala)

    >> fplot(dfun, [0 30])>> ylabel(dfun)>> xlabel(t)

    Korienje funkcija ylabel i xlabel bie objanjeno u nastavku teksta.

    ode23, ode45reavaju sisteme obinih diferencijalnih jednaina prvog rede opcije:

    [t, x]=ode23(xprim, t0, tf, x0)[t, x]=ode23(xprim, t0, tf, x0, tol, status)[t, x]=odee45(xprim, t0, tf, x0)[t, x]=ode45(xprim, t0, tf, x0, tol, status)

    Prve dve opcije koriste metodu Runge-Kutta drugog i treeg reda, adruge dve metodu Runge-Kutta etvrtog i petog reda

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    6/25

    xprim je znakovna promenljiva koja predstavlja ime funkcijske M-datoteke u kojoj su definisane diferencijalne jednaine koje trebareitifunkcija xprim treba da bude definisana tako da ima najmanje 2ulazna argumenta, skalar t koji oznaava nezavisno promenljivu

    (najee vreme) i vektor kolonu x kao zavisno promenljivu (iji suelementi u sistemima upravljanja najee vrednosti promenljivihstanja)Izlazni argument funkcije xprim treba da definie vektor kolonu ijielementi predstavljaju izvode zavisno promenljive (promenljivihstanja)

    t0 je poetna, a tf je krajnja vrednost zavisno promenljivex0 je vektor kolona koja sadri poetne vrednosti (promenljivihstanja)

    tol je zahtevana tanost i, ukoliko nije drugaije zadato, za ode23iznosi 1.e-3, a za ode45 1.e-6status oznaava zahtev za tampanje meurezultata. Ukoliko se nezada, podrazumevana vrednost je 0 (meurezultati se ne tampaju)

    Izlazni argumenti funkcije su vektor vremenske promenljive t uintervalu (t0, tf) i matrica X, ije kolone odgovaraju pojedinimelementima vektora x (vektora promenljivih stanja), a vrsterazliitim elementima vektora t.

    Primer6:

    Diferencijalna jednaina drugog reda oblika:

    + (x2-1)+x=0

    poznata je kao Van der Polova jednaina.Ona se moe napisati kao sistem od dve spregnute diferencijalne

    jednaine prvog reda:

    1= x1(1-x22)-x2

    2= x1

    Da bi se reio ovaj sistem jednaina, najpre e biti formirana

    funkcijska M-datoteka vdpol.m koja sadri prethodne diferencijalnejednaine prvog reda:

    function xdot=vdpol(t, x)xdot = [x(1).*(1-x(2).^2)-x(2); x(1)];

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    7/25

    Reavanje sistema diferencijalnih jednaina definisanog u vdpol.m, zaopseg nezavisno promenljive t od 0 do 20 i poetne vrednosti 0 i0.25, izvodi se pozivanjem funkcije ode23, a zatim se dobijenirezultati prikazuju grafiki:

    >> t0 = 0;>> tf = 20;>> x0 = [0 0.25];>> [t, X] = ode23(vdpol, t0, tf, x0);>> plot(t, X(:, 1), -, t, X(:, 2), :)>> gtext(x)>> gtext(x)>> xlabel(t)>> ylabel(x)

    quad, quad8slue za izraunavanje odreenog integrala funkcije

    s = quad(funkcija, a, b)s = quad(funkcija, a , b, tol)s = quad(funkcija, a , b, tol, status)s = quad(funkcija, a , b, tol, status, p1, p2, )s = quad8

    quad(funkcija, a , b)daje rezultat numerike integracije funkcije funkcija u granicama od a

    do b

    tol je opcioni argument kojim se definie veliina relativne greke.Ukoliko se ne zada, automatski dobija vrednost 1e-3

    status oznaava zahtev za prikazivanjem vrednosti funkcijetakama na grafiku. Ukoliko se ne zada, ima vrednost 0 koja znai dase grafik ne dobija

    s = quad(funkcija, a , b, tol, status, p1, p2, )

    omoguava da se parametri p1, p2, direktno proslede u funkcijufunkcija

    Argumenti funkcije quad8 imaju isto znaenje kao kod funkcije quad.

    Ove 2 funkcije se razlikuju po tome to koriste 2 razliite metode zanumeriku integraciju.quad koristi Simpsonovo pravilo

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    8/25

    a quad 8 Newton-Cotesovo pravilo

    2D grafici

    Grafiki sistem MATLAB-a ine dva nivoa funkcija.

    Prvom nivou pripadaju visoko razvijene funkcije za prikazivanje 2D i3D podatakaDrugi, nii, nivo grafikog sistema MATLAB-a ine funkcije kojima sedefinie izgled grafika (boja, orijentacija koordinatnih osa, viegrafika na jednoj slici)

    Pregled grafikih funkcija za prikazivanje 2D podataka i funkcija zaoznaavanje 2D grafika:

    funkcije za crtanje elementarnih 2D grafika

    fill 2D poligoniloglog 2D grafik sa logaritamskom podelom na osamaplot2D grafik sa linearnom podelom na osamasemilogx 2D grafik sa logaritamskom podelom samo na x-osisemilogy 2D grafik sa logaritamskom podelom samo na y-osi

    specijalni xy grafici

    barcompasserrorbar

    featherfplotgrafik funkcijehistpolarrosestairsstemcomet animirano grafiko prikazivanje 2D podataka

    plot

    daje grafik sa linearnom podelom na osama

    plot(Y)plot(x, Y)plot(x, Y, marker)plot(x1, Y1, marker1, x2, Y2, marker2, )

    plot(Y) crta kolone matrice Y u funkciji od njenih indeksa

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    9/25

    Ako je Y kompleksna matrica, plot(Y) je ekvivalentno saplot(real(Y), imag(Y)U svim drugim sluajevima, imaginarni deo se zanemaruje

    plot(x, Y) crta kolone matrice Y u funkciji od x

    plot(x, Y, marker) moe se definisati tip (vrsta i boja) linije ili oznakemarker je znakovna promenljiva koja se sastoji od jednog, dva ili triznaka (simbola za liniju, odnosno oznaku i boju) u zavisnosti od togada li se definie samo vrsta linije ili oznake, samo boja ili obojeMogue su sledee oznake za tip i boju linije, odnosno oznake:

    simbol linije ili oznake simbol za boju. taka y utao krug m magenta

    x x-znak c plavo-zelena+ plus r crvena* zvezdica g zelena- puna linija b plava-. crta-taka k crna: takasta linija w bela-- isprekidana linija

    plot(x1, Y1, marker1, x2, Y2, marker2, )povezuje crtee definisane tripletima (x, Y, marker).Ukoliko nije definisan tip linije, MATLAB automatski crta pune linije i

    uzima redom prvih 6 navedenih boja.

    loglogdaje grafik sa logaritamskom podelom na x i y-osi.

    loglog(x, Y)loglog(x, Y, marker)loglog(x1, Y1, marker1, x2, Y2, marker2, )

    Znaenje argumenata je isto kao kod funkcije plot.

    Primer7:

    Crtanje funkcije3 2

    1

    1x x+ + +u logaritamskom dijagramu

    >> x = 0.1: 0.1: 10;>> y = 1./ (x.^3 + x.^2 + x + 1);>> loglog(x, y)

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    10/25

    >> grid

    semilogx, semilogyDaje dijagram sa semilogaritamskom podelom

    semilogx(x, Y)semilogy(x, Y)

    semilogx(x, Y) daje dijagram sa logaritamskom podelom na x-osi ilinearnom podelom na y-osi

    semilogy(x, Y) daje dijagram sa logaritamskom podelom na y-osi ilinearnom podelom na x-osi

    Grafici koji se dobijaju navedenim grafikim funkcijama nemajuoznake koordinatnih osa niti bilo koji drugi ispisan tekst, kao to jenaziv grafika ili linije.

    Korienjem sledeih funkcija mogue je ispisivanje teksta na grafikuu unapred odreenoj ili proizvoljno izabranoj poziciji

    gridlinije mreegtexttekst na poziciji oznaenoj miemtexttekst na navedenoj pozicijititlenaziv grafikaxlabeloznaka za x-osu

    ylabeloznaka za y-osu

    Naime, korienjem funkcija title i xlabel (ylabel), na grafiku seispisuje naslov, odnosno naziv grafika i oznaka uz x-, y-osu.

    Funkcije text i gtext omoguavaju da se naziv grafika, oznaka osa ilineki drugi tekst ispie na tano definisanoj poziciji ili pozicijiizabranoj miem.

    Najvee mogunosti ima funkcija text koja raspolae velikim brojemopcionih ulaznih argumenata kojima se definiu karakteristiketeksta (pozicija, orijentacija, ) koji se ispisuje na grafiku.Njeni argumenti se definiu na isti nain kao argumenti funkcije axeskoja e biti kasnije detaljno opisana

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    11/25

    gtextpostavlja tekst na poziciju izabranu miem

    gtext(tekst)

    tekst je tekst koji treba ispisati na grafiku.Posle izvrenja komande, na grafiku se pojavljuje krsti koji se miemdovodi na mesto gde treba ispisati tekst.Sa dva pritiska na taster mia, tekst se ispisuje.

    xlabel, ylabel, zlabelomoguavaju ispisivanje oznaka za x-, y- i z-osu

    xlabel(tekst)ylabel(tekst)

    zlabel(tekst)

    xlabel(tekst) ispisuje navedeni tekst uz x-osu tekueg dijagramaylabel(tekst) ispisuje tekst uz y-osuzlabel(tekst) ispisuje tekst uz z-osu

    titleispisuje naslov odnosno naziv za tekui crte

    title(tekst)

    Grafiko predstavljanje 3D podataka

    Neke funkcije prikazuju 3D podatke linijama u 3D graficima (plot3,contour3) ili linijama u 2D graficima (contour)

    Druge prikazuju iste podatke pomou 3D mreastih ili obojenihpovrina (mesh, surf, ) kod kojih trea dimenzija odreujeintenzitet boje.

    Boja je u MATLAB-u definisana vektorom od 3 elementa koji imajuvrednosti od 0 do 1 i definiu intenzitet crvene, zelene i plave boje,respektivno (tzv. RGB vrednosti).

    Na primer,[0 0 0] je crna[1 1 1] bela[1 0 0] crvena

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    12/25

    [27/255 1 27/255] marinsko plava

    Matrica boja moe imati bilo koji broj vrsta, ali samo tri kolone.

    Funkcije za crtanje linija i popunjavanje povrina u 3D prostoru

    comet3 animirano grafiko prikazivanje 3D podatakafill3 3D poligoni popunjeni bojomplot3 linije i take u 3D prostoru

    Konturni 2D i 3D i drugi 2D grafici 3D podataka

    clabel oznake konturnih linijacontour konturne linije u 2D prostorucontour3 konturne linije u 3D prostoru

    contourc matrica konturnog crteaimage prikazivanje slike definisane matricom bojapcolor karta bojaquiver prikazivanje podataka vektorima definisanog pravca, smera iintenziteta

    clabelispisuje oznake konturnih linija

    clabel(C)clabel(C, v)

    clabel(C, manual)

    clabel(C) dodaje oznake kojima se definie z-koordinata linijama napostojeem konturnom crteu, koristei konturnu matricu C koja sedobija funkcijama contour, contourc, contour3. Pozicija oznaka jesluajna.

    clabel(C, v) ispisuje oznake za konturne linije iji su nivoi (z-koordinata) dati u vektoru v. Ukoliko ovaj vektor nije definisan,oznake se ispisuju za sve konturne linije

    clabel(C, manual) omoguava postavljanje oznaka na pozicijamaizabranim pomou mia. Proces se prekida pritiskom na tasterEnter.

    contourprikazuje 3D podatke konturnim linijama u 2D prostoru

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    13/25

    contour(Z)contour(x, y, Z)contour(Z, n)contour(Z, v)contour(x, y, Z, n)

    contour(x, y, Z, v)C = contour()[C, h] = contour()

    contour(Z) daje konturni crte matrice Z sa unapred definisanimkarakteristikama grafika. Da bi se dobio grafik sa drugaijimkarakteristikama, koriste se naredne opcije:

    contour(Z, n) daje konturni crte sa n konturnih linija

    contour(Z, v) daje konturni crte sa konturnim nivoima uvrednostima zadatim u vektoru v (z-koordinata)

    contour(x, y, Z), contour(x, y, Z, n) i contour(x, y, Z, v) proizvodetakoe konturni crte matrice Z, pri emu je opseg koordinatnih osaodreenih vektorima x i y

    C = contour() koja ima jedan izlazni argument daje kao rezultatgrafik i konturnu matricu C. Konturna matrica bez crtanja grafikamoe se dobiti korienjem funkcije contourc.

    [C, h] = contour() pored grafika i konturne matrice C daje i vektor hkoji sadri numerike identifikatore svih nacrtanih konturnih linija

    Primer8:

    konturni crte funkcije2 2 2( 1)7 x y xye e

    = + u 2D prostoru za opseg -

    4x5 i -3y3

    >> y = -3: 0.2 : 3;>> x = -4: 0.3 : 5;>> [X, Y] = meshgrid(x, y);

    >> Z = 7* Y .* exp(-X .^ 2 Y .^ 2) exp( - (X+1) .^ 2);>> C = contour(x, y, Z, [-2 -1 0 1.2 2.2])>> clabel(C)

    contour3prikazuje 3D podatke konturnim linijama u 3D prostoru

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    14/25

    contour3(Z)contour3(Z, n)contour3(X, Y, Z)contour3(Z, v)contour3(X, Y, Z, n)

    contour3(X, Y, Z, v)C = contour3()[C, h] = contour3()

    Opcije funkcije contour3 imaju potpuno analogno znaenje kaoodgovarajue opcije funkcije contour.Ulazni argumenti X i Y su matrice kojima se definie opseg x-,odnosno y-ose.

    Primer9:

    Prikazaemo funkciju Z definisanu u prethodnom primeru, ovogaputa konturnim linijama u 3D grafikuDomen funkcije je isti kao u prethodnom primeru, a nivoi koje trebaprikazati: -2.4, -2, -1, 0, 0.6, 1.2, 1.6 i 2.2

    >> y = -3: 0.2: 3;>> x = -4: 0.3: 5;>> [X, Y] = meshgrid(x, y);>> contour3(X, Y, Z, [-2.4 -2 -1 0 0.6 1.2 1.6 2.2])

    Funkcije kojima se 3D podaci prikazuju pomou povrina u 3D

    prostoru

    (mogu se dobiti i grafici koji su kombinacija mreastih (obojenih)povrina i konturnih linija, kao i neke druge modifikacije ovih grafika)

    mesh 3D mreaste povrinemeshc 3D mreaste povrine sa konturnim linijamameshz 3D mreaste povrine sa linijskim zastorom ili referentnomravni ispod povrineslice grafik koji pokazuje povrine preseka odreene zapremine

    surf 3D obojene povrinesurfc 3D obojene povrine sa konturnim linijamasurfl 3D obojene povrine sa svetlosnim efektimawaterfall nepotpune mreaste povrine

    mesh, meshc, meshzcrtaju 3D mreaste povrine

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    15/25

    mesh(X, Y, Z, C)mesh(X, Y, Z)mesh(x, y, Z, C)mesh(x, y, Z)mesh(Z, C)

    mesh(Z)meshc()meshz()

    mesh(X, Y, Z, C) crta mreastu troparametarsku povrinudefinisanu matricama X, Y i Z. Boja linija mree definie se matricomC.

    mesh(X, Y, Z) koristi C=Z

    opcije mesh(x, y, Z, C) i mesh(x, y, Z) sa 2 vektorska argumentaumesto 2 matrina argumenta zahtevaju da je length(x)=n ilength(y)=m gde je [m n]=size(Z). U ovom sluaju svakoj taki mreeodgovara triplet (x(j), y(i), Z(i, j))

    opcije mesh(Z, C) i mesh(Z) koriste x=1:n i y=1:m

    korienjem opcija meshc() mreastom crteu se dodaju konturnelinije u xy ravni, dok opcije meshz() dodaju linijski zastor ilireferentnu ravan ispod mreaste povrine.

    Primer10:grafiki prikaz funkcije

    2 2 2 2 2 22 ( 1) 3 5 ( 1)1( , ) 3(1 ) 10( )5 3

    x y x y x yxf x y x e x y e e + + =

    trodimenzionalnom mreastom povrinom sa konturnim linijama u

    xy ravni, u opsegu -3x3 i -3(y(3

    >> [X, Y] = meshgrid(-3: 0.125: 3);>> Z = 3.*(1-X).^2.*exp(-X.^2-(Y+1).^2)-10.*(X./5-X.^3-Y.^5).*

    exp(-X.^2-Y.^2)-1/3.*exp(-(X+1).^2-Y.^2);

    >> meshc(X, Y, Z)>> text(0, -4, 13, peaks)

    Napomena: MATLAB sadri demonstracionu datoteku peaks.mkojom je definisana istoimena funkcija, ijim se pozivanjemautomatski moe dobiti grafiki prikaz ove funkcije u obliku obojene

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    16/25

    povrine. Razliite opcije korienja funkcije peaks mogu se dobitikomandom help peaks.

    surf, surfc, surflcrta 3D obojene povrine

    surf(X, Y, Z, C)surf(X, Y, Z)surf(x, y, Z, C)surf(x, y, Z)surf(Z, C)surf(Z)surfc(...)surfl(...)

    surf(X, Y, Z, C) crta obojenu troparametarsku povrinu definisanumatricama X, Y i Z. Boja se definie matricom C

    surf(X, Y, Z) koristi C=Z

    opcije surf(x, y, Z, C) i surf(x, y, Z) sa 2 vektorska argumenta x i yumesto matrinih argumenata X i Y, zahtevaju da je length(x)=n ilength(y)=m gde je [m, n]=size(Z)U ovom sluaju svakoj taki mree odgovara triplet (x(j), y(i), Z(i, j))

    opcije surf(Z, C) i surf(Z) koriste x=1:n i y=1:m

    opcije surfc() su identine sa odgovarajuim opcijama funkcijesurf(), izuzev to se dobijaju i konturne linije u xy ravni

    funkcija surfl omoguuje osvetljavanje prikazane trodimenzioneobojene povrine, definisanjem poloaja svetlosnog izvora

    Primer11:>> n=31;>> [X, Y, Z] = sphere(n);

    >> surf(X, Y, Z)

    U ovom primeru je za generisanje 3D podataka koriena funkcijasphere koja je opisana kasnije

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    17/25

    Slede specifine grafike funkcije koje izvode odreene manipulacije3D graficima kao to su:- transformacija u zavisnosti od ugla posmatranja prikazanogobjekta (view)- promena orijentacije i razmere koordinatnih osa (axis)

    - prikazivanje vie grafika u jednom koordinatnom sistemu, tako dajedan grafik zaklanja drugi ili da se kroz jedan grafik moe videti idrugi (hidden)

    Funkcije za definisanje pojavnog oblika grafika

    axis orijentacija i podela na osama 3D grafikacaxis opseg boja za 3D grafikecolormap matrica bojahidden onemoguava prekrivanje linija

    view ugao posmatranja 3D grafika

    funkcije koje omoguavaju unoenje bilo koje vrste teksta u 3Dgrafike

    grid linije mreetext teksttitle naziv grafikaxlabel oznake za x-osu

    ylabel oznake za y-osuzlabel oznake za z-osu

    MATLAB sadri dve karakteristine M-datoteke cylinder.misphere.mza izraunavanje matrice kojom se definie cilindar

    jedinine visine, odnosno sfera sa jedininim poluprenikom.

    U zavisnosti od oblika komande kojom se pozivaju ove funkcije, dobijase matrica ili grafik sfere, odnosno cilindra.

    cylinder cilindarsphere sfera

    Grafike funkcije opte namene

    skup grafikih funkcija nieg nivoaomoguavaju dobijanje grafika eljenog izgleda definisanjem bojesamog grafikog prozora, koordinatnih osa, svih ili odreenih linija nagrafiku, podele na osama, ugla posmatranja, pozicije grafika u okvirugrafikog prozora, itd.

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    18/25

    isto tako, pomou njih mogu da se izvode manipulacije sa tekstom,linijama, povrinama i drugim grafikim objektima na postojeemgrafiku

    MATLAB razlikuje sledee grafike objekte:

    ekran (root)grafiki prozor (figure)koordinatne ose (axes)liniju (line)povrinu (surface)tekstualni sadraj grafika (text)sliku matrice podataka (image)popunjeni poligon (patch) koji se dobija korienjem funkcije fill ili fill3glavni meni grafikog prozora (uimeni)grafiku vezu kojom se obezbeuje kontrola grafikih funkcija od

    strane korisnika (uicontrol)

    Svi individualni grafiki objekti imaju poseban numeriki identifikator(handle) koji se dodeljuje objektu prilikom njegovog formiranja. Nekigrafici, kao to su konturni crtei, sadre vie objekata (individualnelinije konturnog crtea), tako da svaki od njih ima posebanidentifikator.

    Kontrola grafikog prozora

    clf brisanje sadraja aktivnog grafikog prozora

    close zatvaranje grafikog prozorafigure otvaranje grafikog prozoragcf dobijanje numerikog identifikatora aktivnog grafikog prozora

    Kontrola koordinatnih osa

    axes crtanje koordinatnog sistemaaxis kontrola podele i izgleda koordinatne osecaxis kontrola pseudobojegca dobijanje numerikog identifikatora aktivnog koord. sistema

    hold omoguavanje prikazivanja vie grafikasubplot crtanje vie koordinatnih sistema na odreenim pozicijamagrafikog prozora

    Grafiki objekti se formiraju pozivanjem odgovarajuih funkcija:(imaju veliki broj opcionih argumenata koji predstavljaju parove(svojstvo objekta, vrednost svojstva objekta) i koji omoguavaju dase dobije grafik eljenog izgleda)

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    19/25

    Glavni grafiki objekti

    axes koordinatni sistemfigure grafiki prozorimage slika matrice podataka

    line linijapatch popunjeni poligonsurface obojena povrinatext tekstuicontrol grafika veza sa korisnikom u okviru grafikog prozorauimeni glavni meni grafikog prozora

    subplotomoguuje crtanje vie grafika u okviru jednog grafikog prozora

    subplot(m, n, p)

    unutar grafikog prozora pravi mxn matricu linearnih dvodimenzionihgrafika i aktivira p-ti. Ako grafik ve postoji na naznaenoj poziciji,ovom komandom se aktivira za korienje

    axescrta koordinatni sistem eljenog izgleda

    axesaxes(h)

    h = axes(svojstvo, vrednost, )

    axes bez argumenata automatski crta koordinatni sistem idodeljuje odreenu vrednost numerikom identifikatoru hkoordinatnog sistema. Vrednost identifikatora h aktivnogkoordinatnog sistema moe se dobiti komandom gca. Veliina ipozicija koordinatnog sistema su automatski zadate, tako dakoordinatni sistem ispunjava ceo grafiki prozor.

    axes(h) aktivira za korienje koordinatni sistem iji je numeriki

    identifikator h

    h = axes(svojstvo, vrednost, ) omoguava formiranjekoordinatnog sistema eljenog izgleda. Prvi argument definiesvojstvo (osobinu), a drugi vrednost svojstva. Ova opcija pruamogunost da koordinatnom sistemu kao grafikom objektupromenimo vrednosti nekih svojstava koje su automatski zadate,ukoliko nam te vrednosti ne odgovaraju.

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    20/25

    Sledi prikaz naziva i moguih vrednosti najvanijih svojstavakoordinatnog sistema:

    - Position definie poziciju koordinatnog sistema unutargrafikog prozora. Vrednost ovog svojstva je odreena

    vektorom od 4 elementa. Prva 2 elementa definiu rastojanjenjegovog donjeg levog ugla od donjeg levog ugla grafikogprozora, dok druga dva elementa definiu irinu i visinupravougaonika u koji se smeta koord. sistem

    - AspectRatio je vektor sa 2 elementa. Prvi definie odnosduine vertikalne ose prema duini horizontalne ose. Drugielement definie odnos jedinice duine vertikalne ose prema

    jedinici duine horizontalne ose- Children je vektor numerikih identifikatora svih grafikih

    objekata unutar koordinatnog sistema, npr. linija

    -

    Clim je vektor sa 2 elementa: [cmin, cmax]. Ovo svojstvodefinie kako MATLAB preslikava podatke u kartu boja. Ukolikionije drugaije definisano, najmanjem podatku odgovara prvielement karte boja, a najveem poslednji. Ovo se moepromeniti tako to se sa cmin definie najmanji podatak koji sepridruuje prvom elementu karte boja, a sa cmax najveipodatak koji se pridruuje poslednjem elementu karte boja.Podaci izvan ovog opsega se nee videti.

    - Color je znakovna promenljiva koja oznaava odreenu boju.Ovim svojstvom se definie boja pravougaonika u koji sesmetaju koordinatne ose

    - - ColorOrder boja linija na crteu. Ukoliko nije ve definisana

    funkcijama plot ili plot3-

    - GridLineStyle tip linije mree -, --, -. , :- NextPlot da li e se naredni grafik prikazati u novom

    koordinatnom sistemu (new), dodati u aktivni koordinatnisistem (add) ili e se prikazati u aktivnom poto se prethodnigrafik izbrie (replace)

    - Parent numeriki identifikator grafikog prozora u kojem se

    crta koordinatni sistem. Vrednost identifikatora aktivnoggrafikog prozora se moe dobiti funkcijom gcf

    - - TickLength zadaje duinu crtice za oznaku podele na osama, u

    jedinicama normalizovanim relativno u odnosu na dimenzijepravougaonika u koji je smeten koordinatni sistem. Ovosvojstvo se definie vektorom sa dva elementa od kojih prvidefinie duinu oznaka za 2D grafike, a drugi za 3D grafike

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    21/25

    - Units definie jedinice koje se koriste za definisanje svojstvaPosition. Sve mere se raunaju u odnosu na donji levi ugaografikog objekta. Ovo svojstvo moe da ima sledeevrednosti: pixels, normalized, inches, centimeters, points.Normalizovane jedinice oznaavaju donji levi ugao grafikog

    prozora kao (0, 0), a gornji desni sa (1.0, 1.0) (1 point = 1/72ina)

    - View je vektor sa 2 elementa ([az, el]) koji definie taku kojase koristi za transformaciju 3D grafika u 2D

    - Visible moe imati vrednosti on ili off. Ovo svojstvo odreujeda li se objekat prikazuje na ekranu ili ne. Ako je vrednostsvojstva Visible off, koordinatne ose, podela i oznake na osamase ne prikazuju na ekranu. Ukoliko nije drugaije definisano,automatski se zadaje on.

    setdefinie svojstva grafikih objekata

    set(h, svojstvo, vrednost, ...)set(h)set(h, svojstvo)

    set(h, svojstvo, vrednost, ...)(h numeriki identifikator grafikog objekta) definie odreenuosobinu grafikog objekta tako to joj dodeljuje navedenu vrednost

    set(h) ispisuje sva svojstva grafikog objekta definisanognumerikikm identifikatorom h zajedno sa njihovim vrednostima

    set(h, svojstvo) ispisuje mogue vrednosti navedenog svojstvagrafikog objekta iji je identifikator h

    (funkcija print omoguava i uvanje grafika u datotekama razliitihformata)

    orient izbor orijentacije papira pri tampanju grafikog prozora

    print tampanje grafika ili uvanje u datoteciprintopt definisanje konfiguracija lokalnog aktivnog tampaa

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    22/25

    printtampa sadraj grafikog prozora ili ga uva u datoteci sanavedenim imenom

    print

    print datotekaprint format datoteka

    print bez argumenata alje sadraj grafikog prozora na tampadefinisan u datoteci printopt.m

    print datotekauva sadraj grafikog prozora u datoteci ije je ime navedeno. Akonije naveden nastavak imena datoteke, MATLAB automatskidodeljuje odgovarajui

    print format datotekauva sadraj grafikog prozora u datoteci ije je ime dato, dok jeformat definisan sa formatMATLAB raspolae velikim brojem upravljakih programa koji definiuformat od kojih navodimo samo neke:-dps-dpsc-deps-dgif8-dpcx256

    -dhpgl-dlaserjet

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    23/25

    Funkcije znakovnih promenljivih

    2 tipa podataka:- numeriki- znakovni

    Znakovni tip podataka sastoji se od niza ASCII znakova.Znakovni podaci se unose okrueni jednostrukim apostrofima.

    Znak apostrofa je takoe doputen i predstavlja se sa 2 uzastopnaapostrofa.

    Prazno mesto se tretira kao i svaka druga znakovna vrednost

    Primer12:

    Neka je S znakovna promenljiva kojoj hoemo da dodelimo vrednostMATLAB

    >> S = M A T LABS =

    M A T LAB

    Svaki znak promenljive S tretira se kao 1 element vektora tako da jeS vektor sa 9 elemenata (3 prazna mesta)

    >> size(S)

    ans =9

    Opte funkcije za rad nad znakovnim promenljivim

    abs konverzija znakova u ASCII numerike vrednostievalizvravanje znakovne vrednosti kao MATLAB komandeisstr nalaenje znakovnih vrednostisetstr konverzija ASCII numerike vrednosti u znakovnestr2mat formiranje matrice znakovnih promenljivih

    strings informacije o znakovnim promenljivama

    Poreenje znakovnih vrednosti

    lower zamena velikih slova malimstrcmp poreenje znakovnih vrednostiupper zamena malih slova velikim

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    24/25

    abspokazuje ASCII numeriku vrednost za svaki znak znakovnepromenljive

    Y = abs(S)

    gde je S znakovna promenljiva

    Primer13:>> c = abs(S)c =

    77 32 65 32 84 32 76 65 66(S je znakovna promenljiva definisana u prethodnom primeru)

    str2matformira matricu znakovnih promenljivih

    S = str2mat(t1, t2, t3, )

    formira matricu S koja sadri znakovne promenljive t1, t2, t3, kao vrste matrice

    strcmpuporeuje znakovne promenljive

    k = strcmp(s1, s2)

    k ima vrednost 1 ako su znakovne promenljive s1 i s2 identine, a 0ako nisu

    Konverzija znakovnih vrednosti u numerike i obrnuto

    int2strnum2strsprintf (numeriki -> znakovni prema datom formatu)sscanf (znakovni -> numeriki prema datom formatu)str2num

    int2strkonverzija celobrojnih numerikih vrednosti u znakovne

    s = int2str(n)

  • 7/24/2019 MATLAB tutorial, 2. deo.pdf

    25/25

    num2strkonverzija numerikih vrednosti u znakovne

    s = num2str(x)

    str2numkonverzija znakovnih vrednosti u numerike

    x = str2num(s)

    prevodi u broj tekst s koji pored ASCII brojeva moe da sadridecimalnu taku i znake ili +

    Konverzija heksadecimalnih brojeva u decimalne i obrnuto

    dec2hexhex2dechex2num (u decimalne brojeve sa dvostrukom preciznou)