Biografije Karakteristike Analiza

Dot plot u matlab-u. Plotting Matlab

3. 3D grafika .

Grafovi funkcija dviju varijabli su dijelovi površina koje vise nad područjima definicije funkcija. Iz ovoga je jasno da je za prikaz grafova funkcija dvije varijable potrebna implementacija "trodimenzionalne grafike" na ravnom ekranu računara.

MATLAB-ov grafički podsistem visokog nivoa automatski implementira 3D grafiku bez ikakvog posebnog napora od strane korisnika. Neka se vrijednost funkcije z=f(x,y) izračuna u tački sa koordinatama x1,y1 i jednaka je z1. U nekoj drugoj tački (tj. sa različitom vrijednošću argumenata) x2,y2 izračunajte vrijednost funkcije z2. Nastavljajući ovaj proces, dobijamo niz (skup) tačaka (x1,y1,z1), (x2,y2,z2), (xN,yN,zN) u količini od N komada koji se nalaze u trodimenzionalnom prostoru. Posebne funkcije MATLAB sistema crtaju glatke površine kroz ove tačke i prikazuju njihove projekcije na ravnom kompjuterskom displeju.

Najčešće su tačke argumenata pravilno raspoređene u domenu funkcije u obliku pravokutne mreže (tj. matrice). Takva mreža tačaka generiše dvije matrice iste strukture: prva matrica sadrži vrijednosti prvih koordinata ovih tačaka (x - koordinate), a druga matrica sadrži vrijednosti drugih koordinata (y - koordinate). Označimo prvu matricu kao X, a drugu - kao Y. Postoji i treća matrica - matrica vrijednosti funkcije z=f(x,y) sa ovim argumentima. Ova matrica će biti označena slovom Z.

Najjednostavnija funkcija za crtanje funkcije dvije varijable u MATLAB sistemu je funkcija

plot3(X, Y, Z)

gdje su X, Y i Z matrice iste veličine, čije značenje smo upravo objasnili.

MATLAB ima posebnu funkciju za dobijanje dvodimenzionalnih nizova X i Y iz jednodimenzionalnih nizova x, y.

P P> Neka x-osi bude dat raspon vrijednosti kao vektor

u=-2:0,1:2

a na y-osi ovaj raspon je

v=-1:0,1:1

Da biste dobili matrice X i Y koje predstavljaju prve i druge koordinate rezultirajuće pravokutne mreže tačaka, koristite posebnu funkciju MATLAB sistema:

[ X , Y ] = mreža (u, v)

Kao što vidimo, ova funkcija prima kao ulaz dva jednodimenzionalna niza (vektora) koji predstavljaju nizove tačaka na koordinatnim osama i odmah vraća dva potrebna dvodimenzionalna niza. Na pravokutnoj mreži točaka izračunavamo vrijednosti funkcije, na primjer, funkcije exp:

Z = exp(- X.^2 - Y.^2)

Konačno, koristeći gore opisanu funkciju plot3, dobijamo sljedeću sliku trodimenzionalnog grafa ove funkcije:

Iz ove slike se može vidjeti da je funkcija plot3 iscrtana kao skup linija u prostoru, od kojih je svaka presjek trodimenzionalne površine ravninama paralelnim s ravninom yOz. Na drugi način možemo reći da je svaka linija dobijena iz segmenata pravih koji povezuju skup tačaka čije su koordinate uzete iz istih stupaca matrice X, Y i Z. To jest, prva linija odgovara prvim stupcima matrice X, Y Z matrice; drugi red - u druge kolone ovih matrica i tako dalje.

Za crtanje trodimenzionalnih linija koje su parametarski postavljene, koristi se drugi oblik poziva funkcije plot3:

plot3(x, y, z)

gdje su x, y i z jednodimenzionalni nizovi koordinata tačaka, koje moraju biti povezane u seriju linijskim segmentima. Na primjer, sljedeći isječak koda

t = 0: pi/50: 10*pi ;

x = sin(t);

y = cos(t);

plot3(x, y, t);

grid on

gdje se primjenjuje naredba poznata iz ravnih grafova

grid on

za postavljanje mreže koordinatnih vrijednosti u području crtanja (takođe je moguće koristiti komande i funkcije za dizajn grafova, prethodno razmatrane za "ravni" slučaj), omogućava vam da izgradite spiralu , čija je slika prikazana na sljedećoj slici:

Pored ove jednostavne funkcije, MATLAB sistem ima niz funkcija koje vam omogućavaju da postignete veći realizam u prikazu trodimenzionalnih grafova. Ovo su funkcije mesh, surf i surf.

Mrežna funkcija povezuje izračunate susjedne tačke površine grafa sa segmentima linija i prikazuje u grafičkom prozoru MATLAB sistema ravnu projekciju takvog trodimenzionalnog tijela "žičane mreže". Umjesto grafa funkcije prethodno prikazane pomoću funkcije plot3

exp(- X.^2 - Y.^2)

možete dobiti ovu sliku

Za bolju percepciju "volumena" slike, različite ivice se automatski farbaju u različite boje. Osim toga (za razliku od funkcije plot3), skrivene linije se uklanjaju. Ako mislite da je prikazano rebrasto tijelo prozirno i da ne bi trebalo sakriti zadnje linije, tada možete unijeti naredbu hidden off, nakon čega će se takve linije pojaviti na slici. Gušća slika površine može se postići ako umjesto

mesh funkcija primjenjuje surf(X, Y, Z) funkciju.

Kao rezultat, dobija se sljedeća slika koja predstavlja gustu (neprozirnu) površinu mreže, a pojedinačne ćelije (lice) ove mrežne površine (ravni četverouglovi) se automatski farbaju u različite boje.

Korištenjem surf funkcije dobivaju se, iako umjetno obojene, ali vrlo vizualne slike. Ako želimo postići prirodnije i objektivnije načine farbanja površina, onda bi trebali koristiti funkciju surf.

Surfl funkcija tretira površinu grafa kao površinu materijala sa određenim fizičkim svojstvima refleksije svjetlosti. Standardno je postavljen određeni izvor svjetlosti koji osvjetljava takvu površinu materijala, nakon čega se izračunavaju putanje reflektiranih zraka koje ulaze u objektiv uslovne kamere. Slika u takvoj kameri se prikazuje u grafičkom prozoru MATLAB sistema.

Budući da različiti materijali različito odražavaju upadne zrake, moguće je odabrati neki materijal da biste dobili najbolju (sa stanovišta korisnika) sliku. Konkretno, možete koristiti funkciju

mapa boja (bakar)

uz pomoć kojih se odabire skup boja (na engleskom - colormap) za sliku grafikona, što je tipično za svjetlost reflektovanu od bakarne površine (bakar na engleskom - bakar). Nakon toga, primjena funkcije

surfati (X, Y, Z)

umjesto surf(X,Y,Z) rezultira vrlo realističnim i vrlo vizualnim grafikonom:

Moguće je ukloniti crne linije koje predstavljaju rubove sa takvog grafa, kao i postići još glatkiji prijelaz površinskog osvjetljenja, ako izvršite naredbu

sjenčanje interp

što znači da će se sada boja (osvjetljenje) promijeniti čak i unutar pojedinačnih lica (ćelija). Kao rezultat, dobiće se vrlo stvarna slika neke trodimenzionalne figure. Bolje ili lošije o zadatku prikazivanja grafova funkcija dvije varijable, na konkretnom korisniku je da prosudi.

Prikazivanje funkcije kao tabele korisno je kada postoji relativno mali broj vrednosti funkcije. Neka se zahtijeva da se u komandnom prozoru prikaže tablica vrijednosti funkcije

u tačkama 0.2, 0.3, 0.5, 0.8, 1.3, 1.7, 2.5.
Problem se rješava u dvije faze.
1. Kreira se vektor reda X, koji sadrži koordinate datih tačaka.
2. Izračunavaju se vrijednosti funkcije y(X) iz svakog elementa vektora X a rezultirajuće vrijednosti se upisuju u vektor reda y.
Vrijednosti funkcije moraju se pronaći za svaki od elemenata vektora reda X, tako da se moraju izvršiti operacije u izrazu za funkciju element po element.

» x =
x =
0,2000 0,3000 0,5000 0,8000 1,3000 1,7000 2,5000 y = sin(x).^2./(l+cos(x))+exp(-x).*log(x)
Y =

Imajte na umu da kada pokušavate koristiti eksponencijaciju ^, deljenje / i množenje * (koji nisu elementarni), poruka o grešci se prikazuje već kada se sin(x) kvadrira:

"y \u003d sin (x) ^ 2 / (1 + cos (x)) + exp (-x) * log (x)
??? Greška u korištenju ==> ^
Matrica mora biti kvadratna.

Činjenica je da se u MatLabu operacije * i ^ koriste za množenje matrica odgovarajućih veličina i podizanje kvadratne matrice na stepen.
Tablica se može učiniti čitljivijom postavljanjem vrijednosti funkcije direktno ispod vrijednosti argumenata:

" X
x =
0,2000 0,3000 0,5000 0,8000 1,3000 1,7000 2,5000 »
y=
-1.2978 -0.8473 -0.2980 0.2030 0.8040 1.2258 1.8764

Često je potrebno prikazati vrijednost funkcije na tačkama segmenta koje su međusobno razmaknute za jednaku udaljenost (korak). Pretpostavimo da trebamo prikazati tablicu vrijednosti funkcije y(X) na segmentu sa korakom od 0,2. Možete, naravno, unijeti vektor reda vrijednosti argumenata x= iz komandne linije i izračunajte sve vrijednosti funkcije kao što je gore opisano. Međutim, ako korak nije 0,2, već, na primjer, 0,01, onda je potrebno puno posla da se uđe u vektor X.
MatLab omogućava jednostavno kreiranje vektora čiji se svaki element razlikuje od prethodnog po konstantnoj vrijednosti, tj. jedan korak. Dvotočka se koristi za unos takvih vektora (ne brkati sa indeksiranjem debelog crijeva). Sljedeća dva operatora rezultiraju formiranjem identičnih vektora reda. Možete uslovno pisati

» x =
x =
» x =
x =
1.0000 1.2000 1.4000 1.6000 1.8000 2.0000

Možete uslovno pisati

x = [početna vrijednost: korak: krajnja vrijednost]

Nije potrebno voditi računa o tome da zbir vrijednosti pretposljednjeg koraka bude jednak konačnoj vrijednosti, na primjer, prilikom izvršavanja sljedećeg izraza dodjele

» x =
x =
1.0000 1.2000 1.4000 1.6000 1.8000

Vektor reda će se popuniti do elementa koji ne prelazi krajnju vrijednost koju smo definirali. Korak također može biti negativan:

» x =
x =
1.9000 1.7000 1.5000 1.3000 1.1000

U slučaju negativnog koraka, da bi se dobio vektor reda koji nije prazan, početna vrijednost mora biti veća od krajnje vrijednosti.
Da biste popunili vektor stupca elementima koji počinju od nule i završavaju na 0,5 u koracima od 0,1, popunite vektor reda i zatim koristite operaciju transponiranja:

"x="
x =
0
0.1000
0.2000
0.3000
0.4000
0.5000

Imajte na umu da elementi vektora ispunjenog dvotočkom mogu biti samo stvarni, tako da možete koristiti apostrof umjesto tačke iza koje slijedi apostrof za transpoziciju.
Korak jednak jedan možda neće biti naveden tokom automatskog punjenja:

» x =
x =
1 2 3 4 5

Neka je potrebno prikazati tablicu vrijednosti funkcije

na segmentu sa korakom od 0,05,
Da biste izvršili ovaj zadatak, morate izvršiti sljedeće korake:
1. Formirajte vektor reda X koristeći debelo crijevo.
2. Izračunajte vrijednosti at(X) od elemenata X.
3. Zapišite rezultat u vektor reda y.
4. Povući se X i y.

» x = ;
» y = exp(-x).*sin(10*x);
" X
x =
Kolone od 1 do 7
O 0,0500 0,1000 0,1500 0,2000 0,2500 0,3000
Kolone od 8 do 14
0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500
Kolone od 15 do 21
0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000
» at
Y =
Kolone od 1 do 7
0 0.4560 0.7614 0.8586 0.7445 0.4661 0.1045
Kolone od 8 do 14
-0.2472 -0.5073 -0.6233 -0.5816 -0.4071 -0.1533 0.1123
Kolone od 15 do 21
0.3262 0.4431 0.4445 0.3413 0.1676 -0.0291 -0.2001

vektor reda x i y sastoje se od dvadeset i jednog elementa, i ne staju na ekran u jedan red, pa se prikazuju u dijelovima. As X i y pohranjeni u dvodimenzionalnim nizovima dimenzija jedan prema dvadeset jedan, a zatim se prikazuju u kolonama, od kojih se svaka sastoji od jednog elementa. Prvo se prikazuju kolone od 1 do 7 (kolone 1 do 7), zatim kolone od 8 do 14 (kolone od 8 do 14), i na kraju kolone od 15 do 21 (kolone od 15 do 21). Vizuelniji i praktičniji je grafički prikaz funkcije.

2. Iscrtavanje funkcije jedne varijable

2.1. Grafovi funkcija na linearnoj skali

MatLab ima dobro razvijene grafičke mogućnosti za vizualizaciju podataka. Razmotrimo na početku konstrukciju najjednostavnijeg grafa funkcije jedne varijable na primjeru funkcije

,

definisano na segmentu. Izlaz funkcije u obliku grafa sastoji se od sljedećih koraka:
1. Određivanje vektora vrijednosti argumenata X.
2. Vektorski proračun at vrijednosti funkcije y(X).
3. Pozivanje komande plot za iscrtavanje grafa.
Naredbe za određivanje vektora X i bolje je završiti proračune funkcije tačkom-zarezom kako bi se potisnuo izlaz njihovih vrijednosti u komandni prozor (nije potrebno stavljati tačku-zarez nakon naredbe plot, jer ne ispisuje ništa u komandni prozor).

» x = ;
» y = exp(-x).*sin(10*x);
»plot(x, y)

Nakon izvršenja naredbi, na ekranu se pojavljuje prozor. figure br. 1 sa grafom funkcije. Prozor sadrži meni, traku sa alatkama i oblast grafikona. U nastavku će biti opisane komande posebno dizajnirane za dizajn grafikona. Sada nas zanima sam princip crtanja i neke od najjednostavnijih mogućnosti za vizualizaciju funkcija.
Da biste nacrtali graf funkcije u MatLab radnom prostoru, dva vektora iste dimenzije moraju biti definirana, npr. X i y. Odgovarajući niz x sadrži vrijednosti argumenata, a y sadrži vrijednosti funkcija tih argumenata. Naredba plot povezuje tačke sa koordinatama (x(i), y(i)) pravim linijama, automatski skalirajući osi za optimalno pozicioniranje dijagrama u prozoru. Prilikom crtanja grafova, zgodno je postaviti glavni MatLab prozor i prozor sa grafom jedan pored drugog na ekran tako da se ne preklapaju.
Konstruirani graf funkcije ima kinkove. Za preciznije crtanje, funkcija se mora izračunati y(X) na većem broju tačaka na segmentu , tj. postavite manji korak prilikom unosa vektora X:

» x = ;
» y = exp(-x).*sin(10*x);
»plot(x, y)

Rezultat je graf funkcije u obliku glatkije krive.
Pogodno je upoređivati ​​nekoliko funkcija prikazivanjem njihovih grafikona na istim osama. Na primjer, na intervalu [-1, -0.3] crtamo grafove funkcija
,

koristeći sljedeći niz naredbi:

» x = [-1:0,005:-0,3];
» f = sin(x.^-2);
» g = sin(1.2*x.^-2);
» plot(x, f, x, g)

Funkcije ne moraju biti definirane na istom segmentu. U ovom slučaju, prilikom crtanja, MatLab odabire maksimalni segment koji sadrži ostatak. Važno je samo označiti vektore koji odgovaraju jedan drugom u svakom paru vektora apscisa i ordinata, na primjer:

» x1 = [-1:0,005:-0,3];
» f = sin(x1.^-2);
» x2 = [-1:0,005:0,3];
» g = sin(1.2*x2.^-2);
» plot(x1, f, x2, g)

Slično, specificiranjem parova argumenata oblika: apscisni vektor, ordinatni vektor u dijagramu, odvojeni zarezima, iscrtavaju se grafovi proizvoljnog broja funkcija.

Napomena 1

Korištenje dijagrama sa jednim argumentom, vektorom, rezultira "vektorskom grafikom", tj. ovisnost vrijednosti vektorskih elemenata o njihovom broju. Argument plot takođe može biti matrica, u kom slučaju se grafovi kolona prikazuju na istim koordinatnim osama.
Ponekad želite da uporedite ponašanje dve funkcije čije se vrednosti veoma razlikuju jedna od druge. Grafikon funkcije s malim vrijednostima praktički se spaja sa osom apscise, a njegov izgled se ne može odrediti. U ovoj situaciji pomaže funkcija plotyy, koja prikazuje grafikone u prozoru s dvije vertikalne ose koje imaju odgovarajuću skalu.
Uporedite, na primjer, dvije funkcije: i

» x = ;
» f = x.^-3;
» F \u003d 1000 * (x + 0,5).^-4;
» plotyy(x, f, x, F)

Dok izvodite ovaj primjer, primijetite da se boja grafikona poklapa s bojom njegove odgovarajuće y-ose.
Funkcija plotiranja koristi linearnu skalu na obje koordinatne ose. Međutim, MatLab pruža korisniku mogućnost da iscrta funkcije jedne varijable na logaritamskoj ili polulogaritamskoj skali.

2.2. Grafovi funkcija u logaritamskim skalama

Sljedeće funkcije se koriste za crtanje logaritamskih i semilogaritamskih razmjera:
- loglog (logaritamska skala na obje ose);
- semilogx (logaritamska skala samo duž x-ose);
-semilogija (logaritamska skala samo duž y-ose).

Argumenti loglog, semilogx i semilogy specificiraju se kao par vektora vrijednosti apscise i ordinate na isti način kao i za funkciju grafikona opisanu u prethodnom paragrafu. Konstruirajmo, na primjer, grafove funkcija i na segmentu u logaritamskoj skali duž ose X:

» x = ;
» f = log(0,5*x);
» g = sin(log(x));
» semilogx(x, f, x ,g)

2.3. Postavljanje svojstava linija na grafovima funkcija

Konstruirani grafovi funkcija trebaju biti što je moguće pogodniji za percepciju. Često morate primijeniti markere, promijeniti boju linija, a u pripremi za jednobojni ispis - postaviti vrstu linije (puna, tačkasta, crtica, itd.). MatLab pruža mogućnost kontrole izgleda grafova izgrađenih korištenjem plot, loglog, semilogx i semilogy, za koje se postavlja dodatni argument nakon svakog para vektora. Ovaj argument je zatvoren u apostrofima i sastoji se od tri znaka koji specificiraju: boju, tip markera i tip linije. Koriste se jedna, dvije ili tri pozicije, ovisno o potrebnim promjenama. Tabela prikazuje moguće vrijednosti ovog argumenta s rezultatom.

tip markera

tip linije

kontinuirano

tačkasta

crtica-tačkasta

znak plus

isprekidano

zvijezda

Trougao naopako

trougao naopako

Trougao usmjeren na lijevo

trougao koji pokazuje desno

petokraka zvijezda

šestokraka zvijezda

Ako, na primjer, trebate iscrtati prvi graf sa markerima crvenih tačaka bez linije, a drugi graf sa crnom isprekidanom linijom, onda biste trebali koristiti graf (x, f, "r.", x, g, "k:").

2.4. Dizajn funkcionalnih grafova

Pogodnost korištenja grafikona uvelike ovisi o dodatnim elementima dizajna: koordinatnoj mreži, oznakama osi, naslovu i legendi. Mreža se iscrtava pomoću komande grid on, oznake za ose se postavljaju pomoću xlabel, ylabel, naslov se daje komandom title. Imati više grafikona na istim osama zahtijeva postavljanje legende uz naredbu legende s informacijama o linijama. Sve gore navedene naredbe primjenjive su na grafove u linearnoj i logaritamskoj i polulogaritamskoj skali. Sljedeće komande prikazuju grafikone promjene dnevne temperature, koji sadrže sve potrebne informacije.

» vrijeme = ;
» temp1 = ;
» temp2 = ;
» plot(vrijeme, temp1, "ro-", vrijeme, temp2, "kreni-")
» grid on
» title("Dnevne temperature")
» xlabel("Vrijeme (sat)")
» ylabel("Temperatura (C)")
» legenda("10. maj, 11. maj")

Kada dodajete legendu, imajte na umu da red i broj argumenata naredbe legende moraju odgovarati linijama na grafikonu. Posljednji dodatni argument može biti pozicija legende u grafičkom prozoru:

* -1 - izvan grafikona u gornjem desnom uglu grafičkog prozora;
* 0 - najbolja pozicija unutar grafikona se bira tako da se sami grafovi što je manje moguće preklapaju;
* 1 - u gornjem desnom uglu grafikona (ova pozicija se podrazumevano koristi);
* 2 - u gornjem lijevom uglu grafikona;
* 3 - u donjem lijevom uglu grafikona;
* 4 - u donjem desnom uglu grafikona.

Dozvoljeno je dodavanje formula i promjena stilova fonta koristeći TeX format u naslovu grafikona, legendi i oznakama osi.
MatLab prikazuje grafikone u različitim bojama. Jednobojni štampač će štampati grafiku u različitim nijansama sive, što nije uvek zgodno. Naredba plot vam omogućava da jednostavno postavite stil i boju linija, na primjer

» plot(x,f,"k-",x,g,"k:")

izvodi konstrukciju prvog grafikona punom crnom linijom, a drugog - crnom isprekidanom linijom. Argumenti "k-" i "k:" određuju stil i boju prvog i drugog reda. Ovdje k ​​znači crno, a crtica ili dvotočka znači punu ili isprekidanu liniju. Prozor grafikona se može zatvoriti klikom na dugme sa krstićem u gornjem desnom uglu.

3. Iscrtavanje funkcija dvije varijable

Iscrtavanje funkcije dvije varijable u MatLabu na pravokutnom području definicije varijable uključuje dva preliminarna koraka:
1. Particioniranje domene definicije pravokutnom mrežom.
2. Izračunavanje vrijednosti funkcije na mjestima presjeka linija mreže i njihov unos u matricu.
Nacrtajmo funkciju z(x,at)= X 2 + at 2 na domenu definicije u obliku kvadrata X pripada , y- . Potrebno je podijeliti kvadrat s uniformnom mrežom (na primjer, s korakom od 0,2) i izračunati vrijednosti funkcija na čvorovima označenim točkama.
Pogodno je koristiti dva dvodimenzionalna niza x i y, dimenzija šest puta šest, za pohranjivanje informacija o koordinatama čvorova. X niz se sastoji od identičnih nizova koji sadrže koordinate x 1, X 2, ..., X 6 i niz at sadrži iste kolone kao y1, at 2, ..., at 6. Zapisujemo vrijednosti funkcije na čvorovima mreže u niz z iste dimenzije (6 x 6) i izračunavamo matricu Z koristite izraz za funkciju, ali sa element po element matrične operacije. Onda, na primjer z(3,4) samo će biti jednaka vrijednosti funkcije z(x,y) u tački (x3, atčetiri). Za generiranje nizova mreža X i at prema koordinatama čvorova u MatLab-u, omogućena je funkcija meshgrid, za iscrtavanje grafa u obliku žičane površine, mesh funkcija. Sljedeći iskazi uzrokuju da se na ekranu pojavi prozor s grafom funkcije (nema točka-zareza na kraju izraza kako bi se kontroliralo generiranje nizova):

» = mreža (0:0.2:1,0:0.2:1)
X=

0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
y=
0 0 0 0 0 0
0.2000 0.2000 0.2000 0.2000 0.2000 0.2000
0.4000 0.4000 0.4000 0.4000 0.4000 0.4000
0.6000 0.6000 0.6000 0.6000 0.6000 0.6000
0.8000 0.8000 0.8000 0.8000 0.8000 0.8000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

» Z = X.^2+Y.^2

Z=
0 0.0400 0.1600 0.3600 0.6400 1.0000
0.0400 0.0800 0.2000 0.4000 0.6800 1.0400
0.1600 0.2000 0.3200 0.5200 0.8000 1.1600
0.3600 0.4000 0.5200 0.7200 1.0000 1.3600
0.6400 0.6800 0.8000 1.0000 1.2800 1.6400
1.0000 1.0400 1.1600 1.3600 1.6400 2.0000

Koji su nedostaci izgrađenog grafikona? I kako ih eliminisati? Izrađeni raspored i novi treba uključiti u elektronski izvještaj o laboratorijskom radu.

MatLab vam omogućava da nacrtate dodatne informacije na grafikonu, posebno korespondenciju boja sa vrijednostima funkcije. Mreža se generira pomoću naredbe meshgrid, koja se poziva s dva argumenta. Argumenti su vektori čiji elementi odgovaraju mreži na pravokutnom području konstrukcije funkcije. Jedan argument se može koristiti ako je površina na kojoj je funkcija ucrtana kvadrat. Da biste izračunali funkciju, trebali biste koristiti operacije po elementima .

Razmotrite glavne značajke koje pruža MatLab za vizualizaciju funkcija dvije varijable, koristeći primjer crtanja grafa funkcija

na pravougaonoj domeni X pripada [-1, 1], y .
Pripremimo matrice s koordinatama čvorova mreže i vrijednostima funkcije:

» = meshgrid(-1:0.05:1, 0:0.05:1);
» Z = 4*sin(2*pi*X).*cos(1,5*pi*Y).*(1-X.^2).*Y.*(1-Y);

Za konstrukciju žičane površine koristi se funkcija mreže koja se poziva s tri argumenta:

Boja površinskih linija odgovara vrijednostima funkcije. MatLab crta samo vidljivi dio površine.

Uz pomoć komande skriveno Možete učiniti žičanu površinu "prozirnom" dodavanjem skrivenog dijela. Komanda hidden on uklanja nevidljivi dio površine, vraćajući grafiku njihov prvobitni izgled.

Funkcija surf gradi žičanu površinu grafa funkcije i ispunjava svaku ćeliju površine određenom bojom, ovisno o vrijednostima funkcije u točkama koje odgovaraju uglovima ćelije. Unutar svake ćelije, boja je konstantna. Pogledajte rezultate naredbe

Zapovjedi ravno sjenčanje omogućava vam da uklonite žičane linije. Komanda shading interp se koristi za dobivanje površine glatko ispunjene bojom ovisno o vrijednostima funkcije.
Sa fasetiranim senčenjem, možete se vratiti na površinu pomoću žičanih okvira.
3D dijagrami proizvedeni gore opisanim naredbama pogodni su za dobivanje ideje o obliku površine, ali je teško iz njih suditi o vrijednostima funkcije. MatLab definira naredbu colorbar, koja prikazuje traku pored grafa koja uspostavlja korespondenciju između boje i vrijednosti funkcije. Iscrtajte površinu pomoću surfanja i upotpunite je informacijama o bojama.

»surf(X,Y,Z)
» kolorbar

Naredba kolorbar može se koristiti zajedno sa svim funkcijama koje crtaju 3D objekte.

Koristeći obojenu površinu, teško je izvući zaključak o vrijednosti funkcije u određenoj tački u ravnini xy. Naredbe meshc ili surfc omogućuju vam da dobijete precizniju predstavu o ponašanju funkcije. Ove komande konstruišu žičanu površinu ili žičanu površinu ispunjenu bojom i postavljaju je na ravan xy linije na nivou funkcije (linije konstantnosti vrijednosti funkcije):

»surfc(X,Y,Z)
» kolorbar

MatLab vam omogućava da konstruišete površinu koja se sastoji od linija nivoa koristeći funkciju contour3. Ova funkcija se može koristiti na isti način kao mesh, surf, meshc i surfc iznad sa tri argumenta. U ovom slučaju, broj linija nivoa se bira automatski. Moguće je navesti kao četvrti argument u konturi3 ili broj linija nivoa ili vektor čiji su elementi jednaki vrijednostima funkcije prikazane kao linije nivoa. Određivanje vektora (nivoa, četvrtog argumenta) je zgodno kada želite da istražite ponašanje funkcije u određenom rasponu njenih vrijednosti (isječak funkcije). Konstruirajte, na primjer, površinu koja se sastoji od linija nivoa koje odgovaraju vrijednostima funkcije od 0 do 0,5 s korakom od 0,01:

» nivoi = ;
» kontura3(X, Y, Z, nivoi)
» kolorbar

4. Izrada konturnih dijagrama funkcija dvije varijable

MatLab pruža mogućnost dobijanja različitih tipova konturnih dijagrama koristeći funkcije konture i konture. Razmotrimo njihove mogućnosti na primjeru funkcije

Korištenje konture s tri argumenta

»kontura (X,Y,Z)

rezultira grafikom koji prikazuje linije nivoa na ravni xy, ali bez navođenja numeričkih vrijednosti na njima . Takav grafikon je neinformativan, ne dozvoljava vam da saznate vrijednosti funkcije na svakoj od linija nivoa. Korištenje naredbe colorbar također vam neće omogućiti da precizno odredite vrijednosti funkcije. Svaka linija nivoa može biti snabdjevena vrijednošću koju funkcija koja se proučava na njoj preuzima, koristeći funkciju clabel definiranu u MatLabu. Funkcija clabel se poziva sa dva argumenta: matricom koja sadrži informacije o linijama nivoa i pokazivačem na grafikon koji treba označiti. Korisnik ne mora sam kreirati argumente clabel. Funkcija konture, pozvana sa dva izlazna parametra, ne samo da crta linije nivoa, već i pronalazi potrebne parametre za klabel. Koristite konturu sa izlaznim argumentima CMatr i h (CMatr niz sadrži informacije o linijama nivoa, a niz h sadrži pokazivače). Završite poziv na konturu tačkom i zarezom da biste suzbili prikaz vrijednosti izlaznih parametara i nacrtajte mrežu:

» = kontura(X, Y, Z);
» clabel(CMatr, h)
» grid on

Dodatni argument funkciji konture (baš kao što je gore opisano contour3) može biti ili broj linija nivoa ili vektor koji sadrži vrijednosti funkcije za koje treba nacrtati linije nivoa.
Vizuelne informacije o promeni funkcije daju se popunjavanjem pravougaonika na ravni xy boja u zavisnosti od vrednosti funkcije u tačkama ravni. Za izgradnju ovakvih grafova namijenjena je funkcija contourf, čija se upotreba ne razlikuje od upotrebe konture. Sljedeći primjer prikazuje grafikon koji se sastoji od dvadeset linija nivoa, a praznine između njih su ispunjene bojama koje odgovaraju vrijednostima funkcije koja se proučava:

» kontura (X, Y, Z, 20)
» kolorbar

5. Dizajn grafova funkcija

Jednostavan i efikasan način za promjenu sheme boja grafikona je postavljanje palete boja pomoću funkcije mape boja. Sljedeći primjer pokazuje kako pripremiti dijagram funkcije za ispis na jednobojnom pisaču koristeći sivu paletu.

» surfc(X, Y, Z)
»colorbar
» mapa boja (siva)
» title("Grafikon funkcije z(x,y)")
» xlabel("x")
» ylabel("y")
» zlabel("z")

Imajte na umu da naredba colormap(gray) mijenja paletu grafičkog prozora, tj. sljedeći grafikoni će biti prikazani u ovom prozoru također u sivim tonovima. Da biste vratili originalnu vrijednost palete, koristite naredbu colormap("default"). Palete boja dostupne u MatLabu prikazane su u tabeli. 2.

tabela 2


Paleta

Promjena boje

Glatka promjena crveno - narandžasto - žuto.

Slično sivoj paleti, ali sa blagim naznakom plave boje.

Svaka boja se mijenja iz tamne u svijetlu.

Nijanse plave i ljubičaste.

Bakrene nijanse.

Biciklizam crveno - bijelo - plavo - crno.

Nijanse sive.

Glatka promjena crno - crveno - narandžasto - žuto - bijelo.

Glatka promjena poput duginih boja.

Glatka promjena plava - cijan - crvena - zelena - žuta - crvena.

Slično sivoj paleti, ali sa blagim naznakom smeđe boje

Biciklizam crveno - narandžasto - žuto - zeleno - plavo - ljubičasto.

Nijanse ljubičaste i žute.

Nijanse zelene i žute.

Windows paleta od šesnaest boja.

Jedna bijela boja.

Nijansa plave i zelene.

6. Prikaz više grafikona na istoj osi

Za prikaz više grafova funkcija jedne varijable na istim osama korištene su mogućnosti funkcija plot, plotyy, semilogx, semlogy, loglog. Oni vam omogućavaju da iscrtate više funkcija specificiranjem odgovarajućih vektorskih argumenata u parovima, kao što je plot(x,f,x,g). Međutim, ne mogu se koristiti za kombinovanje 3D crteža. Za kombinovanje ovakvih grafova predviđeno je zadržavanje naredbe, koja se mora specificirati prije crtanja. U sljedećem primjeru, kombinacija dva grafika (ravnine i konusa) rezultira njihovim presjekom. Konus je parametarski specificiran sljedećim ovisnostima:

, , , .

Da biste grafički prikazali konus, prvo morate generirati vektor stupca i vektor reda koristeći dvotočku, koji sadrži vrijednosti parametara u datom intervalu (važno je da u M. Vektor kolone i vektor reda su matrice sa jednom dimenzijom jednakom jedinici. zapravo, OD = abT, gdje se množenje odvija prema pravilu matrični proizvod. Operator zvjezdice se koristi za izračunavanje matričnog proizvoda u MatLabu. Definirajmo vanjski proizvod za dva vektora:

» a = ;
» b = ;
»C=a*b"
C=
5 6 7
10 12 14
15 18 21

Formiramo matrice X,Y, neophodno za grafički prikaz konusa:

» X = 0,3*u*cos(v);
» Y = 0,3*u*sin(v);

Matrix Z moraju biti iste veličine kao i matrice X i Y. Osim toga, mora sadržavati vrijednosti koje odgovaraju vrijednostima parametara. Ako je funkcija uključivala proizvod i i v, zatim matrica Z mogu se popuniti na isti način kao i matrice X i Y uz pomoć eksternog proizvoda. S druge strane, funkcija z(u,v) može se predstaviti kao , gdje . Stoga, da izračunate Z može se primijeniti vanjski proizvod vektora i , gdje vektor reda ima istu dimenziju kao v, ali se sastoji od jedinica:

» Z = 0,6*u*jedinica(veličina(v));

Sve potrebne matrice za prikaz konusa su kreirane. Ravan je definisan na sledeći način:

» = meshgrid(-2:0,1:2);
» Z = 0,5*X+0,4*Y;

Sada nije teško zapisati kompletan niz naredbi za konstruisanje konusa i ravnine koja se seku:

» u = [-2*pi:0.1*pi:2*pi]";
» v = [-2*pi:0.1*pi:2*pi];
» X = 0,3*u*cos(v);
» Y = 0,3*u*sin(v);
» Z = 0,6*u*jedinica(veličina(v));
» surfati (X, Y, Z)
» = meshgrid(-2:0,1:2);
» Z = 0,5*X+0,4*Y;
" Čekaj
» mreža (X, Y, Z)
» skriveno isključeno

Komanda hidden off se koristi za prikaz dijela konusa koji se nalazi ispod ravnine.
Imajte na umu da se naredba čekanja primjenjuje na sve naredne izlaze grafova u trenutni prozor. Da biste postavili grafikone u nove prozore, izvršite naredbu čekanja isključenja. Zadržavanje naredbe se također može koristiti za uređenje nekoliko grafova funkcija jedne varijable, na primjer,

»plot(x,f,x,g)

je ekvivalentna sekvenci

»plot(x,f)
" Čekaj
» plot(x,g)

Rezultati mog rada:

MatLab pruža bogat alat za vizualizaciju podataka. Koristeći interni jezik, možete prikazati 2D i 3D dijagrame u kartezijanskim i polarnim koordinatama, prikazati slike s različitim dubinama boja i različitim mapama boja, kreirati jednostavne animacije rezultata simulacije tokom proračuna i još mnogo toga.

3.1. funkcija zapleta

Uzimajući u obzir mogućnosti MatLaba za vizualizaciju podataka, počnimo s dvodimenzionalnim grafovima, koji se obično grade pomoću funkcije plot (). Mnoge opcije za ovu funkciju najbolje je razmotriti na konkretnim primjerima.

Pretpostavimo da želite iscrtati sinusnu funkciju u rasponu od 0 do . Da bismo to učinili, postavljamo vektor (skup) točaka duž ose Ox, u kojem će biti prikazane vrijednosti sinusne funkcije:

Rezultat je vektor stupca sa skupom vrijednosti od 0 do i sa korakom od 0,01. Zatim izračunavamo skup vrijednosti sinusne funkcije u ovim točkama:

i prikažite rezultat na ekranu

Kao rezultat, dobijamo grafikon prikazan na Sl. 3.1.

Prikazani unos funkcije plot() pokazuje da se prvo upisuje argument sa skupom tačaka ose Ox, a zatim argument sa skupom tačaka ose Oy. Poznavajući ove vrijednosti, funkcija plot() ima mogućnost da iscrta tačke na ravni i da ih linearno interpolira kako bi se dobio kontinuirani dijagram.

Rice. 3.1. Prikaz sinusne funkcije pomoću funkcije plot().

Funkcija plot() se također može napisati s jednim argumentom x ili y:

plot(x);
parcela(y);

Kao rezultat, dobijamo dva različita grafikona prikazana na Sl. 3.2.

Analiza sl. 3.2 pokazuje da u slučaju jednog argumenta, funkcija plot() prikazuje skup tačaka duž ose Oy i automatski generiše skup tačaka sa jediničnim korakom duž ose Ox. Stoga, da biste jednostavno vizualizirali vektor kao dvodimenzionalni graf, dovoljno je koristiti funkciju plot() s jednim argumentom.

Za iscrtavanje više dijagrama na istoj koordinatnoj osi, funkcija plot() je napisana na sljedeći način:

x = 0:0,01:pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2);

Rezultat ovog fragmenta programa prikazan je na Sl. 3.3.

Rice. 3.2. Rezultati funkcije plot() s jednim argumentom:

a – plot(x); b – parcela(y).

Rice. 3.3. Prikaz dva grafikona u istim koordinatnim osama.

Slično, dva dijagrama se mogu iscrtati koristeći jedan argument funkcije plot(). Pretpostavimo da postoje dva vektora vrijednosti

y1 = sin(x);
y2 = cos(x);

da se prikaže na ekranu. Da bismo to učinili, kombiniramo ih u dvodimenzionalnu matricu

u kojoj su kolone sastavljene od vektora y1 i y2, respektivno. Takva matrica će biti prikazana od strane funkcije

plot(); % apostrofa prevode vektor reda
% u vektor kolone

u obliku dva grafikona (slika 3.4).

Rice. 3.4. Prikaz dvodimenzionalne matrice u obliku dva grafikona.

Dva vektora u istoj osi mogu se prikazati samo ako su njihove dimenzije iste. Kada radite sa vektorima različitih dimenzija, oni moraju biti ili dovedeni jedan do drugog brojem elemenata, ili prikazani na različitim grafikonima. Postoji nekoliko načina za prikaz grafikona u različitim koordinatnim osa. U najjednostavnijem slučaju, možete kreirati dva grafička prozora i prikazati željenu grafiku u njima. To se radi na sljedeći način:

x1 = 0:0,01:2*pi;
y1 = sin(x1);

x2 = 0:0,01:pi;
y2 = cos(x2);


figure; % kreiranje 2. grafičkog prozora
plot(x2, y2); % crta 2. grafikon u 2. prozoru

Funkcija figure koja se koristi u ovom programu kreira novi grafički prozor i čini ga aktivnim. Funkcija plot(), pozvana odmah nakon funkcije figure, će prikazati dijagram u trenutno aktivnom grafičkom prozoru. Kao rezultat, na ekranu će biti prikazana dva prozora sa dva grafikona.

Neugodnost gornjeg programskog fragmenta je u tome što će ponovljeni poziv funkcije figure prikazati još jedan novi prozor na ekranu, a ako se program izvrši dvaput, tada će se na ekranu pojaviti tri grafička prozora, ali samo dva će sadržavati stvarni podaci. U ovom slučaju, bilo bi bolje napraviti program tako da se na ekranu uvijek prikazuju dva prozora sa potrebnim grafikonima. Ovo se može postići ako se prilikom poziva funkcije figure kao argument navede broj grafičkog prozora koji će se kreirati ili ga aktivirati ako je već kreiran. Dakle, gornji program se može napisati na sljedeći način.

x1 = 0:0,01:2*pi;
y1 = sin(x1);

x2 = 0:0,01:pi;
y2 = cos(x2);

slika (1); %kreirajte prozor broj 1
plot(x1, y1); % crtanje prvog grafikona
slika (2); % kreirati grafički prozor broj 2
plot(x2, y2); % crta 2. grafikon u 2. prozoru

Prilikom izvršavanja ovog programa na ekranu će uvijek biti prikazana samo dva grafička prozora sa brojevima 1 i 2, koji prikazuju grafike sinusnih i kosinusnih funkcija, respektivno.

U nekim slučajevima, praktičnija prezentacija informacija može se postići prikazivanjem dva grafikona u jednom grafičkom prozoru. Ovo se postiže korištenjem funkcije subplot() koja ima sljedeću sintaksu:

podzaplet (<число строк>, <число столбцов>, <номер координатной оси>)

Razmotrimo primjer prikaza dva grafikona jedan ispod drugog gore navedenih sinusnih i kosinusnih funkcija.

x1 = 0:0,01:2*pi;
y1 = sin(x1);

x2 = 0:0,01:pi;
y2 = cos(x2);

slika (1);
podzaplet(2,1,1); % podijeliti prozor na 2 reda i jednu kolonu
plot(x1,y1); % prikaz prvog grafikona
podzaplet(2,1,2); % izgraditi 2. koordinatnu osu
plot(x2,y2); % prikazuje 2. grafikon u novim osama

Rezultat programa je prikazan na sl. 3.5.

Slično, možete prikazati dva ili više grafikona u koloni, u obliku tabele itd. Osim toga, možete odrediti točne koordinate lokacije grafa u grafičkom prozoru. Da biste to učinili, koristite parametar položaja u funkciji subplot():

subplot('pozicija', );

gdje lijevo je pomak od lijeve strane prozora; dno - pomak od donje strane prozora; širina, visina – širina i visina grafikona u prozoru. Sve ove varijable kreću se od 0 do 1.

Rice. 3.5. Primjer funkcije podzapleta.

Ispod je fragment programa za prikaz grafa sinusne funkcije u centru grafičkog prozora. Rezultat rada prikazan je na sl. 3.6.

x1 = 0:0,01:2*pi;
y1 = sin(x1);

subplot('pozicija', );
plot(x1,y1);

U ovom primjeru, funkcija subplot() pomiče dijagram za trećinu od lijeve i donje ivice prozora i crta dijagram širine i visine trećine grafičkog prozora. Kao rezultat, dobija se efekat crtanja sinusne funkcije u centru glavnog prozora.

Dakle, koristeći parametar položaja, možete proizvoljno postaviti grafičke elemente u ravninu prozora.

Rice. 3.6. Primjer kako funkcija subplot funkcionira s parametrom pozicije.

MatLab paket vam omogućava da prikažete grafikone sa različitim bojama i tipovima linija, prikažete ili sakrijete mrežu na grafikonu, označite osi i graf u celini, kreirate legendu i još mnogo toga. U ovom ćemo odjeljku razmotriti najvažnije funkcije koje vam omogućuju da napravite takve ukrase na primjeru dvodimenzionalnih grafova.

Funkcija plot() vam omogućava da promijenite boju i tip prikazane linije. Za to se koriste dodatni parametri koji su napisani na sljedeći način:

zaplet ( , , <’цвет линии, тип линии, маркер точек’>);

Imajte na umu da je treći parametar napisan apostrofima i da ima simbole date u tabelama 3.1-3.3. Oznake ispod su ispisane jedan za drugim, na primjer,

'ko' - na grafikonu se prikazuju tačke grafikona sa crnim krugovima,
'ko-' - crta grafikon crnom linijom i stavlja tačke u obliku krugova.

Tab. 3.1. Oznaka boje linije grafikona

Boja linije

ljubičasta

Tab. 3.2. Oznaka tipa linije grafikona

Boja linije

kontinuirano

isprekidano

tačkasta

crtica-tačkasta

Tab. 3.3. Grafička oznaka tipa tačke

Boja linije

zvijezda

Ispod su primjeri pisanja funkcije plot() s različitim skupom markera.

x = 0:0,1:2*pi;
y = sin(x);

podzaplet(2,2,1); plot(x,y,"r-");
podzaplet(2,2,2); plot(x,y,"r-",x,y,"ko");
podzaplet(2,2,3); plot(y,"b--");
podzaplet(2,2,4); plot(y,"b--+");

Rezultat fragmenta programa prikazan je na Sl. 3.7. Prikazani primjer pokazuje kako se markeri mogu kombinirati da bi se postigao željeni rezultat. I na sl. 3.7 jasno pokazuje do kakvih vizuelnih efekata dovode različiti markeri koji se koriste u programu. Posebno treba napomenuti da su u četvrtom redu programa, zapravo, prikazana dva grafikona: prvi je nacrtan crvenom i kontinuiranom linijom, a drugi je nacrtan crnim krugovima zadatih tačaka grafika. . Preostale opcije za pisanje markera su očigledne.

Rice. 3.7. Primjeri prikaza grafikona s različitim tipovima markera

Iz primjera na sl. 3.7 može se vidjeti da je skala grafika duž ose Ox nešto veća od stvarnih vrijednosti. Činjenica je da MatLab sistem automatski skalira koordinatni sistem za potpunu reprezentaciju podataka. Međutim, takvo automatsko podešavanje možda neće uvijek odgovarati interesima korisnika. Ponekad je potrebno odabrati poseban fragment grafikona i prikazati ga samo u cijelosti. Za to se koristi funkcija axis() jezika MatLab, koja ima sljedeću sintaksu:

os([ xmin, xmax, ymin, ymax ]),

pri čemu nazivi navedenih parametara govore sami za sebe.

Koristimo ovu funkciju za prikaz grafa sinusne funkcije u rasponu od 0 do :

x = 0:0,1:2*pi;
y = sin(x);

podzaplet(1,2,1);
plot(x,y);
osa();

podzaplet(1,2,2);
plot(x,y);
osa();

Iz rezultata programa (slika 3.8) može se vidjeti da uprkos činjenici da je sinusna funkcija postavljena u rasponu od 0 do , pomoću funkcije axis() možete prikazati i cijeli graf i njegov fragment u rasponu od 0 do .

Rice. 3.8. Primjer kako funkcionira funkcija axis().

U zaključku ovog odjeljka razmotrit ćemo mogućnosti kreiranja oznaka grafikona, osi i prikaza mreže na grafikonu. Za to se koriste funkcije jezika MatLab navedene u tabeli 1. 3.4.

Tabela 3.4. Funkcije dizajna grafikona

Ime

Opis

Uključuje/isključuje mrežu na grafikonu

title('naslov grafikona')

Kreira oznaku naslova grafikona

xlabel('Ox axis label')

Kreira oznaku x-ose

ylabel('Oy oznaka osi')

Kreira oznaku ose Oy

tekst(x,y,'tekst')

Kreira tekstualnu oznaku na (x,y) koordinatama.

Razmotrite rad ovih funkcija u sljedećem primjeru:

x = 0:0,1:2*pi;
y = sin(x);

plot(x,y);
osa();
grid on;
title("Grafika funkcije sin(x)");
xlabel("Koordinata Ox");
ylabel("Koordinata Oy");
text(3.05,0.16,"\leftarrow sin(x)");

Iz rezultata ovog programa, prikazanog na sl. 3.9, možete vidjeti kako funkcioniraju funkcije za kreiranje oznaka na grafikonu, kao i prikazivanje mreže grafikona.

Tako, koristeći opisani skup funkcija i parametara, možete postići željeni način projektovanja grafova u MatLab sistemu.

Rice. 3.9. Primjer kako funkcioniraju funkcije dizajna grafikona

Posebno vizualni prikaz površina daju mrežni grafovi koristeći funkcionalno sjenčanje ćelija. Na primjer, boja površine z(x, y) može se podesiti po visini z površine s izborom tamnih tonova za niske visine i svijetlih tonova za visoke visine. Za konstrukciju takvih površina koriste se naredbe klase surfer (…):

  • surfaj (X, Y, Z. C)- gradi parametarsku površinu u boji prema X, Y i Z matricama sa bojom specificiranom C nizom;
  • surfati (X.Y.Z)- slično prethodnoj naredbi, gdje je C=Z, tako da se boja postavlja visinom jedne ili druge površinske ćelije;
  • surfati (x.y.Z) i surf(x.y.Z.C) sa dva vektorska argumenta x i y - vektori x i y zamjenjuju prva dva argumenta matrice i moraju imati dužine length(x)=n i length(y)=m, gdje je =size(Z). U ovom slučaju, vrhovi površinskih područja su predstavljeni trojkama koordinata (x(j), yd), Z(1,j)). Imajte na umu da x odgovara Z stupcima, a y odgovara redovima;
  • surfati (Z) i surfati (Z.C) koristite x = 1:n i y = 1:m. U ovom slučaju, visina Z je jedinstveno definirana funkcija data geometrijski pravokutnom mrežom;
  • h=surf(...)- gradi površinu i vraća ručicu objektu klase površine.

Timovi osa, caches, kolor-mapa, čekaj, senčenje i pogled definirati koordinatne ose i svojstva površine koja se mogu koristiti za učinkovitije prikazivanje površine ili oblika.

Ispod je jednostavan primjer konstrukcije površine - paraboloida:

> > = meshgrid([ - 3: 0.15: 3 ]);

> > Z = X.^2 + Y.^2 ;

> > Surf (X,Y,Z)

Grafikon koji odgovara ovom primjeru prikazan je na Sl. 6.25.

Rice. 6.25. Paraboloidni dijagram sa funkcionalnim bojanjem ćelija

Vidi se da je, zbog funkcionalnog obojenja, površinski graf mnogo izražajniji nego u konstrukcijama bez takve boje koje su ranije predstavljene (pa čak i u slučaju kada je graf u boji štampan crno-belo).

Sljedeći primjer koristi funkcionalno bojenje u sivim tonovima s izlazom skale tonova boja:

> > = meshgrid([ - 3: 0.1: 3 ]);

> > Z = sin(X). /(X.^2 + Y.^2 + 0,3);

>> surf(X.Y.Z)

> > mapa boja (siva)

> > sjenčanje interp

> > traka u boji

U ovom primjeru, naredba mapa boja (siva) postavlja tonove sive boje i komandu sjenčanje Interp omogućava eliminaciju mrežne slike i postavlja interpolaciju za nijanse boja volumetrijske površine. Na sl. 6.26 prikazuje prikaz grafa izgrađenog u ovom primjeru.


Rice. 6.26. Površinska parcela funkcionalne boje u sivoj boji

Obično korištenje interpolacije za bojenje čini da površine i oblici izgledaju realističnije, ali žičani oblici daju preciznije kvantitativne podatke o svakoj tački.