Eulers stegmetod

Den blå kurvan är differentialekvationens lösning, den röda polygonala linjen är approximationen enligt Eulers stegmetod.

Eulers stegmetod är en metod inom numerisk analys för att lösa ordinära differentialekvationer med ett givet initialvärde.

Med Eulers stegmetod löses differentialekvationen y = f ( t , y ) {\displaystyle y'=f(t,y)} genom att dela in den i diskreta stegintervall. Metoden utgår från Taylorserien

y ( t + h ) = y ( t ) + y ( t ) h + y ( t ) 2 ! h 2 + . . . {\displaystyle y(t+h)=y(t)+y'(t)h+{\frac {y''(t)}{2!}}h^{2}+...}

där man försummar termer som innehåller derivator av högre ordning än ett. Man approximerar alltså funktionens lösningskurva med sin tangent i varje punkt och beräknar nästa punkt på kurvan genom att följa tangentens riktning.

Eftersom y' = f(t, y) fås

y ( t + h ) = y ( t ) + f ( t , y ( t ) ) h {\displaystyle y(t+h)=y(t)+f(t,y(t))h\,}

eller i diskret form

y k + 1 = y k + f ( t k , y k ) h k {\displaystyle y_{k+1}=y_{k}+f(t_{k},y_{k})h_{k}\,}

Tidsstegen ges av t k {\displaystyle t_{k}} och t k + 1 = t k + h k {\displaystyle t_{k+1}=t_{k}+h_{k}} och steglängen h k {\displaystyle h_{k}} väljs på sådant sätt att största noggrannhet erhålls, vilket kan bli ett större problem än grundproblemet. Ofta väljs h k = h {\displaystyle h_{k}=h} , där h är en konstant.

Eulers stegmetod är en s.k. enstegsmetod eftersom den bara baserar sig på information från steget före. Noggrannheten är exakt för homogena differentialekvationer av första ordningen. Stabiliteten varierar beroende på differentialekvation; i vissa fall växer felet exponentiellt, medan i andra fall avtar felet exponentiellt.

Felanalys

För (globala) trunkeringsfelet i Eulers stegmetod gäller

R T = a 0 h + a 1 h 2 + {\displaystyle R_{T}=a_{0}h+a_{1}h^{2}+\ldots } .

Exempel

Låt y ′ = 3ty,  y 0 = 2, steglängden h = 0,5.

Det vill säga vi startar i punkten (0, 2). I denna punkt beräknar vi lösningskurvans lutning:

y ′ (0) = 3*0 — 2 = -2

Med steglängden 0,5 blir nästa t-värde 0 + 0,5 och nästa y-värde = 2 + (-2)*0,5 = 1. Så håller vi på och stegar oss framåt tills vi når det t-värde vi är intresserade av.

Följande tabell visar de beräknade värdena som ger en numerisk uppskattning av y (2) :

t y (t )  y ′(t
 0  2  –2
 0,5   1    0,5
 1  1,25     1,75
 1,5   2,125     2,375
 2  3,3125     2.6875

Alltså är y(2) = 3,3125 enligt Eulers stegmetod, med steglängden 0,5. Om ett mindre h hade använts, så hade man fått fram ett mycket noggrannare värde.

Detta svar kan jämföras med den exakta lösningen som är y(t ) = 5e-t + 3t - 3 och som då ger att y(2) = 5e-2 + 3 = 3,68. Att det blev så stor skillnad är inte att förvånas över, för att få ett någorlunda bra svar bör h vara som mest en tiondel av intervallet, d.v.s. ungefär 0,1 eller 0,2 i det här fallet.

Se även

  • Leonhard Euler
  • Taylorseriemetod
  • Heuns metod
  • Mittpunktsmetoden
  • Runge–Kuttametoden
  • Extrapoleringsmetod
  • Flerstegsmetod
  • Flervärdesmetod

Referenser

  • Michael T. Heath, Scientific Computing - an introduction survey, McGraw-Hill (1997)