Metoda Euler

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 8 ianuarie 2022; verificările necesită 7 modificări .

Metoda Euler  este cea mai simplă metodă numerică de rezolvare a sistemelor de ecuații diferențiale obișnuite . Descris pentru prima dată de Leonhard Euler în 1768 în lucrarea sa „Calcul integral” [1] . Metoda Euler este o metodă explicită, cu un singur pas, de ordinul întâi. Se bazează pe aproximarea unei curbe integrale printr-o funcție liniară pe bucăți, așa-numita linie întreruptă Euler.

Descrierea metodei

Să fie dată problema Cauchy pentru ecuația de ordinul întâi:

unde funcția este definită pe un domeniu . Soluția se caută pe jumătate de interval . Pe acest interval introducem noduri: Soluția aproximativă la nodurile , pe care o notăm cu , este determinată de formula:

Aceste formule pot fi generalizate direct în cazul sistemelor de ecuații diferențiale obișnuite.

Estimarea erorii metodei la pas și în general

Eroarea de pas sau eroarea locală este diferența dintre soluția numerică după un pas de calcul și soluția exactă la punctul . Soluția numerică este dată de formula

Soluția exactă poate fi extinsă într- o serie Taylor :

Obținem eroarea locală scăzând prima din a doua egalitate:

Acest lucru este adevărat dacă are o derivată a doua continuă [2] . O altă condiție suficientă pentru validitatea acestei estimări, din care rezultă cea anterioară și care de obicei poate fi ușor verificată, este diferențiabilitatea continuă față de ambele argumente [3] .

Eroarea în general, eroarea globală sau acumulată este eroarea în ultimul punct al unui segment final arbitrar al integrării ecuației. Pentru a calcula soluția în acest punct, sunt necesari pași, unde este lungimea segmentului. Prin urmare, eroarea globală a metodei .

Astfel, metoda Euler este o metodă de ordinul întâi - are o eroare la un pas și o eroare în general [3] .

Importanța metodei lui Euler

Metoda Euler a fost din punct de vedere istoric prima metodă pentru rezolvarea numerică a problemei Cauchy. O. Cauchy a folosit această metodă pentru a demonstra existenţa unei soluţii la problema Cauchy. Datorită preciziei scăzute și instabilității de calcul, metoda Euler este rar folosită pentru a găsi soluții practice la problema Cauchy. Cu toate acestea, datorită simplității sale, metoda Euler își găsește aplicarea în studiile teoretice ale ecuațiilor diferențiale, problemele de calcul al variațiilor și o serie de alte probleme matematice.

Modificări și generalizări

Metoda Euler modificată cu recalculare

Este posibil să creșteți acuratețea și stabilitatea calculului soluției folosind metoda explicită Euler din următoarea formă.

Prognoza:

.

Corecţie:

.

Pentru a îmbunătăți acuratețea, iterația corectivă poate fi repetată prin înlocuirea .

Metoda Euler modificată cu recalculare are al doilea ordin de precizie, totuși, pentru implementarea sa, este necesar să se calculeze de cel puțin două ori . Metoda Euler cu recalculare este o variație a metodelor Runge-Kutta (predictor-corector).

Metoda Adams-Bashforth în doi pași

O altă modalitate de a crește acuratețea metodei este să utilizați nu una, ci mai multe valori ale funcției calculate anterior:

Aceasta este o metodă liniară în mai multe etape .

Implementări în limbaje de programare

Implementarea C pentru .

#include <stdio.h> funcția dublă ( dublu x , dublu y ) { returnează 6 * x * x + 5 * x * y ; // funcție derivată întâi } int main ( int argc , char ** argv ) { int i , n ; dublu x , y , h ; h = 0,01 ; // pasul n = 10 ; // numărul de iterații x = 1 ; // x0 y = 1 ; // y0 pentru ( i = 0 ; i < n ; i ++ ) { y += h * func ( x , y ); // calcul yi x += h ; } returnează EXIT_SUCCESS ; }

Implementare în Python 3.7 :

# n - numărul de iterații, h - pas, (x, y) - punctul de plecare def Euler ( n = 10 , h = 0,01 , x = 1 , y = 1 ): pentru i în interval ( n ): y += h * funcția ( x , y ) x += h returnează x , y # soluție funcția def ( x , y ): returnează 6 * x ** 2 + 5 * x * y # funcție derivată întâi imprimare ( Euler ())

Implementare în limba Lua :

n , h , x , y = 10 , 0.01 , 1 , 1 -- numărul de iterații, pas, punctul de plecare coordonate funcția f ( x , y ) return 6 * x ^ 2 + 5 * x * y final -- prima derivată funcția pentru i = 1 , n do x , y = x + h , y + h * f ( x , y ) end print ( 'x: ' .. x .. ' y: ' .. y )

Vezi și

Note

  1. Euler L. Calcul integral, Volumul 1, Secțiunea 2, Cap. 7.
  2. Atkinson, Kendall A. (1989), An Introduction to Numerical Analysis (ed. a doua), New York: John Wiley & Sons , p. 342, ISBN 978-0-471-50023-0 
  3. 1 2 Dicţionar enciclopedic matematic . - M .: „Bufnițe. enciclopedie " , 1988. - S.  641 .

Literatură

  • Euler L. Calcul integral. Volumul 1. - M .: GITTL. 1956. [1]
  • Babenko K. I. Fundamentele analizei numerice. — M.: Nauka. 1986.