Teaching page G. Sleijpen

Over het verslag
================
Uit het verslag moet blijken dat je wat geleerd heb van het practicum,
met name of je een zeker inzicht verworven heb in eigenschappen van
iteratieve methoden. Verder zijn er geen regels over de lengte van het
verslag of over de inhoud. (Verslagen in voorgaande jaren telden
gemiddeld 30 pagina's). In de handleiding staan een groot aantal
theoretische en practische vragen. Die vragen dienen ter inspiratie: je
kan ze wel of niet in je verslag verwerken. Wil je andere vragen
bespreken dan is dat prima. Helemaal hieronder zijn wat vragen die ik 
in de stukjes "college" opgeworpen heb (de meeste staan denk ik ook 
in de handleiding). Eerst wat algemenere aanwijzigingen.

Wat vergelijk je?
==================
Zorg ervoor dat je vergelijkbare dingen vergelijkt (geen appels
met peren): dus als je de totale tijdsduur van het ene
process vergelijkt met die van het andere, moeten beide processen
wel antwoorden met dezelfde nauwkeurigheid opgeleverd hebben.
Zorg ervoor dat de vergelijkingen "eerlijk" zijn: als
je bv herstart GCR vergelijkt met BiCGSTAB moet je wel dezelfde
preconditioneerder gebruiken. Defineer je begrippen duidelijk:
wat bedoel je met snelheid, etc.. 

Hoe verwerk je je numerieke experimenten in je verslag?
=======================================================
Formuleer eerst zorgvuldig welke vraag je experimenteel wilt
onderzoeken. Leg uit waarom je de vraag interessant vindt. Formuleer
een hypothese, gebaseerd op theoretische of heuristische (= mengsel van
een beetje theorie, beetje intutie, beetje inzicht uit eerdere
experimenten) argumenten. Formuleer die argumenten duidelijk.
Beschrijf zorgvuldig hoe je experimenteel je hypothese denkt te kunnen
verifiren of falsifiren. Voer het experiment uit. Neem de relevante
resultaten op in je verslag. Vertel wat je ziet aan de resultaten en
hoe ze bij de hypothese passen.  Moet je de hypothese drastisch
herzien? Of is de hypothese in de regel correct op kleine
(voorspelbare?) uitzonderingen na?  Als de hypothese niet (helemaal)
correct is, probeer aan te geven waarom niet of geef aan met welk
experiment je beter inzicht zou kunnen krijgen in het `waarom (niet)'?
EEN KRITSCHE HOUDING TEGENOVER JE RESULTATEN IS BELANGRIJK.
Gooi de lezer niet dood met resultaten. Laat alleen relevantste
resulaten zien. Als je bijvoorbeeld in een aantal experimenten
eenzelfde resultaat krijgt, geef dan een of twee resultaten en 
vertel dat deze het karakteristiek gedrag laat zien. 

Geef voor iedere tabel en ieder figuur die je in je verslag opneemt 
duidelijk aan wat waar staat (wat in welke kolom staat, wat langs 
de horizontale as staat, etc.).

code
====
Je hoeft geen code aan het verslag toe te voegen, tenzij je slimme
programmeertrucks bedacht hebt die je in je verslag bespreekt. In dat
geval voeg je alleen het stukje code toe dat je bespreekt.
Lever wel de code electronisch in.

Citeren
=======
Als je stukken tekst kopieert uit bijvoorbeeld de handleiding (de LaTeX
source staat op internet) of een boek of artikel, geef dan aan waar 
die tekst vandaan komt (en gebruik voor het gekopieerde deel een ander 
lettertype). Als je niet aangeeft waar de gekopieerde tekst vandaan
komt pleeg je plagiaat en is artikel 5.11 van het Onderwijs Examen reglement
van toepassing.




Vragen die je kan proberen experimenteel te beantwoorden
========================================================

ALGEBRA
Theorie: hoe hangt het symmetrisch zijn van de matrix samen met de
partiele differentiaalvergelijking en de randvoorwaarde? Hangt hat ook
nog samen met de discretisatie? Is, met name, de discretisatie van de
rand van invloed?
Voor iteratieve oplosmethoden is het vaak van belang te weten of de
matrix positief definiet is. Een symmetrische matrix die diagonaal
dominant is is positief definiet.  Hoe hangt het diagonaal dominant
zijn samen met de diff.vergl.?


OPLOSPROCES
Theoretische vraag: Wat zijn de kosten van het rechtstreeks oplossen
van een stelsel met Gauss eliminatie?
Theoretische vraag: Wat zijn de kosten van een stap van een iteratieeve
methode? Met hoeveel stappen verwacht je met een iteratieve methode
efficinter te zijn? Sporen je experimentele resultaten hiermee?

Hoe hangt de grootte van de fout samen met de grootte van het residu?

Bij onderstaande vragen kan je je telkens afvragen of de grootte van de
advectie term of van de "afbraak" term nog een signifikante rol
speelt.

GCR: hoe hangt de convergentiesnelheid (het aantal iteratiestappen) af
van het aantalroosterpunten?  Is dat nog richting afhankelijk?
Hangt het aantal stappen nog (sterk) af van r0 (dus maakt het een groot
verschil of er pompen, putten en rivieren zijn)? Je hebt minstens
max(n_x,n_y) stappen nodig om je heel rooster te "doorlopen". Blijkt
experimenteel ook dat je met minder stappen niet toe kan?

PRECONDITIONEREN:
Hoe beinvloedt de preconditioneerder de convergentie snelheid (aantal
stappen, hoeveelheid tijd)?  Is de tijd voor het oplossen evenredig met
het aantal stappen of hangt dat nog van de preconditioneerder af?  Voor
M de volgende mogelijkheden
  1 M=I
  2 M=diag(A)
    M=(lower(A)+D)*D\(upper(A)+D)
    met 3 D=diag(A)             (SOR)
        4 D zodat diag(M-A)=0   (ILU)
        5 D zodat M*1=A*1       (MILU)
        6 D mengvorm van 4 en 5 (RILU(omega))
Voor welke omega krijg je de snelste convergentie?  Maakt het uit tot
welke nauwkeurigheid je de stelsels oplost? Verandert de waarde van de
optimale omega als je de asymmetrie "opvoerd" (als je de advectie term
groter maakt)?

Het idee van MILU is dat gladde oplossingen van A ook goed gevonden
worden door M. Zie je dat terug in je experimenten?

Maakt het voor de convergentiesnelheid uit of je impliciet
preconditioneert, of rechts expliciet, of links impliciet, of
twee-zijdig expliciet (als met de Eisenstat truck)?

Theorie: Hoeveel winst kan je boeken met de Eisenstat truck:  dus
tweezijdig expliciet verus impliciet (met M met bv omege
optimaal). Is dat nog rendabel als het aantal GCR stappen groter wordt?
Zou het wel rendabel zijn als je telkens alleen bijvoorbeeld de laatste
4 u_i en c_i meeneemt of toepast in CG, Graig of BiCGSTAB?
De Eisentatt truck heeft "overhead" kosten (pre- en postproces). 
Zie je de theoretische winst ook terug in de praktijk?


ANDERE ITERATIEVE METHODEN
Kies een geschikte preconditioneerder M (bv M=I. Als je verschillende 
iteratieve methode vergelijkt kan je betogen dat je je mag beperken tot
M=I. Waarom?). Vergelijk voor niet
symmetrische problemen de beste GCR variant met Graig en BiCGstab.
Welke methode is het efficientst? Hangt dat nog af van de kwaliteit van
de preconditioneerder?  Hangt dat nog af van de "scheefheid" van de
matrix?  Voer eventueel de scheefheid op.  

Theoretisch convergeert CG niet voor asymmetrische problemen en ook
niet voor problemen die niet positief definiet zijn. Klopt dat ook in
de praktijk (speel eens met de absorptie coefficient c).

Genest GCR: Los Au=r benaderen op met l (= l_3) stappen GCR (zonder
preconditioneerder) en met k stappen in de "buiten loop".
Dan zijn de kosten ongeveer  
   (3*k*k+3*k*l*l) * n flop             (*)
(hierbij zijn alleen de kosten voor de orthogonalisatie geteld
en de andere kosten verwaarloosd). Met verschillende k en l, maar zo
dat k*l=N vast (bv N=200, bv l=10, k=20 of l=20, k=10) krijg je ongeveer 
dezelfde kwaliteit benadering (dat kan je experimenteel nagaan). Door de 
formule in (*) te minimaliseren als functie van l (met k=N/l) krijg je
de "beste" geneste variant.

MODELLEREN
"passen" de randwaarde bij het probleem?  Stel dat je sterke advectie
hebt is het dan logisch om "tegen de stroom in" een Dirichlet rand te
zetten?

DISKRETISEREN
Hoe hangt de nauwkeurigheid samen met de maaswijdte of de relatieve
nauwkeurigheid met het aantal roosterpunten? Is dat nog richting
afhankelijk? Wat is het effect van de fouten van de
randdiscretisatie?








  © Gerard L. G. Sleijpen   <G.L.G.Sleijpen@uu.nl>
  Last modified: