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 <math>y'=f(t,y)</math> genom att dela in den i diskreta stegintervall. Metoden utgår från Taylorserien
- <math>y(t+h) = y(t) + y'(t)h + \frac{y(t)}{2!}h^2+...</math>
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
- <math>y(t + h) = y(t) + f(t, y(t))h\,</math>
eller i diskret form
- <math>y_{k+1} = y_k + f(t_k, y_k)h_k\,</math>
Tidsstegen ges av <math>t_k</math> och <math>t_{k+1} = t_k + h_k</math> och steglängen <math>h_k</math> 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 <math>h_k = h</math>, 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
[redigera | redigera wikitext]För (globala) trunkeringsfelet i Eulers stegmetod gäller
- <math>R_T = a_0h + a_1h^2 + \ldots </math>.
Exempel
[redigera | redigera wikitext]Låt y ′ = 3t — y, 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
[redigera | redigera wikitext]- Leonhard Euler
- Taylorseriemetod
- Heuns metod
- Mittpunktsmetoden
- Runge–Kuttametoden
- Extrapoleringsmetod
- Flerstegsmetod
- Flervärdesmetod
Referenser
[redigera | redigera wikitext]- Michael T. Heath, Scientific Computing - an introduction survey, McGraw-Hill (1997)