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