MMM-Tehtäväportaali

 

 

Menu:

MATLAB-tehtäviä osittaisdifferentiaaliyhtälöistä.

Käytön idea: kun löydät mieleisesi tehtävän, sen alapuolella on linkki tex-tiedostoon. Lataa tiedosto, ja liitä se pääsivulta löytyvään harjoituspohjaan.

  • 1. 

    mlPDE018.tex
    Määritä sivuiltaan eristetyn sauvan L = 10 lämpötila t = 2 sekunnin kuluttua alkuhetkestä käyttämällä eksplisiittistä menetelmää numeeriseen approksimointiin. Valitse h = 1 ja k = 0.5 Alkulämpötila: f(x) = x 0.1x2 ja sauvan päät pidetään “jäissä”. Tehtävä on siis:
    ut = uxx (Olkoon lämpöyhtälön vakio = 1.)
    u(0,t) = 0,u(L,t) = 0 (Reunaehdot)
    u(x, 0) = f(x) (Alkuehto).

    Piirrä alkulämpöätilafunktion f(x) ja ratkaisufunktiota u(x, 2) approksimoivan lämpötilamurtoviivan kuvaaja. Vihje: 

    Tehtava

  • 2. 
    mlPDE020.tex
    Neliöalueessa diskretoidun Laplacen yhtälön matriisi on muotoa:
    A = ⌊                      ⌋
| B    I   O   ...  O  |
||  I  B    I    O   ...||
||                      ||
|| O   ...  ...  ...  O  ||
||                      ||
||  ..                   ||
||  .                   ||
|| O   ...  I   B    I  ||
⌈                      ⌉
  O   ...  ...  I   B, missä B = ⌊                        ⌋
|  − 4  1    0   ...  0  |
||   1  − 4   1    0   ...||
||                        ||
||   0   ...  ...  ...  0  ||
||                        ||
||   ..                    ||
||   .                    ||
||   0   ...  1   − 4  1  ||
⌈                        ⌉
    0   ... ...   1   − 4
    ja I on yksikkömatriisi sekä O nollamatriisi.

    Jos solmuja on reunat mukaan lukien n × n kpl., niin sisäsolmuja on (n 2)2 kpl. Tällöin B,I,O ovat (n 2) × (n 2) ja A on (n 2)2 × (n 2)2 matriisi. A koostuu siis kolmesta lohkonauhasta, diagonaalilohkoina B ja ylä- ja alanauhalohkoina I.

    Tällaisen matriisin muodostamiseen on monta tapaa. Kaikkein helpoin on valmiiksi ohjelmoitu Matlab-funktio delsq. Koska matriisit ovat yleensä suuria, on syytä käsitellä niitä harvoina (engl. sparse), ts. nollia ei talleteta, ainoastaan nollasta poikkeavat indekseineen. Niinpä delsq rakentaa matriisista automaattisesti harvan. Jos haluat katsoa sitä tai sen osaa täytenä, käytä komentoa full. Kokeile:

    help delsq  
    help numgrid  
    G=numgrid(’S’,10) % ’S’ viittaa alueeseen ‘‘Square’’. Muitakin  
    A=delsq(G)        % on Matlabin numgrid-repertuaarissa.  
    full(A)  
    ans(1:10,1:10)

    (Yhtä helppoa nelioalueen tapauksessa on käyttää omatekoista lapm-funktiota matlab-hakemistossa.)
    Lopussa muita tapoja:

    Kokeile näitä komentoja muutellen sopivasti parametreja. Suorita myös komento help sparfun, saadaksesi katsauksen tärkeään osaan Matlab:ia: harvojen matriisien käsittelyfunktioihin.

    Ratkaise tehtävä AV 3 käyttäen 50 × 50-hilaa reunat mukaan lukien, siis 482 × 482-matriisia A. Tulosvektori kannattaa muotoilla 48 × 48matriisiksi komennolla U=reshape(u,48,48), jolloin sen voi heti visualisoida komennolla surf(U). Teepä se.

    Esitys taululla: Kerro kokeiluistasi ja havainnoista, mitä opit harvoista matriiseista ja miten lopun suorit ja mitä tunnelmia kuva herätti. (Jos joku kohta, kuten kuva ei onnistunut, voit ihmetellä ääneen, miksi.) Vihje: 

    Tehtava

Työkaluja