Modifiziertes Euler-Verfahren
Programm zur numerischen Integration einer Differentialgleichung nach dem modifizierten Euler-Verfahren.
program Eulermodifiziert;
{Numerische Integration der Gleichung y'(x)=-y(x) mittels des
modifizierten Euler-Verfahrens}
var
x0, y0: double; {Anfangwerte}
xf: double; {Endwert}
h: double; {Schrittweite}
x, y: double;
x1, y1: double;
function fxy(x, y: double): double; begin
fxy := -y
end; {fxy}
procedure init; begin
writeln('Exemplarische Darstellung einer numerischen Integration mittels');
writeln('des modifizierten Euler-Verfahrens anhand der Gleichung y`(x)=-y(x)');
writeln;
writeln('Geben Sie bitte die Anfangwerte ein.');
readln(x0, y0);
writeln('Geben Sie nun an, bis zu welchem x-Wert y(x) berechnet werden soll.');
readln(xf);
writeln('Und in welcher Schrittweite sollen die x-Werte liegen?');
readln(h);
while (xf - x0)*h < 0 do begin
writeln('Von ', x0:1:3,' aus koennen Sie ', xf:1:3,' in Schritten von ', h:1:3,' nicht erreichen.');
writeln('Geben Sie noch einmal den Endwert und die Schrittweite ein.');
readln(xf, h)
end; {while}
x := x0;
y := y0;
writeln('x y')
end; {init}
procedure result; begin
writeln( x:1:5,' ', y:1:5)
end; {result}
begin {Euler modifiziert}
init;
while x < xf do begin
x1 := x + h/2.0;
y1 := y + fxy(x, y)*h/2.0;
y := y + h*fxy(x1,y1);
x := x + h;
result
end {while}
end. {Euler modifiziert}