[X,Y]=meshgrid(x,y) luotavat matriisit X ja
Y edustavat tason pistehilaa, eli koordinaattipisteistöä
(xi,yj). Jos f on "vektoroidusti kirjoitettu"
funktio, ts. kaikki laskutomitukset ovat "pisteittäisiä" (ts. kerto- ja jakolaskua ja
potenssiinkorotusta edeltää piste (.)), niin f(X,Y) antaa arvojen f(xi,yj) muodostaman matriisin.
mesh, surf, quiver ym. toimivat suoraan tälle rakenteella. Esim. quiver(X,Y,U,V) sijoittaa U- ja V-matriiseissa olevat "nopeuskomponentit" X ja Y-matriisien antamiin hilapisteisiin.
Kun tämän periaatteen mieltää, saa käyttöönsä hyvin tehokkaan tavan tehdä "suuria asioita" muutamalla hassulla komennolla, kuten diffyhtälön suuntakentän.
a=-5; b=5; c=-3; d=3; h=0.5; y1=a:h:b; y2=c:h:d;Määritellään systeemi:
f1=inline('y2','y1','y2')
f2=inline('-sin(y1)','y1','y2')
Kyseessa on autonominen diffyhtälösysteemi y1'=f1(y1,y2), y2'=f2(y1,y2).
(Mieti huvin vuoksi, mitä fysikaalista ilmiötä tämä systeemi edustaa.)
Kirjoita sitten tehtävän systeemi.
[Y1,Y2]=meshgrid(y1,y2);
dy1=f1(Y1,Y2); dy2=f2(Y1,Y2); % y1- ja y2-funktioiden derivaatat hilapisteissä
normit=sqrt(dy1.^2+dy2.^2); % "Nopeusvektorien" normit (kaikissa hilapisteissä)
clf
quiver(Y1,Y2,0.7*h*dy1./normit,0.7*h*dy2./normit,0,'c')
% Normeerattiin ja lyhennettiin hieman, etteivät nuolet ole ihan kiinni toisissaan.