Метод равномерного поиска относится к самым простым подходам, которые используют для минимизации функции одной переменной в численных методах. Именно поэтому с него удобно начинать изучение прямых методов минимизации. В чём заключается его суть? Прежде всего в том, что отрезок поиска последовательно просматривается с помощью равноотстоящих точек, а затем определяется участок, в котором находится точка минимума.
Кроме того, этот подход является наглядным и удобным для практического рассмотрения. Для него не нужно находить производную функции, а это очень важно во многих прикладных задачах. Поэтому далее рассмотрим, какую именно задачу решает этот метод, при каких условиях его целесообразно использовать и как строится процедура поиска приближённого минимума.
Метод Равномерного Поиска: Постановка Задачи и Смысл Минимизации
Пусть требуется найти наименьшее значение функции одной переменной на заданном отрезке. Иначе говоря, рассматриваем функцию \( f(x) \) на интервале \( [a_0,b_0] \) и ищем такую точку \( x^* \), в которой функция принимает минимальное значение. Это записывают так:
\[
f(x^*)=\min_{x\in[a_0,b_0]} f(x).
\]
Что означает эта запись? Она означает, что среди всех точек отрезка \( [a_0,b_0] \) существует такая точка \( x^* \), в которой функция принимает наименьшее значение.
В задачах численной оптимизации очень часто предполагают, что функция является унимодальной на рассматриваемом интервале. Это важно, потому что тогда поиск минимума даёт надёжный результат. Напомним, что функция называется унимодальной на отрезке \( [a_0,b_0] \), если она имеет на этом отрезке только одну точку минимума \( x^* \), причём слева от неё функция строго убывает, а справа — строго возрастает.
Итак, если функция ведёт себя именно так, то можно уверенно сужать область поиска. Почему это настолько важно? Потому что численные методы не всегда находят точное значение \( x^* \) сразу. Чаще всего они строят приближённое решение, которое с каждым шагом становится точнее.
В рамках этой темы нас интересуют прямые методы минимизации. Это такие методы, которые используют только значения функции в определённых точках и не требуют вычисления производной. Такой подход особенно полезен тогда, когда:
- Производная функции неизвестна.
- Функция задана таблично.
- Аналитическое выражение слишком сложное.
- Вычисление производной неудобно или нецелесообразно.
Именно к таким методам и относится метод равномерного поиска. Он прост по своей структуре, легко объясняется и хорошо подходит для начального изучения численной минимизации.
Прямые Методы Минимизации: Почему Метод Равномерного Поиска Такой Простой
Теперь перейдём к самой идее метода. Она действительно очень проста. Начальный интервал неопределённости \( [a_0,b_0] \), на котором ищется минимум, делят на несколько равных частей. После этого в точках деления вычисляют значения функции и сравнивают их между собой.

Пусть интервал \( [a_0,b_0] \) разбит на \( n \) одинаковых частей. Тогда величина шага задаётся формулой
\[
h=\frac{b_0-a_0}{n}.
\]
После этого строят последовательность точек
\[
x_i=a_0+i\cdot h, \qquad i=0,1,2,\dots,n.
\]
Что происходит дальше? В каждой из этих точек вычисляют значение функции:
\[
f(x_0), f(x_1), f(x_2), \dots, f(x_n).
\]
Затем среди всех полученных значений находят наименьшее. Предположим, что оно достигается в точке \( x_k \). Тогда имеем
\[
f(x_k)=\min_{0\leq i\leq n} f(x_i).
\]
Именно этот результат даёт важную информацию для дальнейшего поиска. Если функция является унимодальной, то истинная точка минимума \( x^* \) должна находиться вблизи точки \( x_k \). Поэтому в рамках данного подхода делают вывод, что искомая точка минимума принадлежит интервалу
\[
x^* \in [x_{k-1},x_{k+1}].
\]
Иначе говоря, после одного прохода мы уже не ищем минимум на всём исходном отрезке. Вместо этого переходим к значительно более узкому интервалу, в котором находится точка минимума.
Здесь возникает естественный вопрос: почему этот метод называется равномерным? Потому что все точки проверки располагаются с одинаковым шагом. Следовательно, отрезок просматривается последовательно и равномерно, без сложных правил выбора новых точек.
Вместе с тем важно помнить и об одной существенной особенности. Если выбрать слишком маленький шаг, придётся выполнить много вычислений. Если же шаг окажется слишком большим, точность поиска будет недостаточной. Таким образом, эффективность метода напрямую связана с выбором числа делений \( n \).
Сужение Интервала: Как Формируется Приближённое Решение
Теперь рассмотрим, как именно формируется приближённое решение. После сравнения значений функции в точках \( x_0,x_1,\dots,x_n \) находят точку \( x_k \), в которой функция принимает наименьшее значение среди всех проверенных. Тогда эту точку можно взять как первое приближение к искомой точке минимума:
\[
x^* \approx x_k.
\]
Однако на этом процесс, как правило, не останавливается. Напротив, далее берут новый интервал неопределённости
\[
[a_1,b_1]=[x_{k-1},x_{k+1}],
\]
а затем повторяют ту же самую процедуру уже на этом более узком отрезке.
Итак, метод работает шаг за шагом:
\[
[a_0,b_0]\rightarrow [a_1,b_1]\rightarrow [a_2,b_2]\rightarrow \dots \rightarrow [a_m,b_m].
\]
На каждом новом шаге интервал становится короче, а приближение к точке минимума — точнее. В результате получают настолько малый интервал, что его длина удовлетворяет требуемой точности. Это записывают условием
\[
b_m-a_m<\varepsilon,
\]
где \( \varepsilon \) — заранее заданная точность.
Что это означает на практике? Это означает, что точка минимума уже локализована достаточно точно. Поэтому за приближённое решение можно принять либо точку с наименьшим найденным значением функции, либо середину последнего интервала. Например, часто используют одну из таких записей:
\[
x^* \approx x_k
\]
или
\[
x^* \approx \frac{a_m+b_m}{2}.
\]
Итак, метод равномерного поиска рассматривают как последовательную процедуру уточнения. Сначала грубо определяют область, в которой находится минимум. Затем эту область сужают. После этого те же действия повторяют до тех пор, пока не будет достигнута нужная точность.
Таким образом, основная логика метода такова: сначала выполняется равномерный просмотр отрезка, затем — выбор наиболее перспективного участка, а после этого — повторное уточнение на новом интервале. Именно такая схема делает метод простым для понимания и удобным для учебных примеров.
Практическая Часть: Как Метод Равномерного Поиска Работает на Конкретной Задаче
Теперь перейдём к практическому рассмотрению. Теоретическая схема уже понятна, но как она работает в реальных вычислениях? Именно на простом примере хорошо видно, как отрезок последовательно сужается, а приближённый минимум функции находится шаг за шагом.
Пример 1. Найти минимальное значение функции \( f(x)=(x-2)^2+1 \) на отрезке \( [1,4] \) с точностью \( \varepsilon=0.1 \), используя метод равномерного поиска
Рассмотрим функцию \( f(x)=(x-2)^2+1 \) на отрезке \( [1,4] \). На этом отрезке она является унимодальной, поскольку имеет только одну точку минимума при \( x=2 \). Следовательно, метод равномерного поиска здесь можно применять корректно.
![График функции f(x)=(x-2)^2+1 на промежутке [1,4]](https://www.mathros.net.ua/ru/wp-content/uploads/2026/03/xexhaustive-search-method2.jpg.pagespeed.ic.RzHsBM0jC9.jpg)
Начинаем с интервала
\[
[a_0,b_0]=[1,4].
\]
Для простоты на каждом шаге будем делить текущий интервал на четыре равные части. Тогда для первого шага имеем
\[
h_0=\frac{b_0-a_0}{4}=\frac{4-1}{4}=0.75.
\]
Строим точки деления:
\[
\begin{gathered}
x_0=1,\qquad x_1=1.75,\qquad x_2=2.5,\qquad x_3=3.25,\qquad x_4=4.
\end{gathered}
\]
Вычисляем значения функции в этих точках:
\[
\begin{gathered}
f(x_0)=(1-2)^2+1=2,
\\[6pt]
f(x_1)=(1.75-2)^2+1=1.063,
\\[6pt]
f(x_2)=(2.5-2)^2+1=1.25,
\\[6pt]
f(x_3)=(3.25-2)^2+1=2.563,
\\[6pt]
f(x_4)=(4-2)^2+1=5.
\end{gathered}
\]
Наименьшее значение получено в точке \( x_1=1.75 \). Следовательно, новый интервал неопределённости берём в виде
\[
[a_1,b_1]=[x_0,x_2]=[1,2.5].
\]
Теперь повторяем ту же процедуру для нового интервала. Его длина равна \( 2.5-1=1.5 \), поэтому шаг будет
\[
h_1=\frac{b_1-a_1}{4}=\frac{2.5-1}{4}=0.375.
\]
Строим точки:
\[
\begin{gathered}
x_0=1,\qquad x_1=1.375,\qquad x_2=1.75,\qquad x_3=2.125,\qquad x_4=2.5.
\end{gathered}
\]
Вычисляем значения функции:
\[
\begin{gathered}
f(x_0)=(1-2)^2+1=2,
\\[6pt]
f(x_1)=(1.375-2)^2+1=1.391,
\\[6pt]
f(x_2)=(1.75-2)^2+1=1.063,
\\[6pt]
f(x_3)=(2.125-2)^2+1=1.016,
\\[6pt]
f(x_4)=(2.5-2)^2+1=1.25.
\end{gathered}
\]
Теперь наименьшее значение достигается в точке \( x_3=2.125 \). Поэтому сужаем интервал:
\[
[a_2,b_2]=[x_2,x_4]=[1.75,2.5].
\]
Далее
\[
h_2=\frac{b_2-a_2}{4}=\frac{2.5-1.75}{4}=0.188.
\]
Следовательно, точки деления имеют вид
\[
\begin{gathered}
x_0=1.75,\qquad x_1=1.938,\qquad x_2=2.125,\qquad x_3=2.313,\qquad x_4=2.5.
\end{gathered}
\]
Вычисляем значения функции:
\[
\begin{gathered}
f(x_0)=(1.75-2)^2+1=1.063,
\\[6pt]
f(x_1)=(1.938-2)^2+1=1.004,
\\[6pt]
f(x_2)=(2.125-2)^2+1=1.016,
\\[6pt]
f(x_3)=(2.313-2)^2+1=1.098,
\\[6pt]
f(x_4)=(2.5-2)^2+1=1.25.
\end{gathered}
\]
Наименьшее значение среди найденных теперь достигается в точке \( x_1=1.938 \). Поэтому берём новый интервал
\[
[a_3,b_3]=[x_0,x_2]=[1.75,2.125].
\]
Теперь его длина равна \( 2.125-1.75=0.375 \), а шаг составляет
\[
h_3=\frac{b_3-a_3}{4}=\frac{0.375}{4}=0.094.
\]
Строим точки:
\[
\begin{gathered}
x_0=1.75,\qquad x_1=1.844,\qquad x_2=1.938,\qquad x_3=2.031,\qquad x_4=2.125.
\end{gathered}
\]
Значения функции равны:
\[
\begin{gathered}
f(x_0)=(1.75-2)^2+1=1.063,
\\[6pt]
f(x_1)=(1.844-2)^2+1=1.024,
\\[6pt]
f(x_2)=(1.938-2)^2+1=1.004,
\\[6pt]
f(x_3)=(2.031-2)^2+1=1.001,
\\[6pt]
f(x_4)=(2.125-2)^2+1=1.016.
\end{gathered}
\]
И здесь наименьшее значение достигается в точке \( x_3=2.031 \). Тогда новый интервал будет таким:
\[
[a_4,b_4]=[x_2,x_4]=[1.938,2.125].
\]
Его длина равна \( b_4-a_4=2.125-1.938=0.187 \). Поскольку это значение ещё не меньше заданной точности \( \varepsilon=0.1 \), выполняем ещё один шаг. Имеем
\[
h_4=\frac{b_4-a_4}{4}=\frac{0.187}{4}=0.047.
\]
Строим точки:
\[
\begin{gathered}
x_0=1.938,\qquad x_1=1.985,\qquad x_2=2.032,\qquad x_3=2.079,\qquad x_4=2.125.
\end{gathered}
\]
Теперь вычисляем значения функции:
\[
\begin{gathered}
f(x_0)=(1.938-2)^2+1=1.004,
\\[6pt]
f(x_1)=(1.985-2)^2+1=1,
\\[6pt]
f(x_2)=(2.032-2)^2+1=1.001,
\\[6pt]
f(x_3)=(2.079-2)^2+1=1.006,
\\[6pt]
f(x_4)=(2.125-2)^2+1=1.016.
\end{gathered}
\]
Наименьшее значение теперь получаем в точке \( x_1=1.985 \). Поэтому новый интервал неопределённости имеет вид
\[
[a_5,b_5]=[x_0,x_2]=[1.938,2.032].
\]
Теперь проверяем точность: \( b_5-a_5=2.032-1.938=0.094<0.1 \). Следовательно, условие точности выполнено. За приближённое значение точки минимума можно принять точку
\[
x^*\approx 1.985,
\]
а соответствующее минимальное значение функции равно
\[
f_{\min}\approx f(1.985)=1.
\]
Этот результат согласуется с точным ответом, поскольку для функции \( f(x)=(x-2)^2+1 \) минимум действительно достигается при \( x=2 \), а наименьшее значение равно \( 1 \). Следовательно, метод равномерного поиска дал результат, близкий к точному, и наглядно показал, как с помощью последовательного сужения интервала можно приблизиться к точке минимума.
Дополнительные Темы: Что Стоит Рассмотреть Дальше
Теперь, когда основная схема метода равномерного поиска уже стала понятнее, логично перейти и к другим способам минимизации. Что стоит прочитать после этой темы? Ниже собраны несколько направлений, которые хорошо продолжают знакомство с численными методами.
- Метод дихотомии: Как последовательно сужается интервал — В этой статье пойдёт речь о поиске минимума через поэтапное сокращение отрезка и сравнение значений функции в близких точках.
- Метод Ньютона: Как использовать кривизну функции — В этой статье будет показано, как находят минимум с помощью производных и от чего зависит скорость сходимости.
- Покоординатный спуск: Как искать минимум в нескольких направлениях — В этой статье будет рассматриваться поиск минимума функции многих переменных через последовательный просмотр отдельных координат.
Метод Равномерного Поиска в Коде: Создайте Собственную Программу для Поиска Минимума
Теперь посмотрите на блок-схему ниже не только как на иллюстрацию, но и как на готовую основу для небольшого учебного проекта. Почему бы не использовать её и не написать на любимом языке программирования небольшой код, который определяет минимальное значение унимодальной функции методом равномерного поиска? Такая работа хорошо показывает, как математическая идея превращается в понятный алгоритм, а затем — в программный код, который можно проверять на разных примерах. Кроме того, это хорошая возможность убедиться, что вы действительно хорошо понимаете метод не только теоретически, но и в процессе практического программирования.
