Euler metode

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 8. januar 2022; checks kræver 7 redigeringer .

Euler - metoden  er den enkleste numeriske metode til at løse systemer af almindelige differentialligninger . Først beskrevet af Leonhard Euler i 1768 i hans værk "Integral Calculus" [1] . Euler-metoden er en eksplicit, et-trins, første-ordens nøjagtighedsmetode. Den er baseret på tilnærmelsen af ​​en integralkurve ved hjælp af en stykkevis lineær funktion, den såkaldte Euler stiplede linje.

Beskrivelse af metoden

Lad Cauchy-problemet for førsteordensligningen være givet:

hvor funktionen er defineret på et eller andet domæne . Løsningen søges på halvintervallet . På dette interval introducerer vi noder: Den omtrentlige løsning ved noder , som vi betegner med , bestemmes af formlen:

Disse formler kan generaliseres direkte til tilfældet med systemer med almindelige differentialligninger.

Estimering af metodens fejl ved trin og generelt

Trinfejl eller lokal fejl er forskellen mellem den numeriske løsning efter et beregningstrin og den nøjagtige løsning på punktet . Den numeriske løsning er givet ved formlen

Den nøjagtige løsning kan udvides i en Taylor-serie :

Vi får den lokale fejl ved at trække den første fra den anden lighed:

Dette er sandt, hvis den har en kontinuerlig anden afledet [2] . En anden tilstrækkelig betingelse for gyldigheden af ​​dette skøn, hvorfra det foregående følger, og som normalt let kan verificeres, er kontinuerlig differentiabilitet med hensyn til begge argumenter [3] .

Fejlen generelt, global eller akkumuleret fejl er fejlen på det sidste punkt af et vilkårligt sidste segment af integrationen af ​​ligningen. For at beregne løsningen på dette tidspunkt kræves trin, hvor er længden af ​​segmentet. Derfor er metodens globale fejl .

Således er Euler-metoden en første-ordens metode - den har en fejl ved et trin og en fejl generelt [3] .

Betydningen af ​​Eulers metode

Euler-metoden var historisk set den første metode til den numeriske løsning af Cauchy-problemet. O. Cauchy brugte denne metode til at bevise eksistensen af ​​en løsning på Cauchy-problemet. På grund af den lave nøjagtighed og beregningsmæssige ustabilitet bruges Euler-metoden sjældent til at finde praktiske løsninger på Cauchy-problemet. Men på grund af sin enkelhed finder Euler-metoden sin anvendelse i teoretiske undersøgelser af differentialligninger, problemer med variationsregningen og en række andre matematiske problemer.

Ændringer og generaliseringer

Ændret Euler-metode med genberegning

Det er muligt at øge nøjagtigheden og stabiliteten af ​​beregningen af ​​løsningen ved hjælp af den eksplicitte Euler-metode i følgende form.

Vejrudsigt:

.

Rettelse:

.

For at forbedre nøjagtigheden kan den korrigerende iteration gentages ved at erstatte .

Den modificerede Euler-metode med genberegning har den anden rækkefølge af nøjagtighed, men for dens implementering er det nødvendigt at beregne mindst to gange . Euler-metoden med genberegning er en variation af Runge-Kutta (prædiktor-korrektor) metoderne.

Adams-Bashforth to-trins metode

En anden måde at øge metodens nøjagtighed på er at bruge ikke én, men flere tidligere beregnede funktionsværdier:

Dette er en lineær flertrinsmetode .

Implementeringer i programmeringssprog

C -implementeringen for .

#include <stdio.h> dobbeltfunktion ( dobbelt x , dobbelt y ) _ { returner 6 * x * x + 5 * x * y ; // første afledede funktion } int main ( int argc , char ** argv ) { int i , n ; dobbelt x , y , h ; h = 0,01 ; // trin n = 10 ; // antal iterationer x = 1 ; // x0 y = 1 ; // y0 for ( i = 0 ; i < n ; i ++ ) { y += h * func ( x , y ); // beregning yi x += h ; } returner EXIT_SUCCESS ; }

Implementering i Python 3.7 :

# n - antal iterationer, h - trin, (x, y) - startpunkt def Euler ( n = 10 , h = 0,01 , x = 1 , y = 1 ): for i i området ( n ): y += h * funktion ( x , y ) x += h returnerer x , y # løsning def funktion ( x , y ): returner 6 * x ** 2 + 5 * x * y # første afledte funktion print ( Euler ())

Implementering på Lua sprog :

n , h , x , y = 10 , 0,01 , 1 , 1 -- antal iterationer, trin, startpunktskoordinater funktion f ( x , y ) returner 6 * x ^ 2 + 5 * x * y ende -- første afledet funktion for i = 1 , n do x , y = x + h , y + h * f ( x , y ) endeudskrift ( 'x: ' .. x .. ' y: ' .. y )

Se også

Noter

  1. Euler L. Integralregning, bind 1, afsnit 2, kap. 7.
  2. Atkinson, Kendall A. (1989), An Introduction to Numerical Analysis (2. udgave), New York: John Wiley & Sons , s. 342, ISBN 978-0-471-50023-0 
  3. 1 2 Matematisk encyklopædisk ordbog . - M . : "Ugler. encyklopædi" , 1988. - S.  641 .

Litteratur

  • Euler L. Integralregning. Bind 1. - M .: GITTL. 1956. [1]
  • Babenko K. I. Grundlæggende om numerisk analyse. — M.: Nauka. 1986.