Программа
PROGRAM Newton;
CONST Eps=1e-8; { Точность }
VAR Result:real; { Корень }
X:real; { Переменная }
FUNCTION F(X:real):real; { Вычисление значения функции }
Begin
F:=3*Sqr(Ln(X))+6*Ln(X)-5
End;
FUNCTION FProto(X:real):real; { Вычисление значения производной функции }
Begin
FProto:=6*Ln(X)/X+6/X
End;
FUNCTION Root(X:real;Eps:real):real; { Вычисление корня }
Var PredX:real; { Предыдущее приближение корня }
n:word; { Число шагов }
Begin
n:=0; { Обнуление числа шагов }
repeat { Цикл приближения к корню }
n:=n+1; { Набор числа шагов }
PredX:=X; { Сохранение предыдущего приближение }
X:=X-F(X)/FProto(X) { Вычисление нового приближения корня }
until Abs(X-PredX)<=Eps; { Выход из цикла при достижении заданной точности }
WriteLn('Результат получен за ',n,' шагов при точности ',Eps:0);
Root:=X { Определение значения функции }
End;
BEGIN
WriteLn; { Пропуск строки }
Write('Введите начальное приближение корня '); { Вывод приглашения }
ReadLn(X); { Ввод начального приближения }
Result:=Root(X,Eps); { Вычисление корня }
writeln('X=',Result,' F(X)=',F(Result)) { Вывод корня и проверки }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию