Экстремум функции многих переменных
Вычисление экстремума функции многих переменных не несет принципиальных особенностей по сравнению с функциями одной переменной. Поэтому ограничимся примером (листинг 8.14) нахождения максимума и минимума функции, показанной в виде графиков трехмерной поверхности и линий уровня на рис. 8.9. Привлечем внимание читателя только к тому, как с помощью неравенств, введенных логическими операторами, задается область на плоскости (х,y).
Листинг 8.14. Экстремум функции двух переменных
Рис. 8.9. График функции f (х, у) и отрезок прямой х+у=10
Дополнительные условия могут быть заданы и равенствами. Например, определение после ключевого слова Given уравнения х+у=10 приводит к такому решению задачи на условный экстремум. Как нетрудно сообразить, еще одно дополнительное условие привело к тому, что численный метод ищет минимальное значение функции f(x,y) вдоль отрезка прямой, показанного на рис. 8.9. Поиск минимума можно организовать и с помощью функции Minerr. Для этого в листинге 8.14 надо поменять имя функции Minimize на Minerr, а после ключевого слова Given добавить выражение, приравнивающее функции f (х,у) значение, заведомо меньшее минимального, например f (х,у) =0.
Линейное программирование Задачи поиска условного экстремума функции многих переменных часто встречаются в экономических расчетах для минимизации издержек, финансовых рисков, максимизации прибыли и т. п. Целый класс экономических задач оптимизации описывается системами линейных уравнений и неравенств. Они называются задачами линейного программирования. Приведем характерный пример т. н. транспортной задачи, которая решает одну из проблем оптимальной организации доставки товара потребителям с точки зрения экономии транспортных средств (листинг 8.15).
Листинг 8.15. Решение задачи линейного программирования Модель типичной транспортной задачи следующая. Пусть имеется N предприятий-производителей, выпустивших продукцию в количестве b0,...,bn-1, тонн. Эту продукцию требуется доставить м потребителям в количестве a0,...,aм-1 тонн каждому. Численное определение векторов а и b находится в первой строке листинга. Сумма всех заказов потребителей ai равна сумме произведенной продукции, т. е. всех bi (проверка равенства во второй строке). Если известна стоимость перевозки тонны продукции от 1-го производителя к j-му потребителю cij то решение задачи задает оптимальное распределение соответствующего товаропотока xij с точки зрения минимизации суммы транспортных расходов. Матрица с и минимизируемая функция f (х) матричного аргумента х находятся в середине листинга 8.15. Условия, выражающие неотрицательность товаропотока, и равенства, задающие сумму произведенной каждым предприятием продукции и сумму заказов каждого потребителя, находятся после ключевого слова Given. Решение, присвоенное матричной переменной sol, выведено в последней строке листинга вместе с соответствующей суммой затрат. Обратите внимание, что для получения результата пришлось увеличить погрешность CTOL, задающую максимальную допустимую невязку дополнительных условий. В строке, предшествующей ключевому слову Given, определяются нулевые начальные значения ддя х простым созданием нулевого элемента матрицы xn-1, м-1 Если взять другие начальные значения для х, решение, скорее всего, будет другим! Возможно, Вы сумеете отыскать другой локальный минимум, который еще больше минимизирует транспортные затраты. Это еще раз доказывает, что задачи на глобальный минимум, к классу которых относится линейное программирование, требуют аккуратного отношения в смысле выбора начальных значений. Часто ничего другого не остается, кроме сканирования всей области начальных значений, чтобы из множества локальных минимумов выбрать наиболее глубокий.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|