Предмет: Информатика,
автор: maximoshev
Методом (половинного деления или итерации)(нужно выбрать правильный) найти корень уравнения (x-3)/(x^2+2)=0 расположенный на отрезке [-1;4] с абсолютной погрешностью 10^-4
программа паскаль
и еще нужна блок схема
Ответы
Автор ответа:
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)
else begin
fb := f(b);
if abs(fb) <= eps then Writeln('x=', b, ', y=', fb)
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)
else
if fa * fx > 0 then a := x else b := x;
until abs(fx) <= eps
end
end.
Результат выполнения программы:
Введите через пробел границы интервала [a;b] и точность:-1 4 1e-4
x=2.9990234375, y=-8.88257162245635E-05
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)
else begin
fb := f(b);
if abs(fb) <= eps then Writeln('x=', b, ', y=', fb)
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)
else
if fa * fx > 0 then a := x else b := x;
until abs(fx) <= eps
end
end.
Результат выполнения программы:
Введите через пробел границы интервала [a;b] и точность:-1 4 1e-4
x=2.9990234375, y=-8.88257162245635E-05
Автор ответа:
0
спасибо
Похожие вопросы
Предмет: Қазақ тiлi,
автор: Аноним
Предмет: Английский язык,
автор: Аноним
Предмет: Қазақ тiлi,
автор: Аноним
Предмет: Химия,
автор: ololosha26
Предмет: Литература,
автор: TanyaVodolazkina