uses Math;
(*
This routines must be defined by the programmer:
function F(X : Double):Double;
*)
procedure FEqXModifiedIteration(const n : Integer;
const e : Double;
const a : Double;
var HasRoot : Boolean;
var x : Double);forward;
(*************************************************************************
Корень уравнения x=F(x) - модифицированный метод итераций.
procedure FEqXModifiedIteration(
n:integer;
e:real;
xn:real;
var HasRoot:boolean, x:real)
Функция находит корень уравнения x=F(x) методом модифицированной итерации
с относительной погрешностью e. В качестве начального приближения
берется x0.
функция прекращает работу после n итераций.
ременная HasRoot=True если необходимая точность e достигнута
менее чем за n итераций, и HasRoot=False, если необходимая точность
за n итераций недостигнута.
*************************************************************************)
procedure FEqXModifiedIteration(const n : Integer;
const e : Double;
const a : Double;
var HasRoot : Boolean;
var x : Double);
var
J : Integer;
g : Double;
b : Double;
c : Double;
d : Double;
h : Double;
begin
HasRoot := True;
x := a;
g := F(x);
b := g-a;
d := b;
c := b;
if Abs((F(g)-g)/g)>=e then
begin
j := 1;
HasRoot := False;
while j<=n do
begin
x := g;
c := F(x)-g;
if AbsReal(c)<Abs(g)*e then
begin
HasRoot := True;
j := n+1;
end
else
begin
h := b/c;
b := c;
if Abs(h-1)<e then
begin
j := n+1;
end
else
begin
d := d/(h-1);
g := g+d;
end;
end;
j := j+1;
end;
end;
end;
1. Заварыкин В. М., Житомирский В. Г., Лапчик М. П. Численные методы. – М.: Просвещение, 1991.
2. Ракитин В. И., Первушин В. Е. Практическое руководство по методам вычислений с приложением программ для персональных компьютеров. – М.: Высш. шк., 1998.