Поиск корня#
Одной из распространённых категорий оптимизационных задач, решаемых в инженерной практике, является обратная задача, заключающаяся в определении значения \(x\), при котором выполняется равенство (1).
Каноническая форма равенства (1), известная из школьного курса математики для решения задачи поиска нулей функции, имеет вид \(f(x) = 0\).
Подсказка
Следует напомнить о прямой задаче, заключающейся в вычислении значения \(y = f(x)\) при известном параметре \(x\).
В рамках данного урока будет рассмотрена типовая постановка задачи поиска корня целевой функции, в процессе выполнения которого вы познакомитесь:
С примерами обратных задач в инженерных расчётах;
С простой постановкой задачи поиска корня для получения навыков решения обратных задач с помощью оптимизатора платформы REPEAT VISION.
1. Постановка задачи поиска корня целевой функции#
Задача поиска корня формулируется следующим образом:
В задаче поиска корня (2) используются следующие обозначения:
\(f\) - целевая функция, у которой нужно найти корень \(x\) при \(f(x) = 0\);
\(g\) - функция, у которой нужно найти \(x\) при \(g(x) = \text{const}\);
\(\text{const}\) - известное значение функции \(g\);
\(x\) - параметр целевой функции (или расчётная точка),
\(\chi\) - множество допустимых значений параметра функции.
Значение \(x\), которое принадлежит \(\chi\) и при котором целевая функция \(f(x) = 0\), является корнем уравнения (2), обозначаемым \(x^{*}\).
В задаче поиска корня (2) параметр \(x\) может быть как скаляром, представленным в виде вещественного числа (double в Java), так и вектором, представленным в виде набора \(n\) вещественных чисел (3).
2. Примеры обратных задач#
Техническое задание (ТЗ) на проектирование новой системы может включать задачу определения заранее неизвестных значений параметров системы на предмет соответствия требуемым технологическим характеристикам системы. Например, определить диаметр дроссельной шайбы - \(x [мм]\) в (1) - для обеспечения требуемого расхода воды - \(\text{const} [кг/с]\) в (1) - в трубопроводной системе. Такое требование ТЗ определяет постановку обратной задачи и необходимость поиска корня \(x\) для решения задачи.
К поиску корня относятся примеры обратных задач, перечисленных в таблице ниже.
Задача |
Области моделирования |
|---|---|
Определение требуемого расхода жидкости в трубопроводной системе |
|
Выбор насоса для трубопроводной системы |
|
Определение номинала токоограничивающего резистора светодиода |
Обратные задачи из таблицы выше часто не имеют точного аналитического решения.
Ранее обратные задачи решались с помощью проведения расчётного эксперимента над моделью системы. Расчётный эксперимент - процесс многократного выполнения моделирования системы для решения прямой задачи. В начале каждой итерации расчётного эксперимента изменяются входные параметры \(x\) модели, а в завершении моделирования собираются результаты \(f(x)\) расчёта. Цикл экспериментов завершается при выполнении равенства (1) с заданной погрешностью. Такой подход обладает рядом недостатков для решения обратной задачи:
Инженер в ручном режиме изменяет входные параметры \(x\), запускает модель на расчёт, выполняет анализ результатов и проверяет равенство (1);
Затрачивается много рабочего времени на поиск решения \(x^{*}\) задачи;
Инженер эмпирически регулирует шаг изменения параметров \(x\), часто не обеспечивая точного решения \(x^{*}\) задачи;
Для устранения приведённых выше недостатков необходимо использовать современные методики решения обратных задач, которыми обладает оптимизатор платформы REPEAT VISION.
В рамках следующего раздела будет рассмотрена типовая постановка задачи поиска корня целевой функции.
3. Пример обратной задачи#
В данном разделе рассматривается функция вида \(g(x) = \sqrt[2]{x}\) при \(x \in [0; 400]\). Необходимо найти \(x\) функции \(g\), при котором \(g(x) = 15\). Такая простая постановка обратной задачи позволит сосредоточиться на получении навыков работы с оптимизатором платформы REPEAT VISION.
Функция, корень которой необходимо найти#
На графике выше приняты следующие обозначения.
Линии |
Описание |
|---|---|
Синяя линия |
Функция \(g(x) = \sqrt[2]{x}\), \(x \in [0; 400]\) |
Оранжевая линия |
Вспомогательная функция \(y = 15\) для обозначения, где необходимо найти \(x\) на пересечении с \(g(x)\) |
3.1. Аналитическое решение#
Для задачи \(\sqrt[2]{x} = 15\) известно точное аналитическое решение, \(x^{*}= 225\).
3.2. Создание модели в REPEAT VISION#
Для создания модели для поиска корня целевой функции на платформе REPEAT VISION требуется преобразовать обратную задачу к виду (2). Таким образом исходная задача поиска \(x\) примет вид \(f(x) = \sqrt[2]{x} - 15\). Оптимизатор будет выполнять поиск корня целевой функции, проверяя равенство \(f(x) = 0\).
Для подготовки модели необходимо добавить в новый проект с именем, например, Квадратный корень, 4 блока библиотеки Автоматика.
Модель поиска корня целевой функции в REPEAT VISION#
Сначала в проект добавляется блок №1 Константа со свойством Значение константы, равным 0. Данный блок будет использоваться в качестве параметра \(x\) (см. уравнение (2)) целевой функции \(f(x)\).
Затем добавляется блок №2 Возведение в постоянную степень, со свойством Показатель степени, равным 0.5. Данный блок будет использоваться для извлечения квадратного корня, \(\sqrt[2]{x}\).
Далее в проект добавляется блок №3 Сравнивающее устройство. Данный блок служит для вычисления целевой функции \(\sqrt[2]{x} - 15\) вместе с блоком №4. В соответствии с постановкой задачи поиска корня (2) данный блок будет использоваться оптимизатором для проверки равенства \(f(x) = 0\).
В завершении подготовки модели необходимо добавить блок №4 Константа со свойством Значение константы, равным 15 в соответствии с постановкой задачи.
Важно
В каждой задаче поиска корня \(x\) целевой функции \(f(x) = g(x) - \text{const} = 0\) необходима пара блоков, выполняющих данную операцию:
Константа для фиксации значения \(\text{const}\), которую функция \(g(x)\) должна принять;
Сравнивающее устройство для выполнения операции вычитания \(g(x) - \text{const}\) с целью проверки оптимизатором равенства \(f(x) = 0\) при поиске корня целевой функции.
Для данной стационарной постановки задачи достаточно будет использовать следующие настройки проекта:
Время моделирования \([с]\) |
Шаг интегрирования \([мс]\) |
Шаг дискретизации \([мc]\) |
|---|---|---|
0.1 |
50 |
50 |
В следующем разделе выполняется настройка оптимизатора для получения решения задачи поиска корня.
3.3. Настройка оптимизатора#
Для настройки оптимизатора необходимо нажать на иконку Оптимизация на нижней панели.
Расположение иконки Оптимизация на нижней панели интерфейса REPEAT VISION#
В открывшейся вкладке необходимо применить настройки для решения задачи поиска корня.
Основное#
В разделе Основное необходимо применить следующие настройки.
Оптимизационная задача |
Бюджет оптимизации |
Обработка нефизичных величин |
|---|---|---|
Поиск корня |
25 |
Завершить оптимизацию с ошибкой в журнале |
Бюджет оптимизации - это количество доступных обращений оптимизатора к расчётной модели вычисления целевой функции. Каждый раз, когда алгоритм передаёт целевой функции очередное значение параметра \(x\) и получает в ответ новое значение целевой функции \(f(x)\), то бюджет уменьшается на 1. Когда бюджет исчерпан, поиск корня принудительно останавливается.
Подсказка
Для простых, гладких, непрерывных целевых функций, схожих с квадратичными функциями, достаточно небольшого бюджета (\(10 \leq budget \leq 100\)) для решения задачи поиска корня.
В настройке Обработка нефизичных величин необходимо выбрать Завершить оптимизацию с ошибкой в журнале поскольку в простой модели не будет проблем с вычислением целевой функции, которые могли бы приводить к возникновению ошибок при моделировании. Поэтому нет необходимости в дополнительной обработке результатов вычислений с проверкой на физичность результатов расчёта целевой функции.
Алгоритм оптимизации#
В разделе Алгоритм оптимизации необходимо применить следующие настройки.
Метод поиска корня |
Абсолютное отклонение варьируемого параметра |
|---|---|
Метод Брента |
1e-15 |
В настройке Метод оптимизационной задачи необходимо выбрать Метод Брента для поиска корня методом Брента, гарантирующего сходимость решения задачи для целевой функции, вычислимой в заданных границах.
Настройке Абсолютное отклонение варьируемого параметра необходимо присвоить значение 1e-15 для фиксации критерия сходимости решения оптимизационной задачи по параметру \(x\).
Примечание
Необходимо отметить, что малое значение 1e-15, близкое к точности вещественного значения типа double в Java, пригодно для Метода Брента и гладких, непрерывных целевых функций.
Настройки параметров#
В настройке Блок вычисления целевой функции, расположенного в разделе Оптимизируемые параметры, необходимо выбрать порт Выход блока №3 Сравнивающее устройство, который выполняет завершающую операцию вычисления целевой функции \(f(x)\).
В настройке Варьируемое свойство блока, расположенного в разделе Варьируемые свойства, необходимо выбрать свойство Значение константы блока №1 Константа. Значение константы блока будет использовано оптимизатором в качестве изменяемого параметра \(x\) для поиска корня целевой функции \(f(x)\) (см. уравнение (2)).
Также необходимо указать границы, в которых выполняется поиск корня. В текущем примере границы целевой функции приняты \(x \in [0; 400]\). Таким образом в поле Минимальное значение необходимо ввести 0, а в поле Максимальное значение необходимо ввести 400.
4. Запуск оптимизации#
После завершения настройки оптимизатора необходимо запустить оптимизацию. Для запуска оптимизации необходимо нажать на кнопку Оптимизировать.
Кнопка Оптимизировать для запуска оптимизации#
После нажатия кнопки появятся уведомления о запуске оптимизации и об успешном завершении оптимизации.
Уведомления этапов процесса поиска корня#
После успешного завершения поиска корня необходимо выполнить анализ полученного решения.
4.1. Анализ результатов оптимизации#
Результаты оптимизации доступны в соответствующем разделе для выполнения анализа после успешного завершения поиска корня.
Результаты поиска корня#
Оптимизатор определил корень целевой функции \(f(x)\) при значении параметра \(x\), равным 225, что соответствует точному аналитическому решению.
Далее необходимо нажать на кнопку Применить все для передачи корня целевой функции \(x^{*} = 225\) свойству Значение константы блока №1 Константа. После нажатия кнопки появится уведомление об успешном применении оптимальных свойств.
Применение к модели оптимальных свойств#
В завершении анализа необходимо выполнить запуск на расчёт модели со значением корня \(x^{*} = 225\) и получить результат расчёта на порте Выход блока №3 Сравнивающее устройство, который выполняет завершающую операцию вычисления целевой функции \(f(x)\).
Значение целевой функции при x = 225.#
В результате расчёта получено:
Значение целевой функции \(f(x^{*}) = 0\) на порте
Выходблока №3,Значение функции \(g(x^{*}) = 15\) на порте
Вход 1блока №3
при значении параметра \(x^{*} = 225\), что соответствует точному аналитическому решению.
5. Выводы#
В результате выполнения ознакомительного урока по решению задачи поиска корня, вы узнали:
О понятии обратной задачи и её месте в оптимизации;
О способе преобразования обратной задачи к задаче поиска корня;
О целевой функции для решения задач поиска корня;
На простом примере освоили оптимизатор платформы REPEAT VISION для решения задач поиска корня.