Нахождение всех действительных корней методом хорд - Pascal

Узнай цену своей работы

Формулировка задачи:

Нужно составить программу для нахождения всех действительных корней уравнения F(x)=0 методом хорд не более, чем за 20 итераций. Помогите, очень прошу ) Функция: x^5 - 5x^4 - 7x^3 + 77x^2 - 138x + 72 Отрезок: [-5; 4] Точность E=0.0001 Заранее спасибо!

Решение задачи: «Нахождение всех действительных корней методом хорд»

textual
Листинг программы
program pr;
function f(x:real):real;
begin
f:= (x*x*x*x*x) - 5*(x*x*x*x) - 7*(x*x*x) + 77*(x*x) - 138*x + 72;
end;
var xn,xk,p,e:real;
begin
e:=0.0001;
xn:=-5;
xk:=4;
repeat
p:=(f(xk)*xn-f(xn)*xk)/(f(xk)-f(xn));
if abs(f(p))<=e then
 begin
  writeln('x=',p:0:5,'  y=',f(p):0:5);
  exit;
 end;
if f(xn)*f(xk)>0 then xn:=p else xk:=p;
until abs((f(xk)*xn-f(xn)*xk)/f(xk)-f(xn)-p)<=e;
writeln('x=',p:0:5,'  y=',f(p):0:5);
end.

Объяснение кода листинга программы

  1. Объявление функции f с аргументом x типа real и возвращаемым значением типа real.
  2. Определение функции f, вычисляющей значение многочлена для заданного значения x и возвращающей результат вычислений.
  3. Объявление переменных xn, xk, p, e типа real.
  4. Присвоение значение 0.0001 переменной e.
  5. Присвоение значения -5 переменной xn.
  6. Присвоение значения 4 переменной xk.
  7. Начало цикла repeat ... until, в котором происходит итерационный процесс для нахождения корней уравнения.
  8. Вычисление значения переменной p по формуле метода хорд.
  9. Проверка условия: Если значение функции в точке p меньше или равно e, то выводится значение x и y в точке p, после чего программа завершает выполнение.
  10. Проверка условия: Если значение функции в точках xn и xk имеет одинаковый знак, то значение xn присваивается p, в противном случае значение xk присваивается p.
  11. Повторение шагов 8-10 до тех пор, пока разность между предыдущим и текущим значением p не станет меньше или равно e.
  12. Вывод значения x и y в точке p после завершения цикла.

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы