Программа


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.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию