Numeric examples

This commit is contained in:
Mikhalkovich Stanislav 2025-06-15 15:40:30 +03:00
parent 54b311ed4a
commit af05f2b3c8
2 changed files with 45 additions and 0 deletions

View file

@ -0,0 +1,27 @@
function f(x: real) := exp(x) - 4; // Короткое определение функции
function BisectionMethod(a, b, eps: real): real;
begin
var fa := f(a); // Вычисляем f(a) один раз в начале
while abs(b - a) > eps do
begin
var c := (a + b) / 2;
var fc := f(c); // Вычисляем функцию только один раз на итерацию
if fc = 0 then
break; // Выход из цикла, если найден точный корень
if fa * fc < 0 then
b := c
else
(a, fa) := (c, fc); // Кортежное присваивание
end;
Result := (a + b) / 2; // Возвращаем среднюю точку как приближенный корень
end;
begin
var (a, b) := (0.0, 3.0); // Множественное присваивание для a и b
var eps := 0.000001;
var root := BisectionMethod(a, b, eps);
Println('Корень уравнения:', root);
end.

View file

@ -0,0 +1,18 @@
function f(x: real) := exp(x) - 4; // Функция f(x) = exp(x) - 4
function df(x: real) := exp(x); // Производная f'(x) = exp(x)
function NewtonMethod(x, eps: real): real;
begin
while abs(f(x)) > eps do
x := x - f(x) / df(x);
Result := x;
end;
begin
var x := 0.5; // Начальное приближение
var eps := 0.00001; // Заданная точность
var root := NewtonMethod(x, eps);
Println('Корень уравнения: ', root);
end.