Next: En integralekvation
Up: Ett
randvärdesproblem Previous:
Det kontinuerliga fallet
Det finns flera olika sätt att diskretisera ett kontinuerligt problem.
Jag kommer att använda finita-differens-approximation där vi
approximerar
med finita-differenser.
Påstående: en bra approximation till
är
om
är lagom stort (se övning i kompendiet). Låt oss använda
Taylorutveckling (kring
)
för att få en uppfattning av trunkeringsfelet:
Trunkeringsfelet är alltså av ordningen
.
Tar vi
alltför litet kommer vi dock att få kancellation i subtraktionerna
när vi bildar differensen (jämför övningen).
Vi delar nu in intervallet
i
segment där varje del har längden
.
Låt oss numrera segmentens ändpunkter genom:
I praktiken väljer vi heltalet
och definierar
genom
.
Vi kommer nu att beräkna approximationer
till
.
Observera:
är det exakta värdet av
i
;
är en approximation av detta värde.
Om differentialekvationen skall vara satisfierad för
får vi de
villkoren
,
.
Vi approximerar nu
med vår differensapproximation och får:
eller utskrivet
För att få detta på matrisform utnyttjar vi att
(från randvillkoren) och stoppar in
i vektorn
.
stoppar vi in i vektorn
.
Vi får nu det linjära ekvationssystemet:
Vi ser direkt att matrisen
är symmetrisk, men är den positivt definit? I själva verket
har vi redan visat att så är fallet, ty om vi sätter alla
fjäderkonstanterna till ett, i styvhetsmatrisen
på sidan ett, återfår vi matrisen ovan (så när
som på faktorn
).
Ett annat sätt att visa att matrisen är positivt definit är
att beräkna Choleskyfaktorn av matrisen. Kontrollera att
kan skrivas
där
är undertriangulär med
och där
och
.
Vi noterar att när vi väl har beräknat
kan vi lösa differentialekvationsproblemet för olika funktioner
utan att på nytt beräkna Choleskyfaktoriseringen.
Slutligen skall det sägas att inte varje diskretisering ger upphov till
en symmetrisk matris.