===== 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
var fb := F(b);
Inc(Iter);
if Abs(fb) <= eps then
Println('Корень', b, 'Количество итераций:', Iter)
if fa * fb > 0 then
Println('Измена! На интервале корня нет!');
Exit
end
repeat
var x := (a + b) / 2;
fx := F(x);
if Abs(fx) <= eps then
Println('Корень', x, 'Количество итераций:', Iter)
if fa * fx > 0 then
a := x
b := x;
until Abs(fx) <= eps
end.
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
===== 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.