Решение задач на компьютере
4. Решение уравнений. Метод перебора. Метод деления отрезка пополам
Теория
Метод перебора является простейшим прямым методом. Опишем его суть на примере поиска минимума на заданном отрезке значений функции \(F(x)\). Отрезок [\(a\); \(b\)], на котором предполагается искомое значение, разбивается на \(n\) равных отрезков точками деления:
 
xi=a+i⋅b−an,i=0...n.
 
Вычисляем значения F(xi) и путём сравнения находим точку xm, такую, что F(xm)=min(F(xi)) для всех \(i = 0...n\).
Погрешность в этом случае не превосходит величины ϵ=b−an.
Метод перебора применяется редко для решения реальных задач, так как требует большого объёма вычислений.
 
Метод деления отрезка пополам — итерационный метод. Он опирается на свойство непрерывных функций, заключающееся в том, что если функция на концах выбранного отрезка принимает разные по знаку значения, то внутри этого отрезка находится хотя бы один корень.
Нахождение таких отрезков — задача отделения корней.
Отделить корень — значит указать такой отрезок [a1;b1], на котором содержится ровно один корень уравнения \(F(x) = 0\).
Найти отрезок [a1;b1] можно, построив, например, график функции или составив таблицу значений функции от разных значений аргументов. Выполнить это можно вручную, в электронных таблицах.
 
Пример \(5\)

Отдели корень уравнения y=x3+2⋅x+2 на участке [\(-2\); \(2\)] при шаге \(h = 1\).
 
Решение

Составим таблицу значений функции на отрезке [\(-2\); \(2\)] при шаге \(h = 1\).
 
\(x\)
\(y\)
\(-2\)
\(-10\)
\(-1\)
\(-1\)
\(0\)
\(2\)
\(1\)
\(5\)
\(2\)
\(14\)
 
Из анализа таблицы видно, что на концах отрезка [\(-1\); \(0\)] функция принимает разные по знаку значения. Это и есть искомый отрезок.
 
Пусть из предварительного анализа известно, что корень уравнения \(F(x) = 0\) находится на отрезке [xleft;xright]. Разделим этот отрезок точкой xmiddle пополам и вычислим значения F(xleft ) и F(xmiddle), а также их произведение. Рассмотрим варианты, которые могут получиться.
 
F(xleft)⋅F(xmiddle)<0
Скриншот 06-05-2022 020339.jpg
Рис. \(1\). Вариант № \(1\)
xright=xmiddle
F(xleft)⋅F(xmiddle)>0
Скриншот 06-05-2022 020445.jpg
Рис. \(2\). Вариант № \(2\)
xleft=xmiddle
 
Далее действия повторяются до тех пор, пока не выполнится неравенство xright−xleft<2ϵ, где ϵ — принятая погрешность.
 
Пример \(6\)
 
Найди решение уравнения y=x3−8⋅x+1 на участке [\(-5\); \(0\)].

План решения
 
Составим программу на языке Pascal, реализуя метод деления отрезка пополам. Проверим полученный результат в электронных таблицах, используя встроенный инструмент «Сервис-Решатель» (LibreOffice Calc).
 
ghjuh.jpg
Рис. \(3\). Реализация метода деления отрезка пополам на языке Pascal
 
Проверка в электронных таблицах:
 
ролрп.png
Рис. \(4\). Решение в электронных таблицах
 
Пример \(7\)

Найди решение уравнения y=x3−8⋅x+1 на участке [\(-5\); \(0\)].
  
План решения
 
Составим программу на языке Pascal, реализуя метод перебора. Проверим полученный результат в электронных таблицах, используя встроенный инструмент «Поиск решения».
 
лолдолд.jpg
Рис. \(5\). Реализация метода перебора на языке Pascal
  
Проверку в электронных таблицах можно посмотреть в предыдущем примере.
 
При выборе для решения приближённых методов следует учитывать их недостатки:
• не дают точных решений;
• решение — всегда число, а зависимость получить нельзя;
• объём вычислений может быть очень большим;
• не всегда удаётся получить оценку погрешности.
 
И применять, учитывая достоинства:
• при невозможности или затруднительном получении аналитического решения дают быстрый результат;
• некоторые из численных методов в применении к определённым задачам дают более точное решение, чем аналитические.
Источники:
Рис. 1. Вариант № 1. © ЯКласс.
Рис. 2. Вариант № 2. © ЯКласс.
Рис. 3. Реализация метода деления отрезка пополам на языке Pascal. © ЯКласс.
Рис. 4. Решение в электронных таблицах. © ЯКласс.
Рис. 5. Реализация метода перебора на языке Pascal. © ЯКласс.