Задача №4. Поиск минимального значения функции

Задача

Найти минимальное значение функции F(x)=f(x)+exp(-x*x), где f(x) задана дифференциальным уравнением
Дифф. уравнение и начальное условие

Первый взгяд

Нам надо найти минимальное значение функции, в задании ничего не сказано про отрезок, на котором нужно искать. На ум приходит найти точку минимума, если она есть. Это и будет минимальное значение функции.

Поиск экстремума

Рассмотрим функцию аналитически: найдем производную и приравняем ее нулю. Тем самым, найдем точки экстремума. Так как одна часть функции уже задана дифф уравнением, найдем производную от второй части — экспоненты и приравняем все нулю, затем найдем корни уравнения:

Поиск корней производной функции

Чтобы определить, возрастает или убывает функция на интервале, необходимо в производную подставить любое число из этого интервала. Получаем следующее

Проверка интервалов производной

Если знак производной меняет свой знак с «+» на «-«, значит, точка максимума. Дела… Получается, что если Х<0.39 — функция возрастает и минимальное значение будет при Х=0, и если Х>0.39 — то ближе к правой границе отрезка, на котором мы рассматриваем функцию.

Алгоритм

Для поиска минимального значения будем использовать самый простой метод — дробление шага. Сложность данной задачи состоит в том, что конечной функции, для которой можно искать мин. значение, у нас нет. У нас есть часть конечной функции, заданная как дифф. уравнение, поэтому мы должны для каждого X решить дифф. уравнение, и для этого X найти значение конечной функции, потом сравнить с предыдущим рассчитанным значением и выполнить либо дробление шага, либо шаг.

Для решения дифф. уравнения будем использовать метод Рунге-Кутта 4 порядка. Почитать про метод тут. Так как решение дифф. уравнения зависит от начального условия, поэтому каждый раз решение дифф. уравнения для каждого X будем считать заново, с начального условия f(0)=0.

Программа

Программа решения дифф. уравнения методом Рунге-Кутты 4 порядка

Для правильного решения дифф. уравнения нужно учитывать начальное условие, поэтому каждый новое значение x считаем заново с начального условия

После всех этих функций мы имеем решение дифф. уравнения в точку Х, найдем значение конечной функции F с помощью функции

Основная программа, которая реализует метод дробления шага

Скриншоты

При X<0.39

Скриншот работы программы 1

При X>0.39

Скриншот работы программы 2

Литература

  1. Примеры исследования функций (Ссылка)
  2. О алгоритмах поиска точки экстремума (Ссылка)

Скачать

poisk.zip

Оцените статью
В коробке инженера
Добавить комментарий

Нажимая на кнопку "Добавить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности