Biografier Kjennetegn Analyse

Punktplott i matlab. Plotte matlab

3. 3D-grafikk .

Grafer av funksjoner til to variabler er deler av overflater som henger over områdene for definisjon av funksjoner. Fra dette er det klart at visning av grafer av funksjoner til to variabler krever implementering av "tredimensjonal grafikk" på en flatskjerm-datamaskin.

MATLABs høynivågrafikkundersystem implementerer automatisk 3D-grafikk uten noen spesiell innsats fra brukerens side. La verdien av funksjonen z=f(x,y) beregnes i punktet med koordinatene x1,y1 og den er lik z1. På et annet punkt (det vil si med en annen verdi av argumentene) beregner x2,y2 verdien av funksjonen z2. Ved å fortsette denne prosessen får vi en matrise (sett) med punkter (x1,y1,z1), (x2,y2,z2), (xN,yN,zN) i mengden av N stykker plassert i tredimensjonalt rom. Spesialfunksjoner til MATLAB-systemet trekker glatte overflater gjennom disse punktene og viser projeksjonene deres på en flat dataskjerm.

Oftest er argumentpunktene ordnet regelmessig i funksjonens domene i form av et rektangulært rutenett (det vil si en matrise). Et slikt rutenett med punkter genererer to matriser med samme struktur: den første matrisen inneholder verdiene til de første koordinatene til disse punktene (x - koordinater), og den andre matrisen inneholder verdiene til de andre koordinatene (y - koordinater). La oss betegne den første matrisen som X, og den andre - som Y. Det er også en tredje matrise - matrisen av verdier for funksjonen z=f(x,y) med disse argumentene. Denne matrisen vil bli betegnet med bokstaven Z.

Den enkleste funksjonen for å plotte en funksjon av to variabler i MATLAB-systemet er funksjonen

plot3(X , Y , Z)

hvor X, Y og Z er matriser av samme størrelse, betydningen som vi nettopp har forklart.

MATLAB har en spesiell funksjon for å oppnå todimensjonale arrays X og Y fra endimensjonale arrays x, y.

P P> La x-aksen gis et verdiområde som en vektor

u=-2:0.1:2

og på y-aksen er dette området

v=-1:0,1:1

For å få X- og Y-matrisene som representerer den første og andre koordinaten til det resulterende rektangulære rutenettet med punkter, bruk en spesiell funksjon av MATLAB-systemet:

[ X , Y ] = meshgrid(u, v)

Som vi kan se mottar denne funksjonen som input to endimensjonale arrays (vektorer) som representerer arrays av punkter på koordinataksene, og returnerer umiddelbart to nødvendige to-dimensjonale arrays. På et rektangulært rutenett av punkter beregner vi verdiene til en funksjon, for eksempel exp-funksjonen:

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

Til slutt, ved å bruke plot3-funksjonen beskrevet ovenfor, får vi følgende bilde av den tredimensjonale grafen til denne funksjonen:

Fra denne figuren kan det sees at plot3-funksjonen plotter som et sett med linjer i rommet, som hver er et utsnitt av en tredimensjonal overflate etter plan parallelt med yOz-planet. På en annen måte kan vi si at hver linje er hentet fra linjestykker som forbinder et sett med punkter hvis koordinater er hentet fra de samme kolonnene i X-, Y- og Z-matrisene. Det vil si at den første linjen tilsvarer de første kolonnene i X, Y Z matriser; den andre linjen - til den andre kolonnen i disse matrisene og så videre.

For å plotte tredimensjonale linjer som er satt parametrisk, brukes en annen form for å kalle plot3-funksjonen:

plot3(x, y, z)

hvor x, y og z er endimensjonale matriser av koordinater av punkter, som må kobles i serie med linjestykker. For eksempel følgende kodebit

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

x = sin(t);

y = cos(t);

plott3(x, y, t);

rutenett på

hvor kommandoen kjent fra flate grafer brukes

rutenett på

å sette ned et rutenett med koordinatverdier i området for plotting (det er også mulig å bruke kommandoene og funksjonene for utforming av grafer, tidligere vurdert for det "flate" tilfellet), lar deg bygge en helix , bildet av dette er vist i følgende figur:

I tillegg til denne enkle funksjonen har MATLAB-systemet en rekke funksjoner som lar deg oppnå større realisme i visningen av tredimensjonale grafer. Dette er mesh-, surf- og surfl-funksjonene.

Mesh-funksjonen forbinder de beregnede nabopunktene til grafoverflaten med linjesegmenter og viser i grafikkvinduet til MATLAB-systemet en flat projeksjon av en slik tredimensjonal "wireframe mesh"-kropp. I stedet for grafen til funksjonen tidligere vist ved bruk av plot3-funksjonen

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

du kan få dette bildet

For en bedre oppfatning av "volumet" av bildet, males forskjellige kanter automatisk i forskjellige farger. I tillegg (i motsetning til plot3-funksjonen) fjernes skjulte linjer. Hvis du tror at den avbildede ribbekroppen er gjennomsiktig og ikke skal skjule baklinjene, kan du gå inn på kommandoen skjult av, hvoretter slike linjer vises på bildet. Et tettere bilde av overflaten kan oppnås hvis i stedet for

mesh-funksjonen bruker surf(X, Y, Z) funksjonen.

Som et resultat oppnås følgende bilde, som representerer en tett (ugjennomsiktig) maskeoverflate, og individuelle celler (ansikter) av denne maskeoverflaten (flate firkanter) males automatisk i forskjellige farger.

Bruk av surfefunksjonen, men kunstig farget, men veldig visuelle bilder oppnås. Hvis vi ønsker å oppnå mer naturlige og objektive måter å male overflater på, bør vi bruke surfl-funksjonen.

Surfl-funksjonen behandler grafoverflaten som en materialoverflate med visse fysiske egenskaper for lysrefleksjon. Som standard er en viss lyskilde satt som lyser opp en slik materialoverflate, hvoretter banene til de reflekterte strålene som kommer inn i linsen til det betingede kameraet, beregnes. Bildet i et slikt kamera vises i grafikkvinduet til MATLAB-systemet.

Siden ulike materialer reflekterer de innfallende strålene ulikt, er det mulig å velge noe materiale for å få det beste (fra brukerens ståsted) bildet. Spesielt kan du bruke funksjonen

fargekart (kobber)

ved hjelp av hvilket et sett med farger (på engelsk - colormap) velges for bildet av grafen, som er typisk for lys reflektert fra en kobberoverflate (kobber på engelsk - kobber). Etter det, bruk funksjonen

surfe(X, Y, Z)

i stedet for surf(X,Y,Z) resulterer i en veldig realistisk og veldig visuell graf:

Det er mulig å fjerne svarte linjer som representerer kanter fra en slik graf, samt oppnå en enda jevnere overgang av overflatebelysning, hvis du utfører kommandoen

skyggelegging interp

noe som betyr at nå vil fargen (belysningsstyrken) endres selv inne i individuelle ansikter (celler). Som et resultat vil et veldig ekte bilde av en tredimensjonal figur bli oppnådd. På godt og vondt for oppgaven med å vise grafer over funksjoner til to variabler, er det opp til en spesifikk bruker å bedømme.

Å vise en funksjon som en tabell er nyttig når det er et relativt lite antall funksjonsverdier. La det være nødvendig å vise en tabell med funksjonsverdier i kommandovinduet

på punktene 0,2, 0,3, 0,5, 0,8, 1,3, 1,7, 2,5.
Problemet løses i to etapper.
1. En radvektor lages X, som inneholder koordinatene til de gitte punktene.
2. Funksjonsverdier beregnes y(X) fra hvert element i vektoren X og de resulterende verdiene skrives til radvektoren y.
Funksjonsverdiene må finnes for hvert av elementene i radvektoren X, så operasjonene i uttrykket for funksjonen må utføres element for 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 =

Legg merke til at når du prøver å bruke eksponentiering ^, divisjon / og multiplikasjon * (som ikke er elementmessig), vises en feilmelding allerede når sin(x) kvadreres:

"y \u003d sin (x) ^ 2 / (1 + cos (x)) + exp (-x) * log (x)
??? Feil ved bruk av ==> ^
Matrisen må være firkantet.

Faktum er at i MatLab brukes *- og ^-operasjonene til å multiplisere matriser med tilsvarende størrelser og heve en kvadratisk matrise til en potens.
Tabellen kan gjøres mer lesbar ved å plassere funksjonsverdiene rett under argumentverdiene:

"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

Det er ofte nødvendig å vise verdien av en funksjon ved punktene i et segment som er avstand fra hverandre med lik avstand (trinn). Anta at vi må vise en tabell med funksjonsverdier y(X) på et segment med et trinn på 0,2. Du kan selvfølgelig legge inn en radvektor med argumentverdier x= fra kommandolinjen og beregne alle funksjonsverdier som beskrevet ovenfor. Men hvis trinnet ikke er 0,2, men for eksempel 0,01, er det mye arbeid som må gjøres for å legge inn vektoren X.
MatLab gir en enkel oppretting av vektorer, hvor hvert element skiller seg fra det forrige med en konstant verdi, dvs. et skritt. Et kolon brukes til å legge inn slike vektorer (ikke forveksle med kolonindeksering). De neste to operatorene resulterer i dannelsen av identiske radvektorer. Du kan skrive betinget

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

Du kan skrive betinget

x = [startverdi: trinn: sluttverdi]

Det er ikke nødvendig å passe på at summen av den nest siste trinnverdien er lik sluttverdien, for eksempel når du utfører følgende oppdragssetning

» x =
x =
1.0000 1.2000 1.4000 1.6000 1.8000

Radvektoren vil fylle opp til et element som ikke overskrider sluttverdien vi definerte. Steget kan også være negativt:

» x =
x =
1.9000 1.7000 1.5000 1.3000 1.1000

I tilfelle av et negativt skritt, for å få en ikke-tom radvektor, må startverdien være større enn sluttverdien.
For å fylle en kolonnevektor med elementer som starter på null og slutter på 0,5 i trinn på 0,1, fyll ut radvektoren og bruk deretter transponeringsoperasjonen:

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

Merk at elementene i en kolonfylt vektor bare kan være ekte, så du kan bruke en apostrof i stedet for en prikk etterfulgt av en apostrof for transponering.
Et trinn lik ett kan ikke spesifiseres under automatisk fylling:

» x =
x =
1 2 3 4 5

La det være nødvendig å vise en tabell med funksjonsverdier

på et segment med trinnet 0,05,
For å fullføre denne oppgaven må du utføre følgende trinn:
1. Lag en radvektor X ved hjelp av et kolon.
2. Beregn verdier (X) fra elementene X.
3. Skriv resultatet til en radvektor y.
4. Trekk tilbake X og y.

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

rad-vektor x og y består av tjueen elementer, og passer ikke på skjermen på én linje, så de vises i deler. Fordi X og y lagret i todimensjonale arrays med dimensjon én etter tjueen, så vises de i kolonner, som hver består av ett element. Kolonne 1 til 7 vises først (kolonne 1 til 7), deretter kolonne 8 til 14 (kolonne 8 til 14), og til slutt kolonne 15 til 21 (kolonne 15 til 21). Mer visuell og praktisk er den grafiske representasjonen av funksjonen.

2. Plotte en funksjon av én variabel

2.1. Grafer over funksjoner på en lineær skala

MatLab har velutviklede grafiske muligheter for datavisualisering. Vurder i begynnelsen konstruksjonen av den enkleste grafen for en funksjon av en variabel ved å bruke eksempelet på en funksjon

