Exempel på vad Numerisk grundkurs I innehåller:

Eulers metod för differentialekvationer


Vad är y(0.7) om man vet att y(0.5)=1 och y'(x)=3y/x?

Knepet med Eulers metod (som med så många andra numeriska metoder) är att approximera med räta linjer.

Vi vet att då x=0.5 så är y=1 och ur differentialekvationen att kurvans lutning, y'(0.5)=3*1/0.5 = 6. Om vi då antar att y(x) är en rät linje så blir vår gissning för y(0.7) som y(0.5)+(0.7-0.5)*y'(0.5) = 2.2

Ett bättre värde får vi om vi tar kortare steg: vi antar en rät linje bara fram till x=0.6: nytt_y=y(0.5)+(0.6-0.5)*y'(0.5) = 1 + 0.1*6 = 1.6; Nu vet vi en ny punkt: x=0.6 och nytt_y=1.6 vilket insatt i differentialekvationen ger kurvlutningen y'(0.6)=8; Nu följer vi denna nya linjelutning fram till x=0.7 och får då värdet nytt_y+(0.7-0.6)*y'(0.6) = 2.4 som approximation av y(0.7).

Om vi tar ännu kortare steg och mellanlandar i x=0.55, 0.60, 0.65 och 0.70 så får vi ett ännu bättre värde: 2.6801

Euler-bild
Den översta (heldragna) kurvan är den okända och sökta y(x). Den nedersta kurvan, (heldragen med o-markeringar, slutvärde 2.2), är den kurva vi får med steget 0.2. Den näst nedersta kurvan, (streckprickad med *-markeringar, slutvärde 2.4), är den kurva vi får med steget 0.1. Den näst översta kurvan, (streckad med x-markeringar, slutvärde 2.6801), är den kurva vi får med steget 0.05.

Hur bra det faktiskt stämmer kan vi i detta fall undersöka. Differentialekvationen går att lösa analytiskt: lösningen är y(x)=8*x³ och rätta värdet på y(0.7) är således 8*0.7³=2.744

Man frågar sig då:

^ Upp till kursens hemsida.


Senast ändrad 1996-02-02 <ninni@nada.kth.se>