Программа


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.

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