,

definert på segmentet. Utdataene til en funksjon i form av en graf består av følgende trinn:
1. Spesifisere en vektor med argumentverdier X.
2. Vektorberegning funksjonsverdier y(X).
3. Kalle opp plotkommandoen for å plotte en graf.
Kommandoer for å spesifisere en vektor X og det er bedre å avslutte funksjonsberegninger med et semikolon for å undertrykke utdataene fra verdiene deres til kommandovinduet (det er ikke nødvendig å sette et semikolon etter plottkommandoen, siden den ikke sender ut noe til kommandovinduet).

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

Etter å ha utført kommandoene, vises et vindu på skjermen. figur Nei. en med en funksjonsgraf. Vinduet inneholder en meny, en verktøylinje og et diagramområde. I det følgende vil kommandoer spesielt designet for utformingen av kartet bli beskrevet. Nå er vi interessert i selve prinsippet om plotting og noen av de enkleste mulighetene for å visualisere funksjoner.
For å plotte en funksjonsgraf i MatLab-arbeidsområdet, må to vektorer med samme dimensjon defineres, for eksempel X og y. Den tilsvarende matrisen x inneholder verdiene til argumentene, og y inneholder funksjonsverdiene til disse argumentene. Plotkommandoen kobler sammen punkter med koordinater (x(i), y(i)) med rette linjer, og skalerer automatisk aksene for optimal plassering av plottet i vinduet. Når du plotter grafer, er det praktisk å plassere hovedvinduet i MatLab og vinduet med grafen side om side på skjermen slik at de ikke overlapper hverandre.
Den konstruerte grafen til funksjonen har knekk. For mer nøyaktig plotting må funksjonen beregnes y(X) på et større antall punkter på segmentet, dvs. angi et mindre trinn når du legger inn en vektor X:

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

Resultatet er en graf over funksjonen i form av en jevnere kurve.
Det er praktisk å sammenligne flere funksjoner ved å vise grafene deres på de samme aksene. For eksempel, på intervallet [-1, -0,3], plotter vi grafene til funksjonene
,

ved å bruke følgende kommandosekvens:

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

Funksjoner trenger ikke å være definert på samme segment. I dette tilfellet, når du plotter, velger MatLab det maksimale segmentet som inneholder resten. Det er bare viktig å indikere vektorene som tilsvarer hverandre i hvert par abscisse- og ordinatvektorer, for eksempel:

» 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)

På samme måte, ved å spesifisere par av argumenter av formen: abscissevektor, ordinatvektor i plott, atskilt med kommaer, plottes grafer av et vilkårlig antall funksjoner.

Merknad 1

Å bruke plott med ett argument, en vektor, resulterer i et "vektorplott", dvs. avhengigheten av verdiene til vektorelementene på tallene deres. Plot-argumentet kan også være en matrise, i så fall vises grafene til kolonnene på de samme koordinataksene.
Noen ganger vil du sammenligne oppførselen til to funksjoner hvis verdier er veldig forskjellige fra hverandre. Grafen til en funksjon med små verdier smelter praktisk talt sammen med abscisseaksen, og dens utseende kan ikke bestemmes. I denne situasjonen hjelper plotyy-funksjonen, som viser grafer i et vindu med to vertikale akser som har en passende skala.
Sammenlign for eksempel to funksjoner: og

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

Når du kjører dette eksemplet, legg merke til at fargen på grafen samsvarer med fargen på dens tilsvarende y-akse.
Plotfunksjonen bruker en lineær skala på begge koordinataksene. MatLab gir imidlertid brukeren muligheten til å plotte funksjoner til én variabel på en logaritmisk eller semi-logaritmisk skala.

2.2. Grafer over funksjoner i logaritmiske skalaer

Følgende funksjoner brukes til å plotte logaritmiske og semilogaritmiske skalaer:
- loglogg (logaritmisk skala på begge akser);
- semilogx (logaritmisk skala bare langs x-aksen);
-semilogi (logaritmisk skala kun langs y-aksen).

Argumentene loglog, semilogx og semilogy er spesifisert som et par vektorer av abscisse- og ordinatverdier på samme måte som for plottfunksjonen beskrevet i forrige avsnitt. La oss konstruere for eksempel grafer over funksjoner og på et segment i en logaritmisk skala langs aksen X:

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

2.3. Stille inn egenskapene til linjer på funksjonsgrafer

De konstruerte grafene over funksjoner skal være så praktiske som mulig for persepsjon. Ofte må du bruke markører, endre fargen på linjer, og som forberedelse til monokrom utskrift - angi type linje (heltrukken, prikket, stiplet punkt, etc.). MatLab gir muligheten til å kontrollere utseendet til grafer bygget ved hjelp av plot, loglog, semilogx og semilogy, for hvilke et ekstra argument plasseres etter hvert par med vektorer. Dette argumentet er omsluttet av apostrof og består av tre tegn som spesifiserer: farge, markørtype og linjetype. En, to eller tre posisjoner brukes, avhengig av nødvendige endringer. Tabellen viser de mulige verdiene for dette argumentet med resultatet.

markørtype

linjetype

fast

prikkete

stiplet

plusstegn

stiplet

stjerne

Trekant opp ned

trekant opp ned

Trekant som peker mot venstre

trekant som peker mot høyre

fem spiss stjerne

seks spiss stjerne

Hvis du for eksempel trenger å plotte den første grafen med røde punktmarkører uten linje, og den andre grafen med en svart stiplet linje, bør du bruke plottet(x, f, "r.", x, g, "k:") kommando.

2.4. Utforming av funksjonsgrafer

Bekvemmeligheten ved å bruke diagram avhenger i stor grad av ekstra designelementer: koordinatrutenett, akseetiketter, tittel og forklaring. Rutenettet er plottet med rutenettet på kommando, etikettene for aksene plasseres ved hjelp av xlabel, ylabel, tittelen er gitt av tittelkommandoen. Å ha flere grafer på de samme aksene krever å plassere en legende med legende-kommandoen med informasjon om linjene. Alle de ovennevnte kommandoene gjelder for grafer i både lineære og logaritmiske og semilogaritmiske skalaer. Følgende kommandoer viser grafer over endringen i daglig temperatur, som er utstyrt med all nødvendig informasjon.

» tid = ;
» temp1 = ;
» temp2 = ;
» plot(tid, temp1, "ro-", tid, temp2, "gå-")
» rutenett på
» title("Daglige temperaturer")
» xlabel("Tid (time)")
» ylabel("Temperatur (C)")
» legend("10. mai, 11. mai")

Når du legger til en legende, må du huske at rekkefølgen og antallet argumenter for legende-kommandoen må samsvare med linjene på diagrammet. Det siste tilleggsargumentet kan være posisjonen til forklaringen i grafikkvinduet:

* -1 - utenfor diagrammet i øvre høyre hjørne av grafikkvinduet;
* 0 - den beste posisjonen i grafen er valgt slik at selve grafene overlapper så lite som mulig;
* 1 - i øvre høyre hjørne av diagrammet (denne posisjonen brukes som standard);
* 2 - i øvre venstre hjørne av diagrammet;
* 3 - i nedre venstre hjørne av diagrammet;
* 4 - i nedre høyre hjørne av diagrammet.

Det er tillatt å legge til formler og endre skriftstiler ved å bruke TeX-formatet i diagramtittelen, legenden og akseetikettene.
MatLab viser grafer i forskjellige farger. En monokrom skriver vil skrive ut grafikk i forskjellige gråtoner, noe som ikke alltid er praktisk. Plot-kommandoen lar deg enkelt angi stil og farge på linjer, for eksempel

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

utfører konstruksjonen av den første grafen med en solid svart linje, og den andre - med en svart stiplet linje. Argumentene "k-" og "k:" spesifiserer stilen og fargen på den første og andre linjen. Her betyr k svart, og en bindestrek eller kolon betyr en solid eller stiplet linje. Kartvinduet kan lukkes ved å klikke på knappen med kryss i øvre høyre hjørne.

3. Plotte funksjoner av to variabler

Å plotte en funksjon av to variabler i MatLab på et rektangulært område med variabeldefinisjon inkluderer to foreløpige trinn:
1. Partisjonering av definisjonsdomenet med et rektangulært rutenett.
2. Beregning av funksjonsverdiene ved skjæringspunktene til rutenettlinjene og deres inngang i matrisen.
La oss plotte funksjonen z(x,)= X 2 + 2 på definisjonsdomenet i form av en firkant X tilhører , y-. Det er nødvendig å dele kvadratet med et enhetlig rutenett (for eksempel med et trinn på 0,2) og beregne verdiene til funksjonene ved nodene indikert med prikker.
Det er praktisk å bruke to todimensjonale arrays x og y, med en dimensjon på seks ganger seks, for å lagre informasjon om koordinatene til nodene. X-matrisen består av identiske strenger som inneholder koordinatene x 1, X 2, ..., X 6 og array inneholder de samme kolonnene som y1, 2, ..., 6. Vi skriver funksjonsverdiene ved rutenettnodene inn i en matrise z med samme dimensjon (6 x 6), og beregner matrisen Z bruk et uttrykk for funksjonen, men med element for element matriseoperasjoner. Da f.eks z(3,4) vil bare være lik verdien av funksjonen z(x,y) på punktet (x3, fire). For å generere grid arrays X og i henhold til koordinatene til nodene i MatLab, er meshgrid-funksjonen gitt, for å plotte en graf i form av en wireframe-overflate, mesh-funksjonen. Følgende utsagn fører til at et vindu med grafen til funksjonen vises på skjermen (det er ingen semikolon på slutten av utsagnene for å kontrollere genereringen av matriser):

» = meshgrid(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

Hva er ulempene med det bygde diagrammet? Og hvordan eliminere dem? Den oppbygde timeplanen og den nye bør inkluderes i den elektroniske rapporten om laboratoriearbeidet.

MatLab lar deg plotte tilleggsinformasjon på et diagram, spesielt korrespondansen mellom farger og funksjonsverdier. Nettverket genereres ved hjelp av kommandoen meshgrid, som kalles med to argumenter. Argumentene er vektorer hvis elementer tilsvarer rutenettet på det rektangulære området til funksjonskonstruksjonen. Ett argument kan brukes hvis området der funksjonen er plottet er et kvadrat. For å beregne en funksjon bør du bruke elementvise operasjoner .

Vurder hovedfunksjonene som tilbys av MatLab for å visualisere funksjoner til to variabler, ved å bruke eksemplet med å plotte en funksjonsgraf

på et rektangulært domene X tilhører [-1, 1], y .
La oss forberede matriser med koordinater til rutenettnoder og funksjonsverdier:

» = 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);

For å konstruere en wireframe-overflate, brukes mesh-funksjonen, som kalles med tre argumenter:

Fargen på overflatelinjene tilsvarer funksjonens verdier. MatLab tegner kun den synlige delen av overflaten.

Ved hjelp av kommandoen gjemt bort Du kan gjøre en wireframe-overflate "gjennomsiktig" ved å legge til en skjult del. Kommandoen skjult på fjerner den usynlige delen av overflaten, og gir grafikken tilbake til det opprinnelige utseendet.

Funksjon surfe bygger en trådrammeoverflate av grafen til funksjonen og fyller hver celle på overflaten med en bestemt farge, avhengig av funksjonens verdier i punktene som tilsvarer hjørnene av cellen. Innenfor hver celle er fargen konstant. Se resultatet av kommandoen

Team flat skyggelegging lar deg fjerne wireframe-linjer. Shading interp-kommandoen brukes for å oppnå en overflate jevnt fylt med en farge avhengig av funksjonens verdier.
Med fasettert skyggelegging kan du gå tilbake til overflaten med trådrammer.
3D-plottene produsert av kommandoene beskrevet ovenfor er praktiske for å få en ide om formen på en overflate, men det er vanskelig å bedømme verdiene til en funksjon fra dem. MatLab definerer fargelinjekommandoen, som viser en stolpe ved siden av grafen som etablerer samsvar mellom fargen og verdien av funksjonen. Plott overflaten med surf og fullfør den med fargeinformasjon.

»surf(X,Y,Z)
» fargelinje

Fargelinjekommandoen kan brukes sammen med alle funksjoner som tegner 3D-objekter.

Ved å bruke en farget overflate er det vanskelig å trekke en konklusjon om verdien av funksjonen på et bestemt punkt i planet xy. Meshc- eller surfc-kommandoene lar deg få en mer presis ide om funksjonens oppførsel. Disse kommandoene konstruerer en trådrammeoverflate eller en fargefylt trådrammeoverflate og plasserer den på et plan xy funksjonsnivålinjer (konstanslinjer for funksjonsverdier):

»surfc(X,Y,Z)
» fargelinje

MatLab lar deg konstruere en overflate som består av nivålinjer ved hjelp av contour3-funksjonen. Denne funksjonen kan brukes på samme måte som mesh, surf, meshc og surfc ovenfor med tre argumenter. I dette tilfellet velges antall nivålinjer automatisk. Det er mulig å spesifisere som det fjerde argumentet i contour3 enten antall nivålinjer eller en vektor hvis elementer er lik funksjonsverdiene vist som nivålinjer. Å spesifisere en vektor (nivåer, det fjerde argumentet) er praktisk når du vil utforske oppførselen til en funksjon i et visst område av dens verdier (funksjonsskive). Konstruer for eksempel en overflate som består av nivålinjer som tilsvarer funksjonsverdier fra 0 til 0,5 med et trinn på 0,01:

» nivåer = ;
» kontur3(X, Y, Z, nivåer)
» fargelinje

4. Konstruere konturplott av funksjoner av to variabler

MatLab gir muligheten til å oppnå ulike typer konturplott ved å bruke kontur- og konturfunksjonene. La oss vurdere deres evner på eksemplet med funksjonen

Bruke kontur med tre argumenter

»kontur(X,Y,Z)

resulterer i en graf som viser nivålinjer på et plan xy, men uten å spesifisere numeriske verdier på dem . En slik graf er lite informativ, den lar deg ikke finne ut verdiene til funksjonen på hver av nivålinjene. Bruk av fargelinjekommandoen vil heller ikke tillate deg å bestemme funksjonsverdiene nøyaktig. Hver nivålinje kan forsynes med verdien som funksjonen som studeres tar på seg, ved å bruke clabel-funksjonen definert i MatLab. Klabelfunksjonen kalles med to argumenter: en matrise som inneholder informasjon om nivålinjene og en peker til diagrammet som skal merkes. Brukeren trenger ikke lage klabelargumentene selv. Konturfunksjonen, kalt med to utgangsparametere, tegner ikke bare nivålinjene, men finner også de nødvendige parameterne for etiketten. Bruk kontur med utgangsargumentene CMatr og h (CMatr-matrisen inneholder informasjon om nivålinjene, og h-matrisen inneholder pekere). Avslutt kallet til kontur med semikolon for å undertrykke visningen av utgangsparameterverdier og plott rutenettet:

» = kontur(X, Y, Z);
» clabel(CMatr, h)
» rutenett på

Et tilleggsargument til konturfunksjonen (akkurat som kontur3 beskrevet ovenfor) kan enten være antall nivålinjer eller en vektor som inneholder funksjonsverdiene som nivålinjer skal tegnes for.
Visuell informasjon om endring av funksjonen gis ved å fylle rektangelet på planet xy farge avhengig av verdien av funksjonen i punktene i planet. For å bygge slike grafer er konturfunksjonen ment, hvis bruk ikke skiller seg fra bruken av kontur. Følgende eksempel viser en graf som består av tjue nivålinjer, og gapene mellom dem er fylt med farger som tilsvarer verdiene til funksjonen som studeres:

» kontur(X, Y, Z, 20)
» fargelinje

5. Utforming av grafer over funksjoner

En enkel og effektiv måte å endre fargeskjemaet til en graf på er å angi en fargepalett ved hjelp av fargekartfunksjonen. Følgende eksempel viser hvordan du forbereder et funksjonsplott for utskrift på en monokrom skriver ved hjelp av den grå paletten.

» surfc(X, Y, Z)
»fargelinje
» fargekart (grå)
» title("Graf av funksjonen z(x,y)")
» xlabel("x")
» ylabel("y")
» zlabel("z")

Merk at kommandoen colormap(grå) endrer paletten til grafikkvinduet, dvs. følgende grafer vil også vises i dette vinduet i gråtoner. For å gjenopprette den opprinnelige verdien av paletten, bruk kommandoen colormap ("default"). Fargepalettene som er tilgjengelige i MatLab er vist i tabell. 2.

tabell 2


Palett

Fargeforandring

Glatt forandring rød - oransje - gul.

Ligner på den grå paletten, men med et lite hint av blått.

Hver farge endres fra mørk til lys.

Nyanser av blått og lilla.

Kobber nyanser.

Sykling rød - hvit - blå - svart.

Nyanser av grå.

Glatt forandring svart - rød - oransje - gul - hvit.

Glatt forandring som regnbuens farger.

Glatt forandring blå - cyan - rød - grønn - gul - rød.

Ligner på den grå paletten, men med et lite hint av brunt

Sykling rød – oransje – gul – grønn – blå – lilla.

Nyanser av lilla og gult.

Nyanser av grønt og gult.

Windows-palett med seksten farger.

En hvit farge.

En nyanse av blått og grønt.

6. Vise flere grafer på samme akse

For å vise flere grafer av funksjoner til en variabel på samme akser, ble funksjonsmulighetene brukt plot, plotyy, semilogx, semilogy, loglog. De lar deg plotte flere funksjoner ved å spesifisere de riktige vektorargumentene i par, for eksempel plot(x,f,x,g). De kan imidlertid ikke brukes til å kombinere 3D-plott. For å kombinere slike grafer er hold på-kommandoen ment, som må spesifiseres før plotting. I det følgende eksemplet resulterer kombinasjonen av to grafer (et plan og en kjegle) i deres skjæringspunkt. Kjeglen er spesifisert parametrisk av følgende avhengigheter:

, , , .

For å vise en kjegle grafisk, må du først generere en kolonnevektor og en radvektor ved hjelp av et kolon, som inneholder verdiene til parameterne i et gitt intervall (det er viktig at u M. En kolonnevektor og en radvektor er matriser med én dimensjon lik én. Faktisk, FRA = abT, hvor multiplikasjonen skjer i henhold til regelen matriseprodukt. Stjerneoperatoren brukes til å beregne matriseproduktet i MatLab. La oss definere det ytre produktet for to vektorer:

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

La oss danne matriser X,Y, nødvendig for den grafiske visningen av kjeglen:

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

Matrise Z må ha samme størrelse som matrisene X og Y. I tillegg må den inneholde verdier som tilsvarer parameterverdiene. Hvis funksjonen inkluderte produktet og og v, deretter matrisen Z kan fylles ut på samme måte som matriser X og Y ved hjelp av et eksternt produkt. På den annen side, funksjonen z(u,v) kan representeres som , hvor . Derfor å beregne Z man kan bruke det ytre produktet av vektorene og , hvor radvektoren har samme dimensjon som v, men består av enheter:

» Z = 0,6*u*ener(størrelse(v));

Alle nødvendige matriser for å vise kjeglen er opprettet. Flyet er definert som følger:

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

Nå er det ikke vanskelig å skrive ned den komplette sekvensen av kommandoer for å konstruere en kryssende kjegle og et plan:

» 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*ener(størrelse(v));
» surfe(X, Y, Z)
» = meshgrid(-2:0.1:2);
» Z = 0,5*X+0,4*Y;
" vent litt
» mesh(X, Y, Z)
» skjult

Hidden off-kommandoen brukes til å vise delen av kjeglen som er under flyet.
Vær oppmerksom på at hold på-kommandoen gjelder for alle påfølgende utdata av grafer til det gjeldende vinduet. For å plassere diagrammer i nye vinduer, utfør hold off-kommandoen. Hold på-kommandoen kan også brukes til å ordne flere grafer over funksjoner for én variabel, for eksempel,

»plott(x,f,x,g)

er ekvivalent med sekvensen

»plott(x,f)
" vent litt
» plot(x,g)

Resultatene av arbeidet mitt:

MatLab tilbyr et rikt verktøysett for datavisualisering. Ved hjelp av et internt språk kan du vise 2D- og 3D-plott i kartesiske og polare koordinater, vise bilder med forskjellige fargedybder og forskjellige fargekart, lage enkle animasjoner av simuleringsresultater under beregninger og mye mer.

3.1. plot funksjon

Med tanke på egenskapene til MatLab for datavisualisering, la oss starte med todimensjonale grafer, som vanligvis bygges ved hjelp av plot ()-funksjonen. Mange alternativer for denne funksjonen vurderes best med spesifikke eksempler.

Anta at du vil plotte en sinusfunksjon i området fra 0 til . For å gjøre dette setter vi en vektor (sett) med punkter langs Ox-aksen, der verdiene til sinusfunksjonen vil vises:

Resultatet er en kolonnevektor med et sett med verdier fra 0 til og med et trinn på 0,01. Deretter beregner vi settet med verdier til sinusfunksjonen på disse punktene:

og vise resultatet på skjermen

Som et resultat får vi grafen vist i fig. 3.1.

Den presenterte plot()-funksjonsoppføringen viser at argumentet med punktsettet til Ox-aksen skrives først, og deretter argumentet med punktsettet til Oy-aksen. Når du kjenner disse verdiene, har plot()-funksjonen muligheten til å plotte punkter på planet og interpolere dem lineært for å gi et kontinuerlig plot.

Ris. 3.1. Viser sinusfunksjonen ved å bruke plot()-funksjonen.

Plot()-funksjonen kan også skrives med et enkelt x- eller y-argument:

plot(x);
plot(y);

Som et resultat får vi to forskjellige grafer vist i fig. 3.2.

Analyse av fig. 3.2 viser at i tilfelle av ett argument, viser plot()-funksjonen et sett med punkter langs Oy-aksen, og genererer automatisk et sett med punkter med et enhetstrinn langs Ox-aksen. Derfor, for enkelt å visualisere en vektor som en todimensjonal graf, er det tilstrekkelig å bruke plot()-funksjonen med ett argument.

For å plotte flere plott på de samme koordinataksene, skrives plot()-funksjonen som følger:

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

Resultatet av dette programfragmentet er vist i fig. 3.3.

Ris. 3.2. Resultatene av plot()-funksjonen med ett argument:

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

Ris. 3.3. Viser to grafer i samme koordinatakser.

På samme måte kan to plott plottes ved å bruke ett argument til plot()-funksjonen. Anta at det er to verdivektorer

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

som skal vises på skjermen. For å gjøre dette, kombinerer vi dem til en todimensjonal matrise

der kolonnene er sammensatt av henholdsvis vektorene y1 og y2. En slik matrise vil vises av funksjonen

plott(); % apostrof oversetter en radvektor
% til kolonnevektor

i form av to grafer (fig. 3.4).

Ris. 3.4. Viser en todimensjonal matrise i form av to grafer.

To vektorer i samme akser kan bare vises hvis dimensjonene deres er de samme. Når du arbeider med vektorer av forskjellige dimensjoner, må de enten bringes til hverandre av antall elementer, eller vises på forskjellige grafer. Det er flere måter å vise grafer i forskjellige koordinatakser. I det enkleste tilfellet kan du lage to grafikkvinduer og vise ønsket grafikk i dem. Dette gjøres på følgende måte:

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

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


figurer; % opprettelse av det andre grafikkvinduet
plot (x2, y2); % tegner 2. diagram i 2. vindu

Figurfunksjonen som brukes i dette programmet lager et nytt grafikkvindu og gjør det aktivt. Plot()-funksjonen, kalt umiddelbart etter figurfunksjonen, vil vise plottet i det aktive grafikkvinduet. Som et resultat vil to vinduer med to grafer vises på skjermen.

Uleiligheten med programfragmentet ovenfor er at et gjentatt anrop til figurfunksjonen vil vise et nytt nytt vindu på skjermen, og hvis programmet kjøres to ganger, vil tre grafiske vinduer vises på skjermen, men bare to av dem vil inneholde faktiske data. I dette tilfellet ville det være bedre å bygge programmet slik at to vinduer med de nødvendige grafene alltid vises på skjermen. Dette kan oppnås hvis, når du kaller figurfunksjonen, som et argument, spesifiser nummeret på grafikkvinduet som skal opprettes eller gjør det aktivt hvis det allerede er opprettet. Dermed kan programmet ovenfor skrives som følger.

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

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

Figur 1); %opprett vindu nummer 1
plot (xl, y1); % tegner det første diagrammet
figur(2); % lag grafikkvindu nummer 2
plot (x2, y2); % tegner 2. diagram i 2. vindu

Når du kjører dette programmet, vil kun to grafiske vinduer med nummer 1 og 2 alltid vises på skjermen, og de viser grafer for henholdsvis sinus- og cosinusfunksjonene.

I noen tilfeller kan mer praktisk presentasjon av informasjon oppnås ved å vise to grafer i ett grafikkvindu. Dette oppnås ved å bruke subplot()-funksjonen, som har følgende syntaks:

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

Tenk på et eksempel på visning av to grafer under hverandre av de ovennevnte sinus- og cosinusfunksjonene.

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

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

Figur 1);
delplott(2,1,1); % deler vinduet i 2 rader og en kolonne
plot(xl,y1); % visning av den første grafen
delplott(2,1,2); % bygger 2. koordinatakse
plot(x2,y2); % viser 2. graf i nye akser

Resultatet av programmet er vist i fig. 3.5.

På samme måte kan du vise to eller flere grafer i en kolonne, i form av en tabell osv. I tillegg kan du spesifisere de nøyaktige koordinatene for plasseringen av grafen i grafikkvinduet. For å gjøre dette, bruk posisjonsparameteren i subplot()-funksjonen:

subplot('posisjon', );

der venstre er forskyvningen fra venstre side av vinduet; bunn - forskyvning fra undersiden av vinduet; bredde, høyde – bredde og høyde på kartet i vinduet. Alle disse variablene varierer fra 0 til 1.

Ris. 3.5. Et eksempel på delplottfunksjonen.

Nedenfor er et fragment av programmet for å vise grafen til sinusfunksjonen i midten av grafikkvinduet. Resultatet av arbeidet er vist i fig. 3.6.

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

subplot('posisjon', );
plot(xl,y1);

I dette eksemplet forskyver subplot()-funksjonen plottet med en tredjedel fra venstre og nederste kant av vinduet og tegner et plott med en bredde og høyde på en tredjedel av grafikkvinduet. Som et resultat oppnås effekten av å tegne sinusfunksjonen i midten av hovedvinduet.

Ved å bruke posisjonsparameteren kan du vilkårlig plassere grafiske elementer i vindusplanet.

Ris. 3.6. Et eksempel på hvordan delplottfunksjonen fungerer med posisjonsparameteren.

MatLab-pakken lar deg vise grafer med forskjellige farger og linjetyper, vise eller skjule rutenettet på grafen, merke aksene og grafen som helhet, lage en legende og mye mer. I denne delen vil vi vurdere de viktigste funksjonene som lar deg lage slike dekorasjoner ved å bruke eksemplet på todimensjonale grafer.

Plot()-funksjonen lar deg endre fargen og typen på den viste linjen. For dette brukes ytterligere parametere, som er skrevet som følger:

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

Vær oppmerksom på at den tredje parameteren er skrevet i apostrof og har symbolene gitt i tabellene 3.1-3.3. Markørene nedenfor er skrevet etter hverandre, for eksempel

'ko' - på diagrammet viser punktene på diagrammet med svarte sirkler,
'ko-' - tegner diagrammet med en svart linje og setter punkter i form av sirkler.

Tab. 3.1. Graflinjefargebetegnelse

Linjefarge

fiolett

Tab. 3.2. Graflinjetypebetegnelse

Linjefarge

kontinuerlige

stiplet

prikkete

stiplet

Tab. 3.3. Grafpunkttypebetegnelse

Linjefarge

stjerne

Nedenfor er eksempler på å skrive plot()-funksjonen med et annet sett med markører.

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

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

Resultatet av programfragmentet er vist i fig. 3.7. Det presenterte eksemplet viser hvordan markører kan kombineres for å oppnå ønsket resultat. Og i fig. 3.7 viser tydelig hvilke visuelle effekter de ulike markørene som brukes i programmet fører til. Det bør spesielt bemerkes at i den fjerde linjen i programmet vises faktisk to grafer: den første er tegnet i rødt og en kontinuerlig linje, og den andre er tegnet med svarte sirkler av de gitte punktene i grafen . De resterende alternativene for skrivemarkører er åpenbare.

Ris. 3.7. Eksempler på visning av grafer med ulike typer markører

Fra eksemplene i fig. 3.7 kan man se at skalaen til grafene langs Ox-aksen er litt større enn de reelle verdiene. Faktum er at MatLab-systemet automatisk skalerer koordinatsystemet for en fullstendig representasjon av dataene. Det er imidlertid ikke sikkert at en slik automatisk justering alltid passer brukerens interesser. Noen ganger er det nødvendig å velge et eget fragment av diagrammet og bare vise det i sin helhet. Til dette brukes akse()-funksjonen til MatLab-språket, som har følgende syntaks:

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

hvor navnene på de angitte parameterne taler for seg selv.

La oss bruke denne funksjonen til å vise grafen til sinusfunksjonen i området fra 0 til:

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

delplott(1,2,1);
plot(x,y);
akser();

delplott(1,2,2);
plot(x,y);
akser();

Fra resultatet av programmet (fig. 3.8) kan man se at til tross for at sinusfunksjonen er satt i området fra 0 til , kan man ved å bruke akse()-funksjonen vise både hele grafen og dens fragment i området fra 0 til .

Ris. 3.8. Et eksempel på hvordan funksjonen akse() fungerer

Avslutningsvis i denne delen vil vi vurdere mulighetene for å lage kartetiketter, akser og vise rutenettet på kartet. For dette brukes MatLab-språkfunksjonene oppført i tabell 1. 3.4.

Tabell 3.4. Kartdesignfunksjoner

Navn

Beskrivelse

Slår av/på rutenettet på kartet

title('diagramtittel')

Oppretter en diagramtitteletikett

xlabel('Ox-akseetikett')

Oppretter en x-akseetikett

ylabel('Oy-akseetikett')

Oppretter en Oy-akseetikett

tekst(x,y,'tekst')

Oppretter en tekstetikett ved (x,y) koordinater.

Vurder driften av disse funksjonene i følgende eksempel:

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

plot(x,y);
akser();
rutenett på;
title("Grafiken til sin(x)-funksjonen");
xlabel("Koordinaten til Ox");
ylabel("Koordinaten til Oy");
text(3.05,0.16,"\venstrepil sin(x)");

Fra resultatet av dette programmet, vist i fig. 3.9 kan du se hvordan funksjonene for å lage etiketter på diagrammet fungerer, samt vise diagramrutenettet.

Dermed kan du ved å bruke det beskrevne settet med funksjoner og parametere oppnå ønsket måte å designe grafer på i MatLab-systemet.

Ris. 3.9. Et eksempel på hvordan diagramdesignfunksjoner fungerer

En spesielt visuell representasjon av overflatene er gitt av mesh-grafer ved bruk av funksjonell skyggelegging av celler. For eksempel overflatefarge z(x, y) kan justeres i høyden z overflater med et utvalg av mørke toner for lave høyder, og lyse toner for høye høyder. For å konstruere slike overflater brukes klassekommandoene surfer (...):

  • surfe(X, Y, Z. C)- bygger en farget parametrisk overflate i henhold til X-, Y- og Z-matrisene med fargen spesifisert av C-matrisen;
  • surfe(X.Y.Z)- ligner på forrige kommando, hvor C=Z, slik at fargen settes av høyden til en eller annen overflatecelle;
  • surf(x.y.Z) og surfe(x.y.Z.C) med to vektorargumenter x og y - vektorene x og y erstatter de to første matriseargumentene og må ha lengdene lengde(x)=n og lengde(y)=m, der =størrelse(Z). I dette tilfellet er toppunktene til overflateområdene representert av trippel av koordinater (x(j), yd), Z(1,j)). Merk at x tilsvarer Z kolonner og y tilsvarer rader;
  • surfe(Z) og surfe (Z.C) bruk x = 1:n og y = 1:m. I dette tilfellet er Z-høyden en unikt definert funksjon gitt av et geometrisk rektangulært rutenett;
  • h=surf(...)- bygger en overflate og returnerer et håndtak til klasseobjektet flate.

Lag akser, cacher, fargekart, holde, skyggelegging og utsikt definere koordinatakser og overflateegenskaper som kan brukes til å vise frem en overflate eller form mer effektivt.

Nedenfor er et enkelt eksempel på å konstruere en overflate - en paraboloid:

> > = meshgrid([ - 3: 0,15: 3 ]);

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

> > Surf(X,Y,Z)

Grafen som tilsvarer dette eksemplet er vist i fig. 6,25.

Ris. 6,25. Paraboloid plot med funksjonell cellefarging

Det kan sees at overflategrafen på grunn av funksjonell farging er mye mer uttrykksfull enn i konstruksjonene uten slik farging presentert tidligere (og til og med i tilfellet når fargegrafen er skrevet ut i svart-hvitt).

Følgende eksempel bruker funksjonell gråtonefarging med en fargetoneskalautgang:

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

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

> > surfe(X.Y.Z)

>> fargekart (grå)

> > skyggelegging interp

>> fargelinje

I dette eksemplet er kommandoen fargekart (grå) angir gråtonene og kommandoen skyggelegging Interp gir eliminering av rutenettbildet og setter interpolasjonen for fargenyanser av den volumetriske overflaten. På fig. 6.26 viser en visning av grafen bygget i dette eksemplet.


Ris. 6,26. Overflatetomt med funksjonell fargelegging i grått

Normalt vil bruk av interpolering for farging få overflater og former til å se mer realistiske ut, men wireframe-former gir mer nøyaktige kvantitative data om hvert punkt.