Harj. 3 ohjeita

Tässä vielä viitteet mainittuihin oppaisiin: Lyhyt Matlab-opas   ja Hiukan laajempi Matlab-opas
Tässä eräs aiempi meshgrid, contour,surf-viite
  1. Meshgrid-ajattelua: Komennolla [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.

  2. Voitaisiin aloittaa valitsemalla piirtoikkuna. Editoi vakioiden arvot tehtävstä riippuen.
    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.
    

Heikki K Apiola
Last modified: Thu Jan 29 13:31:05 EET 2004