Используя метод половинного деления, определи имеет ли уравнение y=1x3−4,2x−4 корень на промежутке [−3, 4].

Ответы

Ответ дал: srzontmp
0

function f(x: real): real;

begin

 f:=x*x*x - 4.2*x - 4;

end;

{ основная программа }

var a,b,c,eps: real;  

   k: integer;  

{ a - начало интервала, b - конец }

begin

 write('a = ');  readln(a);

 write('b = ');  readln(b);

 if f(a)*f(b)<0 then

 begin

   write('точность вычислений eps: ');  readln(eps);

   k:=1;

   while abs(a-b)>eps do

   begin

     writeln('итерация ',k,'  a =',a:12:8, '  b =',b:12:8);

     c:=(a+b)/2;  

     if f(c)<>0 then

     begin

       if f(c)*f(b)<0 then a:=c

       else b:=c

     end;

     k:=k+1;

   end;

   writeln('корень = ',a:12:8);

 end

 else

    writeln('на интервале [',a,',',b,']',' корней нет');

end.

a = -3

b = 4

точность вычислений eps: 0.0001

итерация 1  a = -3.00000000  b =  4.00000000

итерация 2  a =  0.50000000  b =  4.00000000

итерация 3  a =  2.25000000  b =  4.00000000

итерация 4  a =  2.25000000  b =  3.12500000

итерация 5  a =  2.25000000  b =  2.68750000

итерация 6  a =  2.25000000  b =  2.46875000

итерация 7  a =  2.35937500  b =  2.46875000

итерация 8  a =  2.41406250  b =  2.46875000

итерация 9  a =  2.41406250  b =  2.44140625

итерация 10  a =  2.41406250  b =  2.42773438

итерация 11  a =  2.41406250  b =  2.42089844

итерация 12  a =  2.41748047  b =  2.42089844

итерация 13  a =  2.41918945  b =  2.42089844

итерация 14  a =  2.41918945  b =  2.42004395

итерация 15  a =  2.41918945  b =  2.41961670

итерация 16  a =  2.41918945  b =  2.41940308

итерация 17  a =  2.41929626  b =  2.41940308

корень =   2.41934967



Вас заинтересует