”Gegeven a,b ∈ R en f : R2 → R, f(a,b) = a²-ab, bepaal y = f(a,b)”.
a) Bepaal de conditiegetallen van het probleem.
b) Bestudeer de conditie van dit probleem in de volgende gevallen:
A)a = 2.000, b = 1.000, resp. B) a= 2.001, b= 1.000
In beide gevallen neem aan dat de absolute fouten op de input-data zijn |∆a| = |∆b| =
10^−3. In welk geval zijn de relatieve conditiegetallen orde 1? Bepaal tevens in beide
gevallen de relatieve fout op het resultaat.
c) Neem aan dat de input data a en b computergetallen zijn. Voor het gegeven probleem
zijn er twee ”algoritmen” mogelijk:
Algoritme A: u = a ⊖b, v = a ⊗u,
Algoritme B: u = a ⊗a, v = a⊗b, w = u⊖v
Merk op dat de elementaire bewerkingen ⊖ en ⊗ eigenlijk computerbewerkingen zin en
dus een computergetal opleveren,
a ⊗b=(a×b)(1+ε) ≈ a×b, en a⊖b=(a−b)(1+ε)≈a−b,
met verschillende getallen ε die voldoen aan |ε| < eps (eps is de machinenauwkeurigheid).
Welk van de twee algoritmen is stabieler? M.a.w. voor welk van de twee algoritmen is de
relatieve fout op het resultaat kleiner?
In algoritme B worden eerst twee producten berekend en daarna een aftrekking van twee bijna gelijke getallen uitgevoerd. Dit kan leiden tot verlies van significante cijfers (catastrofale subtractie) wanneer \(a^2\) en \(ab\) dicht bij elkaar liggen.
In algoritme A wordt eerst het verschil \(a-b\) berekend en daarna vermenigvuldigd met \(a\). Dit vermijdt het aftrekken van twee grote, bijna gelijke producten.
Daarom is algoritme A numeriek stabieler. De relatieve fout op het eindresultaat is bij algoritme A kleiner dan bij algoritme B, vooral wanneer \(a\) en \(b\) dicht bij elkaar liggen.
Bij het opstellen van mijn bijdragen maak ik regelmatig gebruik van AI als hulpmiddel voor analyse en formulering