Добавил:
КТ(ЭН) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

first lab / division (1)

.m
Скачиваний:
0
Добавлен:
06.06.2025
Размер:
1.53 Кб
Скачать
function [a, b, x0] = divison(a, b, func, n)
% Проверка значений функции на границах интервала
f_a = func(a);
f_b = func(b);

% Убедимся, что функция имеет разные знаки на концах интервала
if f_a * f_b > 0
error('Функция должна иметь разные знаки на концах интервала.');
end

for i = 1:n
x0 = (a + b) / 2; % Находим середину отрезка
f_x0 = func(x0); % Вычисляем значение функции в x0

% Проверяем, какой отрезок сужать
if f_x0 * f_a < 0
b = x0; % Сужаем отрезок
f_b = f_x0; % Обновляем значение функции в b
else
a = x0; % Сужаем отрезок
f_a = f_x0; % Обновляем значение функции в a
end

% Проверка на точность
if abs(b - a) < 1e-6
fprintf('Корень найден: x0 = %.6f\n', x0);
return; % Завершение функции
end
end
error_bisection =abs(func(a))
disp(['Невязка метода деления отрезков = ', num2str(error_bisection)])

fprintf('Приблизительное значение корня: x0 = %.6f\n', x0);
end




Соседние файлы в папке first lab