Как работает функция maximize в mathcad

GeekBrains

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

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

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

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

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

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

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

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

· Minimize ( f ,<список параметров>) – вычисление точки минимума,

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

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

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

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

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

Определить значения 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).

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

Решение уравнений

В программе MathCAD с успехом решаются задачи оптимизации. Задача оптимизации (линейного программирования) — определение значений аргументов функции, при которых функция имеет экстремальное (минимальное, максимальное) значение . Условия, налагаемые на аргументы функции — заданные ограничения. Используется методика решения системы уравнений помощью блока Given. При этом вместо функции Find используется функция Maximize(), если определяется максимум , и функция Minimize() , если определяется минимум оптимизируемой функции. Последовательность действий следующая:

  • ввести оптимизируемую функцию,
  • определить начальные значения аргументов,
  • в блоке Given ввести уравнения (неравенства) ограничений,
  • ввести функцию Maximize () (Minimaze() ),
  • определить решение.

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

Пример 4.11

Найти максимум функции

f=500y1+800y2+400y3+200y4

при ограничениях \left\< \begin<aligned>3y1+3y2+6y3\le30000\\ 4y1+8y2+3y3+2y4\le24000\\ 4y1+3y3+5y4\le12000\\ y1\ge0\\ y2\ge0\\ y3\ge0\\ y4\ge0 \end <aligned>\right.

Листинги решения в алгебраическом и матричном виде.

ORIGIN:=1

Оптимизируемая функция – поиск максимума, f(y1,y2,y3,y4):=500y1+800y2+400y3+200y4

y1:=1, y2:=1, y3:=1, y4:=1

Given

GeekBrains

3y1+y2+6y3\le30000

4y1+8y2+y3+2y4\le24000

y1+3y2+5y4\le12000

y1\ge0, y2\ge0, y3\ge0, y4\ge0

y:=Maximize(f,y1,y2,y3,y4)

y=\begin<pmatrix>4.168\times10^3 \\ 1.827\times10^3 \\ 3.511\times10^3 \\ 0 \end<pmatrix>

Максимальное значение функции: f(y1,y2,y3,y4)=3.6\times10^6

ORIGIN:=1

Матрица коэффициентов функции: C:=\begin<pmatrix>500 \\ 800 \\ 400 \\ 200 \end<pmatrix>

Матрица левых частей ограничений: A:=\begin<pmatrix>3 & 1 & 6 & 0 \\ 4 & 8 & 1 & 2 \\ 1 & 0 & 3 & 5\end<pmatrix>

Матрица правых частей ограничений: B:=\begin<pmatrix>30000 \\ 24000 \\ 12000 \end<pmatrix>

Начальные значения: x:=\begin<pmatrix>1 \\ 1 \\ 1 \\ 1 \end<pmatrix>

f(x):=C\cdot x

Given

A\cdot x\le B

x\ge 0

x:=Maximize(f,x)

x=\begin<pmatrix>4.168\times10^3 \\ 1.827\times10^3 \\ 3.511\times10^3 \\ 0 \end<pmatrix>

Максимальное значение функции:

f(x)=3.6\times10^6

Основные итоги

В лекции представлены методы численного решения уравнений и систем уравнений с использованием функций MathCAD. Рассмотрены функция Root (), функция для поиска корней полинома polyroots(), вычислительные блоки Given .Find() и Given Minerr().. Описано численное решение систем линейных уравнений, а также способы аналитического решения : с помощью матриц, функции lsolve(), символьного оператора solve. Показано решение задач оптимизации.

Задания для самостоятельного выполнения

  1. Построить графики функций. Решить уравнения с применением функции root()

а) \frac<\sin<(2x)>><1-\cos<(2x)>> для -5 \le x \le 5

б) 2\ln<(y+4)>-3\ln<(y+2)>+\ln<(y+1)>=0

в) e^<z-8>-8z=0 (2 корня)

а) x^3-6x^2-52=0

б) x^5+23x^3-3x^2+15=0

а) \left\< \begin<aligned>e^<\frac<x><2>>-y=0\\ x^2-y+1=0 \end <aligned>\right. найти 3 корня

б) \left\< \begin<aligned>\frac<2><x>+3y=16\\ -x^2+2\sqrt<y>=2 \end <aligned>\right. найти 2 корня

в) \tan<x>+\sin<x>=3x+3

г) \left\< \begin<aligned>x^3-y^3=61(x-y)\\ (x-1)(y-1)=12 \end <aligned>\right.

д) \left\< \begin<aligned>x1+x2+x3=0\\ x1^2+x2^2+x3^2=20\\ x1^4+x2^4+x3^4=220 \end <aligned>\right.

Ключевые термины

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

polyroot() — функция для численного поиска корней полинома. Возвращает вектор длиной n+1 всех корней полинома степени n.

Given Find() – вычислительный блок для численного решения нелинейных уравнений и систем уравнений.

Given Minerr() вычислительный блок для приближенного численного решения нелинейных уравнений и систем уравнений.

Maximize () – функция для поиска значений переменных функции, при которых функция имеет максимальное значение .

Minimaze() — , функция для поиска значений переменных функции, при которых функция имеет минимальное значение .

lsolve(A,B) — функция аналитического решения системы линейных уравнений, представленной в виде AX=B.

Как работает функция maximize в mathcad

Nickolay.info. Обучение. Безусловная и условная оптимизация в MathCAD

  • Maximize(f,список_параметров) – вычисляет точку максимума;
  • Minimize(f,список_параметров) – вычисляет точку минимума.

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

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

В частности, легко решить задачу как линейного, так и нелинейного программирования. Подробнее тема описана в этой лекции, а здесь приведём пример документа, решающего все 4 задачи — безусловной минимизации и максимизации и условной минимизации и максимизации.

GeekBrains

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *