Как найти максимум функции на интервале в excel
Электронные таблицы Excel фирмы Microsoft имеют встроенные средства решения задач поиска экстремума, оформленные в виде так называемой надстройки. Перед началом работы надо убедиться в том, что в составе сгенерированного на вашей ЭВМ пакета Excel требуемая надстройка установлена. Для этого выберите режим Сервис главного меню и проверьте, есть ли в открывшемся ниспадающем меню пункт Поиск решения (рис. 5). Если строка меню Поиск решения отсутствует, то выберите пункт меню Сервис / Надстройки и в открывшейся форме включите режим Поиск решения (рис. 6). Если и в этом окне пункт Поиск решения отсутствует, то это означает, что на вашей машине установлена сокращенная версия электронных таблиц и требуется переустановка пакета Excel.
Надстройка Поиск решения (рис. 7) позволяет, задавая некоторую ячейку в виде целевой (Установить целевую ячейку), при условии обеспечения зависимости результата вычислений в ней от значений некоторых изменяемых ячеек (Изменяя ячейки) с учетом заданных ограничений (Ограничения) получить набор переменных в изменяемых ячейках, обеспечивающий или максимальное, или минимальное, или заданное значение целевой ячейки.
В качестве параметров режима (рис. 8) задаются методы поиска экстремума. Так, при установке флажка Линейная модель надстройка ищет экстремум симплекс-методом. Флажок Неотрицательные значения накладывает дополнительное ограничение на значения переменных задачи. Его установка эквивалентна введению ограничения .
Примечание. Если флажок Линейная модель выключен, решение задачи ведется методом Ньютона или градиентным с использованием прямых или центральных конечных разностей на основе линейной или квадратичной оценки уменьшения приращения экстремума в зависимости от установленных флажков. Эти методы позволяют, в частности, решать нелинейные и целочисленные задачи поиска экстремумов.
Рис. 5. Пункт меню Поиск решения
Рис. 6. Включение надстройки Поиск решения
Режим Автоматическое масштабирование позволяет перейти к отображению данных в относительных единицах, а при установке флажка Показывать результаты итераций включается пошаговый режим. Также к числу параметров относится ограничение по времени процесса поиска решения в секундах (Максимальное время) (максимально 32767) и количеству итераций (Предельное число итераций). Вариант настройки параметров режима Поиск решения может быть сохранен.
Примечание. Точность соответствия результата заданному значению (Относительная погрешность), допустимого отклонения экстремума от оптимального значения при использовании режима целочисленной математики (Допустимое отклонение), а также условие прекращения поиска экстремума (Сходимость), задающее величину относительного приращения экстремума за последние пять итераций относятся к параметрам, используемым при решении задачи методом Ньютона или градиентным.
Рис. 7. Главная форма надстройки Поиск решения
Рассмотрим задачу линейного программирования (1,2), записанную в виде целевой (критериальной) функции и набора ограничений, с конкретными числовыми данными, полученными с помощью датчика случайных чисел.
На рис. 9 изображен рабочий лист Excel с данными задачи (4). Для всех ячеек, предназначенных для хранения данных, был задан числовой формат с двумя знаками после запятой режимом Формат/Ячейки…/Число. Матрица размещена в диапазоне ячеек B8:E16. Значения ограничений находятся в диапазоне ячеек G8:G16. Весовые коэффициенты целевой функции занесены в диапазон ячеек B5:E5. Кроме этого, для хранения переменных зарезервирован диапазон ячеек B3:E3. Значения предварительно были обнулены, однако это не является обязательным, поскольку система может начать поиск экстремума с любой начальной комбинации. Очевидно, что в данном случае , .
Рис. 8. Параметры надстройки Поиск решения
Выражение (3) представляет собой ничто иное, как сумму попарных произведений некоторых наборов чисел, которые должны быть заданы в табличной форме или рассчитаны средствами пакета Excel. Рассчитаем значение целевой функции в ячейке F5. Ее программирование сводится к заданию выражения типа (3), которое можно рассчитать непосредственно на основе формулы Excel =B3*B5+C3*C5+D3*D5+E3*E5. Тем не менее, по ряду причин, более удобно воспользоваться встроенной функцией СУММПРОИЗВ(B5:E5;$B$3:$E$3), которая автоматически определяет количество слагаемых и дает результат вычислений в соответствии с (3). Использование абсолютного формата записи диапазона ячеек, используемого для хранения , не является обязательным, однако удобно для последующих действий, которые могут выполняться способом копирования.
Выражения, определяющие расход ресурсов программируются в ячейки F8, F9,…, F16 аналогично предыдущему с той только разницей, что в качестве первого аргумента функции СУММПРОИЗВ() выступает соответствующая строка матрицы , а второй аргумент по-прежнему есть диапазон ячеек B3:E3, заданный в абсолютом формате и используемый для хранения переменных .
Примечание. Остальная информация, нанесенная на рабочий лист (рис. 9), используется для пояснения принципа размещения данных. Она представляет собой либо текстовые строки, записанные в определенные ячейки, либо внедренные объекты и носит вспомогательный характер. Поэтому при повторении примера на ЭВМ она может быть опущена.
Рис. 9. Вариант размещения данных на рабочем листе
Выполненные ранее в операции (заполнение таблиц данными и программирование формул) позволяют полностью подготовиться собственно к решению задачи оптимизации. Теперь нам необходимо вызвать режим Сервис/Поиск решения. В открывшейся главной форме меню режима Поиск решения (рис. 7) надо указать адрес нашей целевой ячейки F5 и проверить или задать тип экстремума (в нашем случае Установить целевую ячейку равной максимальному значению). В окне Изменяя ячейки задаем адреса ячеек переменных (в нашем случае B3:F3). Нажав кнопку Добавить в открывшейся таблице (рис. 10) Добавление ограничения в поле Ссылка на ячейку вводим адреса левых частей неравенств (2) (в нашем случае F8:F16). Устанавливаем (сохраняем) требуемые знаки неравенств (в нашем случае ). Войдя в окно Ограничение, задаем адреса ячеек, содержащих значения (в нашем случае G8:G16). Нажав кнопку Параметры, в открывшейся таблице (рис. 8) задаем режим Линейная модель и Неотрицательные значения, после чего нажимаем кнопку OK. Результат этих действий отображен на рис11.
Решение найдено. Все ограничения и условия оптимальности выполнены (имеет место в рассматриваемом случае).
Поиск не может найти подходящего решения.
Значения целевой ячейки не сходятся.
Если решение найдено, то на рабочем листе Excel в изменяемых ячейках находятся значения переменных (в нашем случае 1,13; 0,00; 0,00; 3,10), обеспечивающие максимальное значение целевой функции (в нашем случае 33,95). Для сохранения результатов вычислений на рабочем листе необходимо выбрать пункт Сохранить найденное решение.
Рис. 10. Добавление ограничений
Рис. 11. Подготовленная к решению задача линейного программирования
По результатам решения в случае установки режима Линейная модель (симплекс-метод) могут быть представлены три типа отчетов: по результатам, по устойчивости и по пределам. Если они требуются, то в меню результаты поиска решения в окне Тип отчета (рис. 12) необходимо выделить соответствующие строки.
Отчет по результатам (рис. 13) содержит начальные (Исходно) и конечные (Результат) значения целевой функции и изменяемых ячеек, а также сводку результатов использования ресурсов. В этой сводке в столбце Статус символами связанное или несвязанное обозначаются соответственно полное или неполное использование соответствующего ресурса. В рассматриваемом примере полностью израсходованы Ресурс 3 и Ресурс 4.
Рис. 12. Результат решения задачи линейного программирования
Отчет по устойчивости (рис. 14) показывает значения нормированной стоимости оценок (Нормир. стоимость), определяющих насколько изменится целевая функция при принудительном включении в план единицы продукции. Кроме этого в отчете содержатся величины использованных ресурсов (Результ. значение), их теневые цены, показывающие насколько изменится целевая функция при увеличении соответствующего ресурса на единицу, а также используемые значения ограничений. Колонки Допустимое увеличение (уменьшение) задают диапазон изменения значений переменных и ограничений, сохраняющих общую структуру решения задачи.
Рис. 13. Отчет по результатам
Рис. 14. Отчет по устойчивости
Отчет по пределам (рис. 15) показывает возможный диапазон изменения значений переменных, сохраняющий структуру оптимального решения, а также получающиеся в этом случае значения целевой функции.
Примечание. Конкретные реализации состава таблиц отчетов по пределам и устойчивости могут отличаться от приведенных выше.
Нахождение максимального/ минимального значения - простая задача, но она несколько усложняется, если МАКС/ МИН нужно найти не среди всех значений диапазона, а только среди тех, которые удовлетворяют определенному условию.
Пусть имеется таблица с двумя столбцами: текстовым и числовым.
Для удобства понимания формул создадим два именованных диапазона для каждого из столбцов: Текст ( A 6: A 30 ) и Числа ( B6:B30 ). (см. файл примера ).
Рассмотрим несколько задач:
А. Найдем максимальное значение среди тех чисел, которые соответствуют значению Текст1 (критерий введем в ячейку E6 ).Т.е. будем искать максимальное значение не среди всех значений столбца Числовые значения , а только среди тех, у которых в той же строке в столбце А текстовое значение равно Текст1 . Напишем формулу массива (не забудьте при вводе формулы нажать CTRL+SHIFT+ENTER ): =НАИБОЛЬШИЙ(ЕСЛИ(A6:A30=E6;B6:B30;"");1)
или с Именованными диапазонами :
Часть формулы Текст=E6 , вернет массив (для просмотра результата выделите эту часть формулы в Строке формул и нажмите клавишу F9 ). ИСТИНА соответствует строкам, у которых в столбце Текстовые значения содержится значение Текст1 .
Часть формулы ЕСЛИ(Текст=E6;Числа;"") , вернет массив , где вместо ИСТИНА подставлено значение из числового столбца, а вместо ЛОЖЬ - значение Пустой текст . Вместо "" можно было бы использовать любой текстовый символ (букву) или вообще опустить (в этом случае массив будет выглядеть так ).
Б. Найдем максимальное значение только среди чисел принадлежащих определенному интервалу значений, например от 5 до 50. Границы можно ввести в ячейки I 14 и J14 . Решением является формула массива := НАИБОЛЬШИЙ(ЕСЛИ((Числа>=I14)*(Числа<=J14);Числа);1)
В. Найдем с помощью формулы массива минимальное значение среди тех, которые соответствуют значению Текст3 := МИН(ЕСЛИ((Текст=E7);Числа;"");1)
Т.е. если в столбце А значение = Текст3 , то учитывается значение в столбце B , если значение <> Текст3 , то учитывается максимальное значение+1, т.е. заведомо НЕ минимальное. Далее функция МИН() возвращает минимальное значение из полученного массива, причем понятно, что ни одно из значений, где <> Текст3, не исказит результат (см. задачу А).
Другое решение с помощью формулы ДМИН() , которая не является формулой массива . =ДМИН(A5:B30;B5;I8:I9)
где в диапазоне I8:I9 содержится табличка с критерием (см. файл примера ). Подробнее о функции ДМИН() см. статью Функция ДМИН() - нахождение минимального значения по условию в MS EXCEL .
Г. Найдем минимальное значение, среди тех, которые больше среднего : =ДМИН(A5:B30;B5;I10:I11) где в диапазоне I10:I11 содержится критерий =B6>СРЗНАЧ(Числа)
Д. Найдем максимальное значение по модулю. Из рисунка выше видно, что это -99. Для этого используйте формулу массива :
Е. Найдем минимальное положительное число:
= НАИМЕНЬШИЙ(Числа;СЧЁТЕСЛИ(Числа;"<=0")+1) - обычная формула!
= НАИМЕНЬШИЙ(ЕСЛИ(Числа>0;Числа);1) - формула массива .
СОВЕТ:
Все вышеуказанные задачи можно решить без использования формул массива и функции ДМИН() . Для этого потребуется создать дополнительный столбец, в котором будут выведены только те значения, которые удовлетворяют критериям. Затем, среди отобранных значений с помощью функций МАКС() или МИН() , определить соответственно максимальное или минимальное значение (см. файл примера Лист без формул массива).
Множественные условия
Вышерассмотренный подход можно распространить на случаи когда необходимо найти максимальный или минимальный для нескольких текстовых условий.
В этом случае придется записать более сложную формулу массива :
В файле примера для наглядности настроено Условное форматирование для выделения строк, удовлетворяющим критериям . Кроме того, для выбора критериев использован Выпадающий список (см. желтые ячейки).
Аналогичным образом можно настроить формулы для нахождения минимального значения для строк, значения которых попадают в определенный диапазон.
Пусть дана функция с несколькими переменными F(x1, x2, . )=a1*x1+a2*x2+. Также даны граничные условия в виде b1*x1+b2*x2+. файл примера ).
Переменные (выделено зеленым) . В качестве переменных модели, очевидно, выступают x1, x2, x3, x4. Эта задача хороша тем, что переменные задаются однозначно, не требуется осмысливать житейскую задачу, например как с оптимизацией затрат . Хотя математически - это эквивалентные задачи, только количество переменных разное.
После запуска Поиск решения будет методично (последовательно) по своему алгоритму подставлять в зеленые ячейки числовые значения и вычислять функцию F (красная ячейка).
Ограничения (выделено серым) . Ограничения модели - это ограничения на область изменения переменных. Они могут задаваться как простыми выражениями для одной переменной, например х1>=0, так и для некой комбинации переменных 5*x1+4*x2-x3-2*x4 =0 ограничения можно ввести прямо в окне Поиска решения (будет показано ниже), для более сложных зависимостей удобно подготовить вспомогательную таблицу (С26:Е29).
Составить модель, особенно первую, непросто. Может помочь такой подход: считать, что переменные (зеленые ячейки) уже содержат некие значения, пусть даже не оптимальные. Так легче составлять огграничения. В нашем случае ограниечение 5*x1+4*x2-x3-2*x4 можно записать с помощью формулы = СУММПРОИЗВ($D$19:$D$22;C26:C29) . В диапазоне D19:D22 содержатся коэффициенты 5; 4; -1; -2. Кроме того, если значения переменных заданы, то и значение целевой функции также автоматически рассчитано (тоже не оптимальное пока, до запуска Поиска решения).
Целевая функция (выделено красным) . Целевая функция - это то, что требуется оптимизировать, т.е. F. Формула для ее вычисления задана в явном виде - не нужно догадываться из условий обычной задачи как ее подсчитать. Это не всегда очевидно (см., например, статью про пропускную способность трубопровода ).
Ниже приведено окно Поиска решения с заполненными полями: целевая функция, переменные и ограничения.
Два наиболее основных показателя в любых собранных статистических данных – это наибольшее и наименьшее значение, так называемые показатели максимумов и минимумов на графике. Максимальное и минимальное значения позволяют определить границы диапазона для всех исходных значений.
Как сделать выборку максимумов и минимумов в Excel
Пример. Ниже на рисунке представленная среднестатистическая температура воздуха за отдельные месяцы. Допустим, что в данном примере нам необходимо проверить, в какие месяцы года температура воздуха была наибольшая и наименьшая. Первая формула ищет наибольшую температуру:
Excel предлагает 2 функции служащие для поиска наибольшего и наименьшего значения в наборе данных статистики: МАКС и МИН. Обе функции могут иметь максимально 255 аргументов. Исходные данные находятся в диапазоне ячеек B2:B13, который является аргументом для функций МАКС и МИН. Функция МАКС возвращает значение 19 градусов – это наибольшая температура в указанном наборе данных, а функция МИН возвращает наименьшую температуру: -3.
Следующая формула возвращает название месяца соответственному температуре найденной с помощью первой формулы:
Чтобы определить название месяца с максимальным или с минимальным значением температур, необходимо сначала использовать функцию ИНДЕКС. Диапазон ячеек A2:A13, указан в качестве первого аргумента для данной функции и содержит список месяцев. Во втором аргументе функции ИНДЕКС указана функция ПОИСПОЗ, которая возвращает позицию искомого значения в списке исходных данных. Если искомое значение — это число 19, функция ПОИСКПОЗ в результате своих вычислений возвращает числовое значение 7, так как число 19 находится на седьмой позиции списка исходных данных. Функция ИНДЕКС использует это значение и возвращает седьмую строку из списка столбца «Месяц», то есть «Июль». Тот же самый принцип действия касается и функции МИН, с помощью которой формула в своем итоговом результате возвращает текстовое значение «Январь», в котором была наиболее низкая температура в году.
Благодаря данной формуле МАКС и МИН обходят текстовые значения в исходном диапазоне данных. Однако если эти доныне будут содержать ошибки, эти функции также будут возвращать ошибки. А если все значения данных будут текстовыми, тогда они обе будут возвращать число 0 в результатах своих вычислений для их формулы.
Читайте также: