mlPDE020.tex
Neliöalueessa diskretoidun Laplacen yhtälön matriisi on muotoa:
A =
, missä
B =
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 × 48−matriisiksi 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: