Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Решение оптимизационных задач в mathcad

Решение задач линейного программирования в MathCad

Главная > Решение

Лабораторная работа № 3. Решение задач линейного программирования в MathCad.

Задача 1. Задача линейного программирования. Найти максимальное значение функции

при заданных ограничениях

1) Специальной переменной ORIGIN присваивают значение 1. Значением ORIGIN является номер первого элемента строки или столбца в матрице. По умолчанию ORIGIN=0.

В меню Math выбрать строку Options или

2) Вводят исходные данные задачи в матричной форме.

3) Вводят линейную целевую функцию.

4) Задают начальные значения переменным задачи.

5) Вводят ограничения задачи в матричной форме.

6) Определяют оптимальное решение задачи с помощью встроенной функции Maximize (в случае поиска максимума функции) или Minimize (в случае поиска минимума функции).

Задача 2. Транспортная задача. Имеются n пунктов производства и т пунктов распределения продукции. Стоимость перевозки единицы продукции с і-го пункта производства в j-й центр распределения cij приведена в таблице, где под строкой понимается пункт производства, а под столбцом — пункт распределения. Кроме того, в этой таблице в i-й строке указан объем производства в і-м пункте производства, а в j-м столбце указан спрос в j-м центре распределения. Необходимо составить план перевозок по доставке требуемой продукции в пункты распределения, минимизирующий суммарные транспортные расходы.

Оптимизация функций одной и нескольких переменных в PTC MathCAD

1. Поиск экстремума функции

Задачи поиска экстремума функции означают нахождение ее максимума (наибольшего значения) или минимума (наименьшего значения) в некоторой области определения ее аргументов. Ограничения значений аргументов, задающих эту область, как и прочие дополнительные условия, должны быть определены в виде системы неравенств и (или) уравнений. В таком случае говорят о задаче на условный экстремум.

Для решения задач поиска максимума и минимума в Mathcad имеются встроенные функции Minerr, Minimize и Maximize. Все они используют те же градиентные численные методы, что и функция Find для решения уравнений.

2. Экстремум функции одной переменной

Поиск экстремума функции включает в себя задачи нахождения локального и глобального экстремума. Последние называют еще задачами оптимизации. Рассмотрим конкретный пример функции f(x), показанной графиком на рис.2 на интервале (-2,5). Она имеет глобальный максимум на левой границе интервала, глобальный минимум, локальный максимум, локальный минимум и локальный максимум на правой границе интервала (в порядке слева направо).

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

Рис. 1. График функции f(х)=х 4 +5х 3 -10х

Построим график заданной функции (рис.1). По графику видны участки локальных экстремумов функции.

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

· Minimize (f, x1, … ,хм) — вектор значений аргументов, при которых функция f достигает минимума;

· Maximize (f, х1, … ,хм) — вектор значений аргументов, при которых функция f достигает максимума;

Всем аргументам функции f предварительно следует присвоить некоторые значения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения. Примеры вычисления экстремума функции одной переменной (рис.1) без дополнительных условий показаны в листинге на рис.2. Поскольку никаких дополнительных условий в них не вводится, поиск экстремумов выполняется для любых значений.

Читать еще:  Оптимизация системы это

Рис.2. Поиск локальных экстремумов функции одной переменной

Как видно из листинга, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются локальные различные экстремумы. В последнем случае численный метод вообще не справляется с задачей, поскольку начальное приближение х=-10 выбрано далеко от области локального максимума, и поиск решения уходит в сторону увеличения f (х).

3. Условный экстремум

В задачах на условный экстремум функции минимизации и максимизации должны быть включены в вычислительный блок, т. е. им должно предшествовать ключевое слово Given. В промежутке между Given и функцией поиска экстремума с помощью булевых операторов записываются логические выражения (неравенства, уравнения), задающие ограничения на значения аргументов минимизируемой функции. На рис.3 показаны примеры поиска условного экстремума на различных интервалах, определенных неравенствами. Сравните результаты работы этого листинга с двумя предыдущими.

Рис. 3. Три примера поиска условного экстремума функции

Не забывайте о важности выбора правильного начального приближения и в случае задач на условный экстремум. Например, если вместо условия — 3

Александр Малыгин

Объект обсуждения — программное обеспечение для выполнения автоматизированного конструкторского и технологического проектирования, разработки управляющих программ, вопросы, связанные с разработкой прикладных САПР.

4 thoughts to “Оптимизация функций одной и нескольких переменных в PTC MathCAD”

Спасибо, очень информативано! Скажите, а для 9 переменных такая же функция и такой же принцип используется?

Функция будет другая. Вы сами подбираете вид функции, остальное аналогично.

Добрый день!
Скажите, если у меня есть интересная задача многокритериального поиска когда целевая функция есть набором других функций, например целевая функция Р=f(y1,y2,y3,y4,y5), где:
y1=f(a,b,c,d);
y2=f(c,d,e,g);
y3=f(c, h,k,);
y4=f(b,d);
y5=f(d,l,m).
Причем есть только один параметр, например d который входит во все значения промежуточных ф-ций y1…y5 и соответственно функционала Р. Остальные параметры между собой не связаны, или связаны косвенно.Задачей оптимизации является поиск таких значений Р при котором, например y1-max, y2>=const, y3…y5-min.
Есть ли возможность решить данную задачу в МАТКАД-е?
Буду очень признателен за внятный ответ.
Спасибо!

Думаю, что автоматически такую задачу решить нельзя нигде. Нужно задачу разбить на более простые части, а их на еще более простые, тогда и решить можно в Matcad.

Решение оптимизационных задач в пакете M ath CAD

Оптимизационные задачи можно разделить на два класса:

задачи безусловной оптимизации (или оптимизация без ограничений).

задачи условной оптимизации (оптимизация с ограничениями).

Вторая задача отличается от первой тем, что решение ищется только среди допустимых значений или, иначе, на допустимом множестве значений переменных задачи, которые удовлетворяют заданным ограничениям.

Решение оптимизационных задач без ограничений

Для этого используются две функции MathCAD :

· Maximize ( f , ) – вычисление точки максимума;

где f – имя минимизируемого функционала, определенного до обращения к функции; – содержит перечисление (через запятую) имен параметров, относительно которых решается оптимизационная задача.

Внимание! Перед обращением к функциям Maximize , Minimize (имена которых начинаются прописными буквами) следует обязательно задать начальное значение параметров оптимизации.

Пример. Дан функционал:

.

Пример. Дан функционал:

.

Определить значения u , v , при которых f ( u , v ) достигает максимального значения.

Задание. Дан функционал:

.

Определить точки минимума и максимума этого функционала.

Решение оптимизационных задач с ограничениями

Используются те же функции Maximize, Minimize, но они входят уже в блок решения Given и перед ними размещаются ограничения в виде равенств или неравенств, определяющие допустимую область значений параметров оптимизации.

Пример. Дан функционал и ограничения в виде

Определить значения a , b , доставляющие максимальное значение функционала и удовлетворяющие неравенствам.

Замечание. В оптимизационных задачах с ограничениями решение целесообразно определять из необходимых условий экстремума. Эти условия порождают систему уравнений (чаще всего нелинейных), которые располагаются в блоке Given , вместе с ограничениями, определяющими допустимую область. Само решение ищется с помощью функций Find, Minerr.

Читать еще:  Что значит оптимизация приложений

Пример. В качестве тестового функционала при поиске точки минимума часто используется функционал Розенброка:

.

«Поверхность» этого функционала напоминает глубокий овраг, что сильно осложняет работу многих алгоритмов минимизации. Требуется вычислить точку минимума функционала при ограничениях:

.

Пример (задача линейного программирования ). Цех малого предприятия должен изготовить 100 изделий трех типов и не менее 20 штук изделий каждого типа. На изделия уходит 4, 3.4 и 2 кг металла соответственно, при его общем запасе 340 кг , а также расходуются по 4.75, 11 и 2 кг пластмассы, при ее общем запасе 400 кг . Прибыль, полученная от каждого изделия равна 4, 3 и 2 рублей.

Определить сколько изделий каждого типа необходимо выпустить, для получения максимальной прибыли в рамках установленных запасов металла и пластмассы.

Пример 9.2.4 (задача нелинейного программирования) . Пусть вектор v состоит из трех проекций и дан функционал:

Вычислить точку минимума этого функционала при ограничениях:

Задание 9.2.1 адача линейного программирования). Дан функционал:

.

Определить точку максимума этого функционала при ограничениях:

Вычислить значения функционала в этой точке.

максимум функционала достигается в точке (0, 13, 8).

Задание (задача квадратичного программирования). Дан функционал:

Определить точку максимума этого функционала при ограничениях:

максимум функционала достигается в точке (7.5, 10, 6).●

Задача 4. Решение задачи линейного программирования в MathCAD

Для решения оптимизационных задач используются две функции MathCAD:

– вычисление точки максимума

– вычисление точки минимума

f – имя целевой функции, определенной до обращения к функции;

– содержит перечисление (через запятую) имен параметров, относительно которых решается оптимизационная задача.

Замечание: Перед обращением к функциям Maximize, Minimize (имена которых начинаются прописными буквами) следует обязательно задать начальное значение параметров оптимизации.

Запустите MathCAD и определите целевую функцию. Для вода символа присваивания “:=” используйте комбинацию клавиш “CTRL+:” или соответствующую кнопку на панели инструментов

Введите начальные значения и

Введите ключевое слово givenи задайте ограничения

На панели инструментов Matrix щелкните по кнопке или нажмите комбинацию клавиш “CTRL + M” и добавьте матрицу с одним столбцом и количеством строк, соответствующим количеству переменных:

Укажите в качестве элементов матрицы имена переменных и определите матрицу с помощью функции Maximize (т.к. ищется максимум функции):

Найдите значение матрицы и соответствующего значения целевой функции:

Таким образом, максимальная прибыль достигается при производстве 12 изделий вида и 6 изделий вида .

Ответ: при плане

Решение оптимизационных задач с ограничениями;

Решение оптимизационных задач без ограничений

Лекция № 4

Символическое решение систем уравнений

Во многих случаях решение системы уравнений может быть найдено не только численно, но и аналитически. Для этого так же используется блок given и функция Find, но вместо знака равенства после функции следует поставить знак символического преобразования –> (Ctrl+.).

Решение записано в виде матрицы. Каждый столбец соответствует паре (x,y), т. е. найдены решения (1,3) и (3,1).

Тема: «Решение оптимизационных задач в пакете MATHCAD»

В ряде задач проектирования конструкций существует необходимость определить значения параметров, которые доставляют максимум или минимум некоторому функционалу (или целевой функции), зависящему от этих параметров. Если на значения этих параметров не заданы какие-либо ограничения (например, требование положительности), то приходим к задаче безусловной оптимизации (или оптимизации без ограничений). Если заданы ограничения, определяющие допустимые значения параметров, то приходим к задаче условной оптимизации (оптимизации с ограничениями). Вторая задача отличается от первой тем, что решение ищется только среди допустимых значений или, иначе, на допустимом множестве параметров.

Для этого используются две функции MathCAD:

· Maximize(f, ) – вычисление точки максимума;

· Minimize(f, ) – вычисление точки минимума, где f – имя минимизируемого функционала, определенного до обращения к функции; – содержит перечисление (через запятую) имен параметров, относительно которых решается оптимизационная задача.

Читать еще:  Оптимизация по prefetch что это

Внимание! Перед обращением к функциям Maximize, Minimize (имена которых начинаются прописными буквами) обязательно задать начальное значение параметров оптимизации.

Пример 1.Дан функционал:

Определить значения x, y, z, при которых g(x, y, z) достигает минимального значения.

Документ MathCAD, решающий эту задачу, приведен на рис. 1. ¨

Рис. 1. Пример минимизации функционала (1)

Пример 2. Дан функционал:

Определить значения u, v, при которых f(u,v) достигает максимального значения.

Документ MathCAD, решающий эту задачу приведен на рис. 2. В последних строках документа выполнена проверка найденного решения на максимум.

Рис. 2. Максимизация функционала (2)

Задача нецелочисленной оптимизации состоит в том, чтобы подобрать такие значения аргументов целевой функции, при которых данная функция принимает экстремальное (минимальное или максимальное) значение и соблюдается заданная система ограничений на значения аргументов. В математической форме задача может быть сформулирована следующим образом:

где f — целевая функция; n — количество аргументов целевой функции; gi, hi — элементы системы ограничений (равенств или неравенств различного вида); k — количество ограничений.

В системе MathCAD такие задачи решаются с помощью блоков Given-Maximize и Given-Minimize. Так же, как и при решении систем уравнений, решающий блок состоит из нескольких компонент, следующих на листе (рис. 14) в строго определенном порядке:

1. Присваивание начальных значений переменным, относительно которых решается задача оптимизации.

2. Определение целевой функции.

3. Директива Given.

4. Ограничения, записываемые в обычной математической форме. Могут использоваться все указанные выше знаки отношений, но вместо простого знака равенства «=» используется оператор логического равенства (вводится путем нажатия Ctrl-=). Замечание: система MathCAD при минимизации и максимизации воспринимает знаки строгого неравенства ( ) как знаки нестрогого неравенства .

5. Обращение к одной из функций Minimize или Maximize для соответственно минимизации или максимизации. Первым аргументом всегда является имя целевой функции. Далее следуют имена переменных, относительно которых решается задача. Функция возвращает вектор значений, где первый элемент соответствует первой переменной в списке аргументов, второй элемент — второй переменной и так далее.

Пример 1.Дан функционал:

и ограничения в виде

Определить значения a, b, доставляющие максимальное значение функционала (1) и удовлетворяющие неравенствам (2).

Документ MathCAD, решающий эту задачу, показан на рис. 1. Точка «старта» алгоритма берется из допустимой области, определяемой ограничениями (2).

Рис. 1. Условная максимизация функционала (1)

Замечание 1. В оптимизационных задачах с ограничениями решение целесообразно определять из необходимых условий экстремума. Эти условия порождают систему уравнений (чаще всего нелинейных), которые располагаются в блоке Given, вместе с ограничениями, определяющими допустимую область. Само решение ищется с помощью функций Find, Minerr.

Пример 2. В качестве тестового функционала при поиске точки минимума часто используется функционал Розенброка:

«Поверхность» этого функционала напоминает глубокий овраг, что сильно осложняет работу многих алгоритмов минимизации. Требуется вычислить точку минимума функционала при ограничениях:

Документ MathCAD решения этой задачи показан на рис. 2.

Рис. 2. Минимизация функции Розенброка

Пример 3 (задача линейного программирования). Цех малого предприятия должен изготовить 100 изделий трех типов и не менее 20 штук изделий каждого типа. На изделия уходит 4, 3.4 и 2 кг металла соответственно, при его общем запасе 340 кг, а также расходуются по 4.75, 11 и 2 кг пластмассы, при ее общем запасе 400 кг. Прибыль, полученная от каждого изделия равна 4, 3 и 2 р. Определить сколько изделий каждого типа необходимо выпустить для получения максимальной прибыли в рамках установленных запасов металла и пластмассы.

Документ MathCad, решающий эту задачу приведен на рис. 3.

Рис. 3. Решение задачи линейного программирования

Ссылка на основную публикацию
Adblock
detector