Программа поиска максимума функции

Пусть дан массив A длины N, и дано число K ≤ N. Требуется найти максимум (минимум, сумма . ) в подотрезках длины K данного массива. Это частный случай задачи RMQ (Range Minimum Query — минимум на отрезке), но с дополнительными ограничениями — постоянная длина отрезка поиска. В данном решении задача не предполагает возможность изменения элементов массива. Для определенности будем рассматривать нахождение максимума.

Преимущества и недостатки

Алгоритм нахождения максимума функции

Простейшая задача нахождения максимума функции решается по следующему алгоритму:

  1. Задаются границы a и b, в пределах которых имеется максимум функции.
  2. Интервал [a,b] разбивается на определенное количество шагов.
  3. Функция табулируется в пределах заданного интервала, и каждое вычисленное значение функции сравнивается с максимальным (заданным до начала табулирования).
  4. Находится максимальное значение функции на заданном интервале с определенным шагом и выводится на печать.

Блок-схема алгоритма имеет вид:

Индуктивные функции на Си: поиск максимума

Рис. 4. Блок – схема алгоритма нахождения максимума функции Естественно, что с уменьшением шага изменения аргумента точность вычисления максимума увеличивается.

Можно воспользоваться и следующим алгоритмом:

  1. Найти значение максимума по алгоритму, представленному выше.
  2. Для дальнейшего рассмотрения выбрать отрезок [xmax-dx, xmax+dx] и выполнить вычисление максимума с шагом, например, dx/10.
  3. Сравнить два найденных значения.
Читайте также:
Рабочая программа по информатике подготовка к егэ

Блок – схема решения задачи имеет вид:

Рис. 5. Блок – схема алгоритма нахождения максимума функции

Методы оптимизации функций одной переменной Метод равномерного поиска

Этот метод основан на том, что переменной x присваиваются значения x+∆x с шагом ∆x = const и вычисляются значения F(x). Если F(x n+1)>F(xn), переменной x даётся новое приращение. Как только F(xn+1)станет меньше F(x) поиск останавливается. При малой заданной погрешности этот метод неэкономичен по затратам машинного времени.

Метод поразрядного приближения

  1. Задаём начальное приближение x=x₀ слева от максимума F(x) и вычисляем F(x₀). Задаём D=h, где h=∆x – начальный шаг поиска.
  2. Полагаем, что G=F(xn), где вначале F(xn)=F(x₀), задаём x=x+D и вычисляем F(x n+1)=F(x).
  3. Проверяем условие F(x n₊₁)>G; если оно выполняется, идём к п.2, если нет, то к п.4.
  4. Полагаем D=-D/4. Проверяем условие |D|>E/4, где E – заданная погрешность вычисления xn в точке максимума. Если оно выполняется, идём к п.2, т.е. обеспечиваем поиск максимума в другом направлении с шагом в 4 раза меньше прежнего. Если данное условие выполняется, процесс вычисления заканчиваем.

Метод дихотомии

  1. Проверяем условие |b-a|n. Если это условие выполняется, идём к п.6; если не выполняется, идём к п.2.
  2. Делим интервал поиска [a, b] пополам и вычисляем две абсциссы, симметрично расположенные относительно точки
  1. Для этих значений x вычисляем F(x₁)>F(x₂).
  2. Проверяем условие F(x₁)>F(x₂). Если оно выполняется, полагаем b=x₂ и идём к п.1. Если не выполняется, идём к п.5.
  3. Полагаем a=x₁ и идём к п.1.
  4. Выводим на печать xn=(a+b)/2 и вычисляем F(xn).

Источник: studfile.net

АЛГЕБРА С НУЛЯ — Точки Экстремума Функции

Программа поиска максимума функции

Комментарии

Популярные По порядку
Не удалось загрузить комментарии.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

13 ресурсов, чтобы выучить математику

Среди разработчиков часто возникают споры о том, необходимо ли изучать математику. Если вас мучает ее незнание, то скорее читайте нашу статью.

Читайте также:
Программа как это работает

Какие алгоритмы нужно знать, чтобы стать хорошим программистом?

Данная статья содержит не только самые распространенные алгоритмы и структуры данных, но и более сложные вещи, о которых вы могли не знать. Читаем и узнаем!

Изучаем алгоритмы: полезные книги, веб-сайты, онлайн-курсы и видеоматериалы

В этой подборке представлен список книг, веб-сайтов и онлайн-курсов, дающих понимание как простых, так и продвинутых алгоритмов.

Источник: proglib.io

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru