Отделение и уточнение корней нелинейных уравнений. Метод половинного деления(Проб) - Pascal ABC
Формулировка задачи:
Помогите исправить ошибку, пожалуйста.
Определение и уточнение корней нелинейных уравнений.
Уравнение: x3 + 3x2 - 8x - 3 = 0
Интервал: [-5; 3]
Точность: 10-3
Программа:
Решение задачи: «Отделение и уточнение корней нелинейных уравнений. Метод половинного деления(Проб)»
textual
Листинг программы
const a=-5;
b=3;
eps=0.0001;
function f(x:real):real;
begin
f:=power(x,3)+3*sqr(x)-8*x-3;
end;
function Bisec(xn,xk:real):real; //функция уточнения корня методом бисекции
var x,c:real;
begin
repeat
c:=(xn+xk)/2;
if F(xn)*F(xk)<0 then xk:=c
else xn:=c;
until xk-xn<eps;
Bisec:=(xn+xk)/2;
end;
var x,dx,x11,x12:real;
i:integer;
begin
dx:=0.1; //идем по интервалу с шагом 0.1
x:=a;
i:=0;
while x<=b do
begin
x11:=x;
x12:=x+dx;
if F(x11)*F(x12)<0 then //если знаки функции разные на концах отрезка
begin
i:=i+1;
writeln('X',i,'=',Bisec(x11,x12):8:5);//уточняем корень
end;
x:=x+dx;
end;
end.