Differentiaaliyhtälöt, syksy 2001
Harjoitus 1b (Matlab & DFIELD & PPLANE tietokonedemot)


Demon tarkoitus. Demoissa opetellaan Matlab-ohjelman käytön alkeita ja tutkitaan 1. kertaluvun differentiaaliyhtälöiden suuntakenttiä ja alkuarvotehtävien numeeris-graafista ratkaisemista. Tuloksia vertaillaan oikeihin ratkaisuihin, jotka piirretään itse Matlabin peruskäskyillä.
Välineet. Matlab 6 ja John C. Polkingin sen päälle laatima numeerinen ''DY-laskin''. Matlab on yleiskäyttöinen numeeriseen matriisilaskentaan tarkoitettu ohjelma, jossa voi myös piirtää 2- ja 3-ulotteista grafiikkaa. Matlabissa on oma ohjelmointikielensä, jossa voi Systeemin käynnistys mikroluokissa. Käynnistetään tietokone ja kirjaudutaan normaalisti NT-verkkoon. Käynnistetään Matlab 6 (työpäydän pikakuvake). Matlabin pitäisi latautua komentotilaansa (Command Window) ja esiin pitäisi tulla valmiusmerkki ».


Harjoitellaan aluksi Matlabin käyttöä:

Jatkossa tällaisella konekirjoitustyylillä kirjoitetut ovat Matlabin käskyjä, joita kirjoitetaan valmiusmerkin perään, syöttö ohjelmalle tapahtuu painamalla Enter.
Laskutoimitukset (ja loogiset operaatiot ym.) sekä tietoa muista komennoista tai funktioista saat nopeasti näkyviin komennolla help, esimerkiksi

» 2*4 + 5
» help +
» help exp

Tällöin näet usein vain opasteen loppuosan; näet koko tekstin vierittämällä komentoikkunaa ylös-alas (PageUp PageDown, hiiri). Myös Windows-tyylinen Help-valinta löytyy yläpalkista, ja sieltä erityisesti Help Desk ja Getting Started.
Muita yleishyödyllisiä käskyjä: dir, type, who, what, which, lookfor.

Aikaisemmin kirjoittamiasi käskyjä saat esiin nuoli ylös/alas näppäimillä.

1. Funktiolaskimena: Laske likiarvot (kirjoita laskutoimitusten symbolit näkyviin ja funktioiden muuttujat tavallisiin sulkuihin!):

12.32 sin(2·3.23) »                 12.3e-3.23 + ln12.3 »                 Ö{1+2.34} »

Tässä käytetyt funktiot: sin, exp, log ja sqrt.

Laskuissa voi käyttää symboleja (kirjaimia), jos niille on ensin annettu arvot.

Laske edelleen (vrt. yllä):

» x = 12.3; y = 3.23; puolipiste estää tulostuksen
» x^2 * sin(2*y) »
2. Matriisilaskimena:
Matlabissa voi muuttujana olla myös vektori tai matriisi. Useimmat laskutoimitukset voivat olla matriisilaskutoimituksia tai alkioittaisia ; jälkimmäisissä eteen laitetaan piste, mikäli toimitus eroaa matriisitoimituksesta, esimerkiksi » A .* B ja » A.^2. Kuitenkin +, - ja luvulla kertominen ovat molempia!

Luodaan aluksi 4-vaakavektori (1, 2, 3, 4) seuraavasti:

» x = 1:4

Koeta arvata, mitä seuraavat käskyt laskevat, ja suorita sitten ne:

käsky arvaus                                  tulos                                               
x.^2
2.^x
exp(x)
x.^x
1./x
x.^(-1)

Miten saadaan transpoosi?

Laske (muista Matlab-syntaksi!):

xxT =              xTx =
Matriisi (ja vektori) syötetään seuraavasti: alkiot hakasulkujen sisällä riveittäin, rivit erotetaan tosistaan puolipisteellä ja riveillä alkiot tyhjeellä tai pilkulla , esim.
» A = [2 3; 4 5] taikka yhtä hyvin » A = [2,3; 4,5]
Laske yllä määritellylle matriisille A:

A' »            2*A »            A.^2 »            A^2 »            A^(-1) »

3. Piirtämiseen: Kun muuttujan arvot ovat vektori x ja vastaavat funktion f arvot x, plot(x,y) piirtää käyrän y = f(x) (ks. help plot).

Piirrä funktion f(x) = sinx kuvaajaa välillä [-5,5].

Opastus: Muodosta riittävän tiheä pisteikkö x, esim.

 
» x = -5:0.2:5; tai  » x = linspace(-5,5);
» y = sin(x); plot(x,y) tai suoraan  » plot(x, sin(x))
J.C. Polkingin Matlab-ohjelmat DFIELD ja PPLANE

Pujottele selaimella (Netscape, IE) kurssin WWW-sivulle Kurssimateriaalia. Lataa sen taulukosta tiedosto Polking5.zip ja pura se asemaan E: (vain kolme tiedostoa).

Kirjoita Matlabissa käskyt

» cd E:

» what

jolloin hakemistossasi pitäisi näkyä tarvittavat m-tiedostot dfield5.m ja pplane5.m.
 

4. Käynnistetään suuntakenttiä piirtävä ohjelma dfield5 kirjoittamalla

» dfield5

Tällöin ruudun alareunaan ilmestyy ikkuna DFIELD5 Setup, josta näkyvät

Valitaan hiirellä klikaten Proceed. Ruudun yläreunaan ilmestyy DFIELD5 Display-ikkuna, johon piirtyy suuntakenttä.

Piirrä suuntakenttään runsaasti ratkaisuja antaen alkuehdot hiirellä, ainakin seuraavat

x(2) = -4, -3, -2, -1, 0, 1, 2, 3, 4

5. Selvitä, mitä pitävät sisällään DFIELD5 Displayn valikot. Kokeile seuraavia optioita sekä kirjoita muistiin niiden merkitykset ja käyttö:

Keyboard Input:

Plot several solutions:

Zoom in:

Erase all solutions:

Delete a graphics object:

Enter text on the Display Window:

Settings:

Make the Display Window inactive:
 
 

6. a) Ratkaise käyttäen manuaalista (näppäimistöllä annettavaa) alkuehdon asetusta alkuarvotehtävä x(-1.32) = - 3.25.

b) Anna arviot kyseisen ratkaisun arvoista pisteissä t = 0, 1 ja 2. Tässä voit käyttää Matlabin funktiota ginput, joka antaa hiirenklikkauskoordinaatteja (anna Matlabin komentoikkunassa käsky ginput(3) ja klikkaa DFIELD5 Display-ikkunassa kaikki kolme pistettä, jolloin arvot tulevat komentoikkunaan).

x(0) »


  x(1) »
 x(2) »

7. a) Palaa DFIELD5 Setup-ikkunaan ja vaihda yhtälöksi x¢ = 2t - x (muodossa 2*t - x) ja rajoiksi t: [-4,4], x: [0,10].

b) Ratkaise alkuarvotehtävä x(-1) = 1 piirtämällä.

c) Palautetaan mieleen, että ratkaisut ovat oikeasti muotoa x(t) = ce-t + 2t - 2 (ks. luennot). Ratkaise (vaikka käsin) alkuarvotehtävästä x(-1) = 1 arvo c:lle ja piirrä Matlabilla ratkaisu äskeiseen kuvaan ja vertaa.

c »

Piirto käy vaikkapa seuraavilla käskyillä:

» t = -4:0.2:4
» x = c*exp(-t) + 2*t - 2
» plot(t,x,'-r')

Sulje DFIELD5 sen Setupista (File, Quit DFIELD5).
 

8-9. Differentiaaliyhtälöryhmien kuvaaminen - ohjelma PPLANE5

Käynnistä Polkingin PPLANE5-ohjelma sekä tutustu siihen valmiiden yhtälöryhmien avulla (PPLANE5 Setup-valikon Gallery).
 

Vastaa kysymyksiin:

Miten saadaan aikaan ratkaisufunktioparin kuvaaminen muuttujansa funktioina?


Mitä etsivät ja piirtävät valikosta Solutions löytyvät valinnat

Find an equilibrium point


Show nullclines



 

10. Vapaata luovaa kokeilua PPLANE5llä.

Luo mieleisesi kaunis faasikuvio. Syötä sopiva differentiaaliyhtälö ja piirrätä ratkaisuja. Voit piirtää samaan kuvioon vielä mitä haluat tavallisilla Matlabin piirtokäskyillä.

Jos et hauskempaa keksi, eräs metka kuvio saadaan yhtälöparilla
ì
í
î
x¢
=
y cos(x2 - y2 + 1)
y¢
=
-x cos(x2 + y2)
Lopuksi tulosta kuviosi paperille (jos onnistuu!)



Myös Maple, Derive- ja/tai Mathematica-ohjelmiin kannattaa tutustua. Niillä voi ratkaista differentiaaliyhtälöitä myös symbolisessa muodossa; niillä voit tarkastaa vaikkapa kotilaskusi. (ks. Helpit ja ohjekirjat).
Verkosta löytyy myös Java-appletteja suuntakenttien piirtoon, esimerkiksi
File translated from TEX by TTH, version 3.01.
On 17 Sep 2001, 13:55.