Poissonvergelijking
De poissonvergelijking op is gegeven door
waarbij een gegeven functie is. Om de oplossing uniek te maken leggen we ook randvoorwaarden op, bijvoorbeeld . Deze vergelijking komt veel voor, en kan bijvoorbeeld worden gebruikt om de warmteverdeling in een kamer als gevolg van een hittebron te beschrijven. Met en andere randvoorwaarden komt dit probleem in de aerodynamica voor.
We gaan deze vergelijking numeriek oplossen door de Laplace operator te benaderen:
waar de stapgrootte is. Als we nu invoeren kunnen we Poissonvergelijking als een stelsel vergelijkingen schrijven
Omdat op de rand kunnen we de termen op de rand negeren. We krijgen nu een stelsel van vergelijkingen met onbekenden, met .
Omdat deze matrix ijl is (er zijn slechts 5 niet-nullen in elke rij) is het niet erg aantrekkelijk om dit stelsel op te lossen met een eliminatie procedure (waarom niet?). We gaan daarom kijken naar iteratieve methoden. De eenvoudigste is de volgende vastepunt iteratie
waar de relaxatieparameter is. We hebben eerder gezien dat de convergentiesnelheid afhangt van de spectrale radius van de matrix . We zullen echter zien dat dit niet alleszeggend is; de convergentiesnelheid blijkt ook af te hangen van de gegeven , dat wil zeggen, voor sommige is de convergentie veel sneller dan de spectrale radius doet vermoeden.
Het probleem zit 'm in dit geval in de grote spreiding van de eigenwaarden (i.e., het verschil tussen de grootste en de kleinste eigenwaarden). Om hier iets tegen te doen gaan we kijken naar iterative methoden van de vorm
waar we de matrix zo kiezen dat . Een aantal mogelijk keuzes worden in hoofdstuk 7.2 van het boek besproken.
Vragen voor het verslag
Basis
Geef een uitdrukking voor de discretisatiefout
Beschrijf hoe de matrix eruit ziet.
Beschrijf wat er gebeurt als je het stelsel zou oplossen met een directe (eliminatie) methode.
De eigenwaarden van zijn gegeven door voor , bereken de eigenwaarden ook numeriek om dit te controleren. Hoe zien de bijbehorende eigenvectoren eruit? Gebruik
numpy.linalg.eigvals
om deze uit te rekenen.Wat is de optimale voor een zo snel mogelijke convergentie?
Hoe hangt de convergentie af van in het ergste geval?
Extra
Probeer de standaard iterative methode (met de optimale ) eens op en een met willekeurige elementen (
f = randn(n^2,1)
). Wat kun je zeggen over de convergentie, hoe is dit vergeleken met de theoretische voorspelling?Leg uit waarom dit gebeurt. Hint: kijk eens naar de eigenwaarden en bijbehorde eigenvectoren van .
Probeer verschillende keuzes voor en vergelijk de convergentie. Bespreek voor- en nadelen van ieder.