Iteratieve oplosmethoden

Gerard Sleijpen
In dit prakticum wordt gekeken naar iteratieve oplosmethoden voor differentiaalvergelijkingen. Bovendien worden deze oplosmethoden losgelaten op een grondwaterstromingprobleem.

Iteratieve oplosmethoden

Bij veel fysische problemen is het noodzakelijk om het systeem eerst onder te verdelen in hokjes. Van elk hokje kan daarna bijvoorbeeld de temperatuur worden berekend. Omdat elk hokje alleen te maken heeft met zijn "buurhokjes", kan dat met een relatief eenvoudige formule gebeuren. Het probleem is echter, dat de temperatuur van de buurhokjes niet bekend is. Van de buurhokjes is alleen maar bekend hoe hùn temperatuur weer afhangt van hùn buurhokjes.

Wanneer van sommige hokjes de temperatuur wèl bekend is (de "randvoorwaarden"), is de temperatuur van alle hokjes in principe in een keer uit te rekenen. Maar dat kost steeds meer rekenwerk en geheugenruimte naarmate er meer hokjes gebruikt worden.

Iteratieve oplosmethoden proberen het antwoord op dit soort problemen met minder rekenwerk te vinden, door stap voor stap een steeds betere benadering van de oplossing te berekenen, in plaats van in een keer het antwoord te berekenen. Om deze soort van oplosmethoden draait het in dit prakticum.

Het grondwaterstromingprobleem

Als voorbeeld wordt een grondwaterstromingsprobleem opgelost. In een 2-dimensionaal gebied moet overal de waterdruk worden bepaald. Aan de hand van een natuurkundeformule (een differentiaalvergelijking) voor waterstroming, kan een formule worden opgesteld, die aangeeft hoe de waterdruk van een bepaald vakje afhangt van de waterdruk van zijn buurvakjes.

Toepassing

In de volgende figuur is te zien met welke "opstelling" de verschillende oplosmethoden zijn getest. De figuur laat meteen de exacte oplossing van dit probleem zien. Des te hoger een gridpunt ligt, des te hoger de waterdruk daar is.

Basis iteratieve methode

Met de simpelste iteratieve methode, de basis iteratieve methode, kan in 860 stappen een goede benadering van de oplossing worden gevonden. In het volgende filmpje is te zien, hoe de benadering iedere stap verbetert. Tussen de frames zijn 20 iteratiestappen uitgevoerd.

[basis.mpeg, 432 kB]

GCR

Met de GCR-methode (General Conjugated Residuals) kan al in 45 stappen een goede benadering van de oplossing worden gevonden. Het rekenwerk per stap loopt sterk op, maar toch werkt deze methode veel sneller dan de basis iteratieve methode. Iedere frame representeert nu één iteratiestap.

[gcr.mpeg, 544 kB]