|
Tehtäviä differentiaaliyhtälöiden ratkaisemiseen MATLABissa.
Käytön idea: kun löydät mieleisesi tehtävän, sen alapuolella on linkki tex-tiedostoon. Lataa
tiedosto, ja liitä se harjoituspohjaan
tai omaan Latex-pohjaasi.
-
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.)
Myöhemmin opimme, että K-matriisin muodostaminen käy kätevämmin,
tehokkaammin ja rutiininomaisemmin näin:
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ö ei
vaadi Matlabin tuntemista lainkaan.
Vaikeus 2.
Tehtävän Latex-koodi:
Ratkaisu (m)
Viitteitä:
-
mlD002.tex
Millä xy-tason käyrillä on ominaisuus: Käyrän tangentin kulmakerroin
jokaisessa pisteessä $(x,y)$ on $-\frac{4 x}{y}$ ?
Ratkaise yhtälö muuttujien erottelulla (``separation of variables'').
Piirrä suuntakenttä isokliineja apuna käyttäen käsin vaikkapa alueessa
$[-2,2] \times [-2,2]$.
Kokeile myös LAODE-funktiota dfield8 (kts. vihje).
Tässä on käytettävä ahkerasti stop-näppäintä, ratkaisu ajautuu aina
ongelma-alueelle, mikäli x-akseli on mukana.
Voit myös täydentää kuvaa alussa laskemillasi ratkaisukäyrillä tyyliin:
x=linspace(-2,2,30);y=x;
[X,Y]=meshgrid(x,y);
Z=... % muista pisteittäiset laskutoimitukset.
contour(x,y,Z,1:10);
shg % "show graphics"
Kokeile ja selitä!
Vihje
Hae m-tiedosto
dfield8 (Rice University) ja
sijoita se Matlab-polkusi varrelle.
Kirjoita Matlab-istuntoon : dfield8
Vaikeus 2
Tehtävän Latex-koodi
Ratkaisu: (ei viel.)
pdf-muodossa |
m-tiedosto
Aputiedostoja,viitteitä
Viitteet:
Golubitzky-Dellnitz:
Linear Algebra and Differential Equations using Matlab, Brooks/Cole 1999.
Avainsanat:
MatlabDy, diffyhtälöt, suuntakenttä, isokliinit, mlDifferentiaali(yhtälöt)
|