Zurück Vor +Ebene Home Inhalt Index Hilfe

Nullstellensuche mit der Regula falsi

Programm zur Bestimmung der Nullstelle einer Funktion f im Intervall mit der Regula falsi.
program RegulaFalsi(input, output);

        {Nullstellensuche der Funktion f=cos(x)-x im Intervall [xu,xo]
        mittels Regula Falsi}

    var
        xu, xo:     double; {Intervallgrenzen}
        eps:        double; {Genauigkeit}
        fehler:     double;
        xneu, xdum: double;

    function f(x: double): double; begin
        f := cos(x) - x
    end; {function}

    procedure init; begin
        writeln('Exemplarische Darstellung einer Nullstellensuche mittels ');
        writeln('Regula Falsi anhand der Funktion f=cosinus(x)-x');
        writeln;
        writeln('Geben Sie bitte die Grenzen des Intervalls an, in dem gesucht werden soll.');
        writeln('Vorsicht, (cos(xunten)-xunten)*(cos(xoben)-xoben) muss negativ sein!');
        readln(xu, xo);
        while (f(xu)*f(xo)) > 0 do begin
            writeln('Zwischen diesen Grenzen liegt keine Nullstelle. Versuchen Sie es noch einmal.');
            readln(xu, xo)
        end; {while}
        writeln('Wie genau soll die Nullstelle bestimmt werden?');
        readln(eps);
        while eps <= 0 do begin
            writeln('Nur positive Genauigkeiten machen Sinn. Versuchen Sie es noch einmal.');
            readln(eps)
        end; {while}
    end; {init}

    procedure result; begin
            writeln('Die Nullstelle liegt bei ', xneu:1:7, '.')
    end; {result}

    begin {Regula Falsi}
        init;
        fehler := abs(xo - xu);
        xneu := xu;
        xdum := xo;
        while fehler > eps do begin
           xneu := xu - f(xu)*(xu - xo)/(f(xu) - f(xo));
           fehler := abs(xneu - xdum);
           if f(xneu) = 0.0 then begin
               result;
               halt
           end; {if}
           if f(xneu)*f(xu) < 0 then begin
              xo := xneu
           end else begin {if}
              xu := xneu
           end; {if}
           xdum := xneu
        end; {while}
        result;
    end. {Regula Falsi}
Zurück Vor +Ebene Home Inhalt Index Hilfe

Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik