Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа №12 / LAB11
.PAS program FuncNewton;
const n = 10;
var x:real;
i:integer;
procedure newton(var x: real);
const tol = 1.0E-6;
max = 20;
var fx,dfx,dx,x1 : real;
i : integer;
error : boolean;
begin { newton }
error:=false;
i:=0;
repeat
i:=i+1;
x1:=x;
{func(x,fx,dfx);}
if dfx=0.0 then
begin
error:=true;
x:=1.0;
writeln(chr(7),'ERROR: slope zero')
end
else
begin
if dfx <> 0 then
dx:=fx/dfx
else
x:=x1-dx;
writeln('x=',x,' fx=',fx,' dfx=',dfx)
end
until
error or
(i>max) or
(abs(dx)<=abs(tol*x));
if i>max then
begin
writeln(chr(7),'ERROR: no convergence in ',max,' loops');
error:=true
end
end; { newton }
begin
begin
x := 1.5;
newton(x);
end;
end.
const n = 10;
var x:real;
i:integer;
procedure newton(var x: real);
const tol = 1.0E-6;
max = 20;
var fx,dfx,dx,x1 : real;
i : integer;
error : boolean;
begin { newton }
error:=false;
i:=0;
repeat
i:=i+1;
x1:=x;
{func(x,fx,dfx);}
if dfx=0.0 then
begin
error:=true;
x:=1.0;
writeln(chr(7),'ERROR: slope zero')
end
else
begin
if dfx <> 0 then
dx:=fx/dfx
else
x:=x1-dx;
writeln('x=',x,' fx=',fx,' dfx=',dfx)
end
until
error or
(i>max) or
(abs(dx)<=abs(tol*x));
if i>max then
begin
writeln(chr(7),'ERROR: no convergence in ',max,' loops');
error:=true
end
end; { newton }
begin
begin
x := 1.5;
newton(x);
end;
end.
Соседние файлы в папке Лабораторная работа №12