ПАСКАЛЬ ABC.NET
Найти корень уравнения 2xsinx-cosx=0 на отрезке [0,4;1] с точностью 1e-5. Сколько итераций потребовалось для решения?
Ответы
===== PascalABC.NET =====
function F(x: real) := 2 * x * Sin(x) - Cos(x);
begin
var (a, b, eps) := (0.4, 1.0, 1e-5);
var fx: real;
var Iter := 1;
var fa := F(a);
if Abs(fa) <= eps then
Println('Корень', a, 'Количество итераций:', Iter)
else
begin
var fb := F(b);
Inc(Iter);
if Abs(fb) <= eps then
Println('Корень', b, 'Количество итераций:', Iter)
else
if fa * fb > 0 then
begin
Println('Измена! На интервале корня нет!');
Exit
end
else
repeat
Inc(Iter);
var x := (a + b) / 2;
fx := F(x);
if Abs(fx) <= eps then
Println('Корень', x, 'Количество итераций:', Iter)
else
if fa * fx > 0 then
a := x
else
b := x;
until Abs(fx) <= eps
end
end.
