Fandom

Scratchpad

Numerik1:Explizites Eulerverfahren

224,506pages on
this wiki
Add New Page
Discuss this page0 Share

Zurück

Explizites Eulerverfahren

Anfangswertproblem

(1)\quad y'(x) = f(x,y(x)) \,, \quad y(0) = y_0 \,.

Die Aufgabe ist einen Näherungswert für den exakten Wert y(L), L > 0 zu finden.

Eigenschaften

  • (1) ist äquivalent zu der Integralgleichung
\quad y(x) = y(0) + \int \limits_{0}^{x} f(x,y(x)) \, dx \,.
  • Man erwartet dass die globale Lipschitz-Bedingung für eine Lispchitz -Konstante L erfüllt ist:
|f(x,y_1) - f(x,y_2)| \le L |y_1 - y_2| \,, \forall x

Motivation

\quad y'(x) = \lim \limits_{h->0} \frac{y(x+h) - y(x)}{h} \,,

das heißt

(2)\quad y'(x) \approx \frac{y(x+h) - y(x)}{h} \,.

Von (1) und (2) folgt es

\quad y(x_0+h) \approx y(x_0) + h f(x_0,y(x_0))

Das Verfahren

\quad 0 \equiv x_0 < x_1 < \ldots x_n < x_{n+1} < \ldots < x_N \equiv L \,, 
\quad h_n := x_{n+1} - x_n \,.

\quad y_{n+1} = y_{n} + h_n f(x_n,y_n) \,, \quad n=0,1,2,\ldots,N-1

\quad y_N \approx y(L) !

Implementierung (konstante Schrittweite h)

double euler(double L, int N, double y0, double *function) {

  double h, x, y;

  h = L/N;
  x = 0.0;
  y = y0;

  while (x < L) {
    
    y = y + h*function(x,y);
    x = x + h;
  }
  return(y);
}

Taylorentwicklung

\quad y(x+h) = y(x) + h y'(x) + \frac{1}{2} h^2 y''(s) \,, \quad
s \in (x,x+h) \,,

das heißt

\quad \left|\frac{y(x+h) - y(x)}{h} - f(x,y(x)) \right| \le h \frac{1}{2} \max \limits_{s \in [x,x+h]} |y''(s)|

Zurück

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.