Программа
Program Secant; { Поиск корня уравнения методом секущих }
Var Result:real; { Корень }
X:real; { Приближение к корню }
Function F(x:real):real; { Вычисление функции }
Begin
F:=(x*Sqr(x)+5)*x-7
End;
Function Root(X0:real):real; { Функция нахождения корня }
const Eps=0.01; { Точность вычислений }
var X,XNew:real; { Приближенные значения корня }
F0:real; { Значение функции в точке X0 }
Fx:real; { Значение функции в точке X }
Iteration:longint; { Счетчик итераций }
Begin
F0:=F(X0); { Вычисление значения функции в точке начального приближения }
X:= X0+1; { Определение первого приближения }
XNew:=X+1; { Определение второго приближения }
Iteration:=0; { Сброс счетчика итераций }
while abs(XNew-X)>Eps do { Цикл приближения к корню }
begin
Inc(Iteration); { Набор числа итераций }
X:=XNew; { Сохранение предыдущего приближения }
Fx:=F(X); { Вычисление значения функции в точке X }
if Fx<>0 { Если новое приближение не является корнем }
then XNew:=X-(X-X0)/(1-F0/Fx) { то вычисление нового приближения }
else XNew:=X { иначе подготовка выхода из цикла }
end;
Root:=(XNew+X)/2; { Определение значения функции }
WriteLn('Число итераций ',Iteration);
End;
BEGIN
WriteLn; { Пропуск строки }
Write('Введите приближение корня ');
ReadLn(X); { Ввод начального приближения }
Result:=Root(X); { Вычисление корня }
writeln('x=',Result,' F(x)=',F(Result)) { Вывод корня и проверки }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию