Eilera metode

thumb|300x300px|Eilera metodes ilustrācija — tā pieņem, ka funkcija ir taisne kādam laika solim <math>\Delta t </math>, pēc kura metode izmanto citu slīpumu un vēlreiz pieņem, ka funkcija ir taisne
**Eilera metode** ir skaitlisks paņēmiens, kā atrisināt parastos diferenciālvienādojumus (ODE), ja ir dots sākumnosacījums. Šī ir pirmās kārtas metode, jo tās globālā kļūda (kas rodas katrā aprēķina soli) ir tieši proporcionāla laika solim GTE \propto \Delta t . Tā ir visvienkāršākā no neapslēptajām metodēm (nākamā soļa vērtību var izteikt) un vienkāršākā Runges—Kuttas metode. Eilera metode kalpo kā pamats, no kura veidotas citas skaitliskās metodes. Šī metode ir nosaukta Leonarda Eilera vārdā.

## Ģeometriskā interpretācija
Apskatām problēmu, ka tiek meklēta nezināma funkcija, pie nosacījuma, ka tiek dots sākumnosacījums, un tas, ka nezināmā funkcija apmierina zināmu diferenciālvienādojumu (pirmās kārtas ODE gadījumā y'(x) = f(y(x), x) ). Šo ODE var interpretēt kā formulu, pēc kuras aprēķināt taisnes slīpumu katrā punktā. Tas ir noderīgi, jo jebkura funkcija pietiekami mazos mērogos izskatās pēc taisnes. Līdz ar to pārejot no sākumpunkta A_0 un nākamo punktu A_1 nebūs ļoti nost no meklētās funkcijas, ja solis ir pietiekami neliels. Šāds algoritms sniegs daudzstūrainu līkni (A_0 A_1 A_2 A_3...).
### Pirmās kārtas pieeja
Atkal, ja doti sākumnosacījumi t_0  un y(t_0) , kā arī atvasinājuma funkcija y'(t) , tad, lai iegūtu nākamo funkcijas vērtību izvēlās nelielu laika soli \Delta t , pēc kura iegūst nākamo laika vērtību t_{n+1} = t_n + \Delta t  . Tad Eilera metode pēc kuras iegūst nākamo funkcijas vērtību

:  y_{n+1} = y_n + y'_n \cdot \Delta t

Vērtība y_n  ir aptuvenais atrisinājums laika momentā t_n , jeb y_n \approx y(t_n)  . Eilera metode ir atklāta, kas nozīmē nākamo vērtībuy_{n+1}  var izteikt vienā vienādojuma pusē un otrā pusē ir tikai iepriekšējās vērtības.

## Pirmās kārtas piemērs
thumb|Dažādu laika soļu piedāvāto atrisinājumu salīdzinājums diferenciālvienādojumam <math>v' = -g - \frac{k}{m} v </math>. Lieliem laika soļiem atrisinājums kļūst nefizikāls un nestabils.|200x200px
Apskatīsim daļiņas ātrumu, uz kuras darbojas gravitācijas spēks un berzes spēks, kas proporcionāls ātrumam. Pēc 2.Ņūtona likuma diferenciālvienādojums izskatītos šādi:

m \frac{dv}{dt} = -  mg - kv , kur m   ir daļiņas masa, v  ir daļiņas ātrums, g  ir brīvās krišanas paātrinājums, k  ir proporcionalitātes koeficients.

Izsakot ātruma atvasinājumu iegūst: v' = -g - \frac{k}{m} v . Šo var izrisināt skaitliski ar Eilera metodi. Var tabulā salīdzināt laika soļus, piemēram, \Delta t = 1  un \Delta t = 2 . Piemēra labad, var pieņemt g = 9.81   un \frac{k}{m} = 0.1 , tad iegūstam nākamo ātruma vērtību pēc formulas  y_{n+1} = y_n + y'_n \cdot \Delta t:

Kā redzams, atrisinājumi atšķiras, bet beigās tā pat nonāk apmēram pie tās pašas vērtības. Šim diferenciālvienādojumam ir arī analītisks atrisinājums v(t) = e^{-\frac{k}{m}t} - \frac{m \cdot g}{k}  , tā kā šo piemēra iegūtos rezultātus var salīdzināt ar analītisko risinājumu.

## Eilera metode augstākām kārtām
Eilera metode strādā arī augstākām diferenciālvienādojumu kārtām par pirmo, ja ir iespējams izteikt augstākāko atvasinājumu. Ja augstākā pakāpe ir neapslēpta, to pārraksta kā sistēmu ar pirmās kārtas diferenciālvienādojumiem. Piemēram, augstāk apskatītajā piemēra varētu meklēt daļiņas atrašanās vietu, nevis ātrumu, tad diferenciālvienādojums izskatītos šādi: y* = -g - \frac{k}{m} y'  </math>. Ar apzīmēšanu varam iegūt vienādojumu sistēmu:

<math>\begin{align}
y' = v \\ 
y* = v' = -g - \frac{k}{m} v    
\end{align}  , tagad katrā solī var izmantot Eilera metodi: \begin{align}
y_{n+1} = y_n + v_n \cdot \Delta t \\ 
v_{n+1} = v_n + \left(-g - \frac{k}{m} v_n   \right)\cdot \Delta t
\end{align} .

## Izvedums
Eilera metodi var iegūt vairākos veidos. Viens veids ir apskatot Teilora rindu funkcijai y  ap punktu t_0 :

y(t_0 + \Delta t) = y(t_0) + y'(t_0) \cdot \Delta t + \frac{y*(t_0)}{2} \cdot \Delta t ^2 + O(\Delta t ^3) </math>

Ja ņem vērā tikai pirmos divus Teilora rindas locekļus, iegūst Eilera metodi.

Vēl Eilera metodi var iegūt, izmantojot galīgus skaitļus atvasinājuma definīcijā: <math>y'(t_0) \approx \frac{y(t_0 + \Delta t) - y(t_0)}{\Delta t} </math>, pārkārtojot iegūt Eilera metodi.

== Citas Eilera metodes ==
[[Attēls:Euler and Euler-Kromer method comparison.png|thumb|591x591px|Eilera metodes un Eilera-Kromera metožu salīdzinājums [[Atsperes svārsts|atsperes svārstam]]. Eilera-Kromera metode apmēram saglabā enerģiju ar nelielām svārstībām, turpretim Eilera metode tikai palielina sistēmas enerģiju.]]
Pastāv arī atpakaļ vērstā Eilera metode, centrālā Eilera metode un Eilera-Kromera metode. Atpakaļ vērstā Eilera metode ir ievērojama ar to, ka tā vienmēr [[Konverģence (matemātika)|konverģē]] (ja pēc pietiekami ilga laika atrisinājums vairs nemainās, šī metode to atspoguļos). Centrālā Eilera metode ir ievērojama ar to, ka tā apvieno parasto (uz priekšu vērsto Eilera metodi) ar atpakaļ vērsto, lai kļūdas kārtu šai metodei. Eilera-Kromera metode ir ievērojama ar to, ka tā dažiem diferenciālvienādojumiem saglabā enerģiju (citas Eilera metodes, Runges-Kuttas metodes to nesaglabā).

==== Atpakaļ vērstā Eilera metode ====
Teilora rinda tiek apskatīta no cita skatpunkta- kad no nākotnes vērtības iet atpakaļ uz pagātnes vērtību:

<math>y(t_0 - \Delta t) = y(t_0) - y'(t_0) \cdot \Delta t + \frac{y*(t_0)}{2} \cdot \Delta t ^2 - \frac{y**(t_0)}{6} \Delta t^3 + O(\Delta t ^4) </math>, jeb apskatot iteratīvā pierakstā un atmetot otrās un augstāku kārtu locekļus:

<math>y_n = y_{n+1} - y'_{n+1} \longrightarrow y_{n+1} = y_n + y'_{n+1} </math>. Tā ir apslēpta metode, jo lai aprēķinātu nākamo vērtību <math>y_{n+1} </math> nepietiek ar pagātnes vērtībām (<math>_{n}, \ _{n-1}, \ _{n-2} </math>...), jo nepieciešams zināt nākamo ātrumu <math>y'_{n+1} </math>.

==== Centrālā Eilera metode ====
Apskatot parasto un atpakaļ vērsto Eilera metodes Teilora rindas:

<math>y(t_0 + \Delta t) = y(t_0) + y'(t_0) \cdot \Delta t + \frac{y''(t_0)}{2} \cdot \Delta t ^2 + \frac{y**(t_0)}{6} \cdot \Delta t^3 + O(\Delta t ^4) 

y(t_0 - \Delta t) = y(t_0) - y'(t_0) \cdot \Delta t + \frac{y*(t_0)}{2} \cdot \Delta t ^2 - \frac{y*'(t_0)}{6} \Delta t^3 + O(\Delta t ^4) 

Parastajai Eilera metodei var atņemt atpakaļ vērsto un iegūt:

y(t_0 + \Delta t) - y(t_0 - \Delta t) = 2 y'(t_0) + 2 \frac{y'''(t_0)}{6} \Delta t^3 + O(\Delta t^5) , atmetot trešās un augstāku kārtu locekļus un pārrakstot iteratīvajā pierakstā iegūst:y_{n+1} - y_{n-1} = 2 y'_n \longrightarrow  y_{n+1} = y_{n-1} + 2 y'_n . Šī ir otrās kārtās metode GTE \propto \Delta t ^2 , jo tiek atmesti augstāki locekļi nekā parastajā Eilera metodē.

#### Eilera-Kromera metode
Eilera-Kromera metodei ir divi varianti- ātrums vai pozīciju ņem nākotnes vērtības vērā:

\begin{cases}
y_{n+1} = y_n + g(t_n, y'_n) \Delta t \\
y'_{n+1} = y'_{n} + f(t_n, y_{n+1}) \Delta t \\
\end{cases}
\ \ \text{vai} \ \ 
\begin{cases}
y'_{n+1} = y'_{n} + f(t_n, y_n) \Delta t \\
y_{n+1} = y_n + g(t_n, y'_{n+1}) \Delta t
\end{cases} 

Šī metode ir pirmās kārtas un atsevišķiem diferenciālvienādojumiem ar svārstībām saglabā enerģiju. Tomēr, ja šīs divas formulas ņem pamīšus, tad tā ir kā Verlē metode ar divkāršu divkāršu laika soli (otrās kārtas metode). Šo metodi ir labāk izmantot priekš Hamiltoniānām sistēmām.

## Atsauces