Numerik1:Explizites Eulerverfahren

Zurück

Explizites Eulerverfahren
Es wird folgendes Anfangswertproblem betrachtet:

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

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

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}$$

es folgt von (1) und (2) dass

$$\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$$

$$\quad y_N \approx y(L) !$$

Implementierung (konstante Schrittweite)
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(ynew); }

Zurück