mlD001.tex (iv3 harj.1 av 2001)
Tätä tehtävää harjoitellaan Matlab-teknisesti loppuviikon harjoituksissa.
Osattava
esittää liitutaululla käsin piirtäen periaatteessa.
Tarkastellaan diffyhtälöä $y'=y-x$ alueessa $-1 \leq x,y \leq 1$.
Piirrä $xy$-koordinaatistoon suuntakenttä
ja isokliinejä käsin ja kokeile myös Matlabia laskimen roolissa.
Ota hilaväliksi aluksi vaikka $h=0.5$.
Matlab-laskussa kannattaa muodostaa matriisi, sanokaamme K, jonka alkioina
ovat arvot $y_i - x_j$, $i=1\ldots 5, j=1\ldots 5$ tähän tapaan:
h=0.5; t=-1:h:1; x=0:h:2; for i=1:5 for j=1:5 K(i,j)=y(i)-x(j) end endKoska matriisissa rivi-indeksi i juoksee alaspäin, on helpompaa sijoittaa arvot koordinaatistoon kääntämällä matriisin sarakkeet ylösalaisin; tämä tapahtuu komennolla flipud. Katso siis matriisista flipud(K) arvot ja merkitse ne kynällä piirrokseen. Tarkista käsin (tai ``skalaarilaskimella'' (Matlabkin käy)) muutama alkio ainakin. (Hilan tihentäminen käy nyt helposti muuttamalla vain yllä $h$:ta.)
x=...;y=... % Kuten edellä [X,Y]=meshgrid(x,y); K=Y-X; %{ Jos esiintyy kertolaskua, potenssia ym., on varustettava pisteellä, siis .*, .^ ./ (taulukko-operaatiot) %}Nyt meillä on kaikki data kerättynä suuntakentän piirtämistä varten. Voit katsoa skriptiä suuntak1.m ja miettiä, mitä siinä tapahtuu.
Lopuksi voit kokeilla Rice-Universityn sivulla olevaa mainiota funktiota
dfield
,jonka käyttöä varten:
Hae m-tiedosto dfield8 yo. sivulta ja
sijoita se Matlab-polkusi varrelle.
Kirjoita Matlab-istuntoon : dfield8 (tai nykyversionr.).
Vaikeus 2.
Tehtävän Latex-koodi:Viitteitä:
Ratkaisu (pdf - ei vielä)
Ratkaisu (m)