Методом (половинного деления или итерации)(нужно выбрать правильный) найти корень...

0 голосов
82 просмотров

Методом (половинного деления или итерации)(нужно выбрать правильный) найти корень уравнения (x-3)/(x^2+2)=0 расположенный на отрезке [-1;4] с абсолютной погрешностью 10^-4

программа паскаль

и еще нужна блок схема


Информатика (30 баллов) | 82 просмотров
0

попробуйте половинным

0

я написал такую программуProgram uravnenue;var a, b, e, x, F:real;beginF:=(x-3)/(x^2+2);end;a:=-1;b:=4;e:=0.0001;repeatif ((a-3)/(a^2+2)*(b-3)/(b^2+2))<=0then x:=(a+b);else write ('îøèáêà èíòåðâàëà');if F(a)*F(x)<0 then b:=xelse a:=xuntil abs(b-a)<e;x:=(a+b)/2;writeln (x);readln;end.

0

но у меня не получается

0

выдает ошибку

0

Вообще бредовое задание. Тут в уме можно найти корень 3. Знаменатель всегда положителен, в числителе х-3=0.

0

я в курсе

0

но сказано программа

0

проверь программу

0

я не понимаю в чем ошибка

0

Проще и быстрее свою написать

Дан 1 ответ
0 голосов
Правильный ответ

Function f(x: real): real;
begin
  f := (x - 3) / (sqr(x) + 2)
end;

var
  a, b, x, fa, fb, fx, eps: real;

begin
  Write('Введите через пробел границы интервала [a;b] и точность:');
  Readln(a, b, eps);
  fa := f(a);
  if abs(fa) <= eps then Writeln('x=', a, ', y=', fa)<br>  else begin
    fb := f(b);
    if abs(fb) <= eps then Writeln('x=', b, ', y=', fb)<br>    else
    if fa * fb > 0 then Writeln('На указанном интервале корней нет')
    else
      repeat
        x := (a + b) / 2;
        fx := f(x);
        if abs(fx) <= eps then Writeln('x=', x, ', y=', fx)<br>          else
        if fa * fx > 0 then a := x else b := x;
      until abs(fx) <= eps<br>  end
end.

Результат выполнения программы:

Введите через пробел границы интервала [a;b] и точность:-1 4 1e-4
x=2.9990234375, y=-8.88257162245635E-05



(142k баллов)
0

спасибо