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
end
Koska 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)