Brian_-_Matlab_R2007_s_nulya_33 (771739), страница 37
Текст из файла (страница 37)
Мы можем показать результат от подобных увеличений спроса для других секторов с помощью следующих круговых диаграммам: » ае1еех1 = (е1е(3) - А) ~ [1оооо; о; о)) 210 мдтыв равна 1.30 5, а для ячменя — 2.00 3, то как должен фермер засеивать 75 акров, что- бы достичь наибольшей прибыли2 Мы начнем с мателгагической формулировки задачи. Сначала мы выразим пель (целью в нзпнй задаче является прибыль) и ограничения алгебраически, затем мы построим график, и, наконец, мы найдем регпение с поносные графического Глава 10. Прикладные задачи ('еперь давайте добавим Лва других ограпичивакнцих неравенства. » Х2 = пам((4000 - 110."Х) ./ЗО, О) з » хз и звам(75 - Х, 0)з » Хвор = гкап((Х1( х2) ХЗ))) Глава 10. Прикладные задачи 213 Эта задача показывает пример «фундаментальной теоремы линейного программиРованиЯГч котоРаЯ использУетсЯ здесь длЯ двУх пеРеменных: линейное выРажение вх+Ьу, определенное на замкнутом ограниченном выпуклом множестве 3, стороны которого являются линейными сегментами, достигает своих наибольших и наименьших значений в вершинах Я.
Если множество Я неограничено, то в нем может быть, но не должно быть оптимальное значение, но если оно там есть, то оно находится в одной из вершин. (Выпуклое множество — это множество, для которого любой линейный сегмент, присоединяющийся к двум точкам множества, полностью находится в этом множестве.) ]]З Фактически, набор инструментов программы 8(пшОпк содержит встроенную функцию впп!р, которая выполняет решение задач линейного программирования. Набор инструментов Ор((гп(аадоп (Оптимизации) содержит почти такую же функцию, которая называется йпргод.
Вы можете узнать о любой из них из оперативной справки. Мы будем использовать в нашей задаче функцию впп(р. Позже мы будем применять эту функцию для решения двух других, более сложных задач, затрагивающих больше переменных и ограничений. Ниже показано начало текста справки для этой функции. » Ье1реехв = Ье1р('в1ийр')) Ье1реехв(1:190) апя 51ИЬР Не1рег Еипсс1оп бог ВЕТХО; яо1чея 11пеаг ргодгелап1пд ргоЬ]ет. Х1=51Ж,Р(й, А, Ь) яо1чея СЬе 11пеаг ргодгапав1пд ргоЬ1евп ш1п й'хяиЬ3есг Со: Ах <= Ь Итак, » 5 = (-143 -60] ) » А ю [120 210з 110 ЗО) 1 1) -1 0; 0 -1] » Ь ю [15000з 40007 751 Оз 0]' » йоквак вЬогкз вав1р(й, А Ь) апя = 21.8750 53.1250 Мы получили тот же самый ответ, что и ранее.
Обратите внимание на то, что мы получили отрицательные коэффициенты для целевой функции Р в векторе Й, по. тому что функция впп!р ищет минимум, а не максимум. Заметьте также, что ограничения неотрицательности приняты во внимание в последних двух рядах А и Ь. 214 МАт(.АВ Хорошо, мы, возможно, могли бы решить эту задачу вручную. Но предположите, что фермер занимается выращиванием третьей зерновой культуры, скажем, ку курузы, и что данные выглядят следующим образом. ° Стоимость за акр: 150.75 $.
° Урожай на акр: 125 бушелей. ° Прибыль на бушель: 1.5б 3. Ксли мы обозначим число акров, выделенных под кукурузу через я, то целевая функция примет вид Рх(110) (1. 30)х+(30) (2. 00)у+ (125) (1. 56) х143зс+60у+195я, и ограничивающие неравенства будуг 120х + 210у + 150.75я > 15000, 110х + 30у + 125в > 4000, х + у + я > 75, х 1 О, уа О, я1 О. С помощью функции в)т)р задача решается следующим образом: » 6 ~ (-143 -60 -195)з » А ~ (120 210 150 ° 75з 110 30 125з 1 1 1з -1 0 Оз 0-10з00-1)з » Ь ~ (15000з 40001 757 07 Оз 0) з » еза1Р(6, )Ь, И апв 56.5789 18.4211 Таким образом, фермер должен отказаться от пшеницы и засеять 56.5789 акров ячменя и 18.4211 акров кукурузы.
Нет практически никакого предела в количестве переменных и ограничений, с которыми среда МАТ(.АВ может обращаться. Конечно, в разумных пределах — нет никакого ограничения для задач, с которым относительно простой пользователь может столкнуться. 215 Глава 10. Прикладные задачи Действительно, во многих настоящих прикладных задачах техники линейного программирования приходится учитывать многие переменные и ограничения. Решение таких задач вручную невозможно и использование такого программного обеспечения, как среда МА'ПЫВ является решающим фактором для успеха.
Например, в задаче из сельского хозяйства, которую мы рассмотрели, можно было учитывать больше зерновых культур, чем две нли три — подразумевая сельское хозяйство вместо семейного фермерства. Также можно было принять во внимание ограничения, которые вызваны влиянием других обстоятельств помимо расходов, хранения и ограничений площади земли — например, следующие. ° Доступность семян.
Этот фактор мог бы привести к ограничивающему нера- венствувидазсЗ 5 1с. ° Личное предпочтение. Например, супруга фермера могла бы отдать предпочтение одному варианту вместо другого и настаивать на посеве выбранной культуры или нескольких зерновых культур. Таким образом, могут появиться такие ограНИЧИВаЮЩИЕНЕРаВЕНСтаа, Кахжз 3 из ИЛИМз + Зсз Д Зез.
° Государственные дотации. Они могут привести к таким неравенствам, как мз ~ 1с. Ниже представлена последовательность команд, которая решает эту задачу. Вы должны суметь увидеть выражение для целевой функции и ограничения, наложенные на данные. Но в качестве подсказки вы можете использовать следующие вопросы. ° Сколько зерновых культур рассматривается? ° Каковы расходы? Сколько средств можно потратить на расходы? ° Каковы урожаи в каждом случае? Какова вместимость хранилища? ° Сколько акров земли доступно? ° На какие зерновые культуры оказывают влияние ограничения количества семян? В какой степени? ° Что можно сказать о предпочтениях? ° Каковы наименьшие площади земли для каждой зерновой культуры? » 5 а [-110*1.3 -30е2.0 -125е1.56 -75е1.8 -95е.95 -100~2.25 -50е1.35) з » Гз = ~120 210 150 ° 75 115 186 140 857 11030125759510050з1111111з1000000з 0 0 1 0 0 0 Оз 0 0 0 0 0 1 Оз 1 -1 0 0 0 0 Оз О О 1 О -2 О Оз О О О -1 О -1 1з -1 О О О О О Оз ...
0 -1 0 0 0 0 Оз 0 0 -1 0 0 0 Оз 0 0 0 -1 0 0 Оз 216 мдтыв О О О О -1 О О] О О О О О -1 О; О О О О О О -1]; » Ь = [55000] 40000; 400з 100з 50] 2504 0; 0; Оз -10] -10] -10] -10] -204 -20; -20] » а1ж1Р (Еф Аф Ь] апв 10.0000 10.0000 40.0000 45.6522 20.0000 250.0000 20.0000 Обратите внимание на то, что, несмотря на сложность задачи, среда МАТЮКАВ решает задачу практически мгновенно.
Похоже, что фермеру необходимо делать ставку на сельскохозяйственную культуру под номером б. Мы предлагаем вам изменить в этой задаче расходы и/илн предел хранения и посмотреть, как это повлияет на результат. Маятник 360' Обычно мы представляем маятник как некоторый вес, подвешенный с помощью гибкой нити или каната таким образом, что он может качаться вперед н назад.
Другой вид маятника состоит из веса, закрепленного на легком (но твердом) прутке к оси так, чтобы он мог поворачиваться на большие углы н при достаточной заданной скорости даже выполнять вращения на 360 . Уравнения движения Хотя в действительности это не совсем верно, но мы все же часто предполагаем, что величина сил трения, которые, в конечном счете, приводят к остановке маятника, пропорциональна скорости маятника.
Предположим также, что длина маятника равна 1 м, масса на конце маятника составляет 1 кг, а коэффициент трения примем 0.5. В таком случае, уравнения движения для маятника будут следующими. х(4)=у(4), у(С)=-05у(~) — 9.8151п(х(~)), Глава 10. Прикладные задачи 217 где е представляет время в секундах, х обозначает угол отклонения маятника от вертикальной линии в радианах (то есть х = 0 — это исходное положение), у выражает угловую скорость маятника в радианах в секунду, а постоянная 9.81— это приблизительное ускорение, вызванное действием силы тяжести, в метрах в секунду в квадрате.
Ниже показан ход решения для начального положения х(0) 0 и начальной скоростью у (0) = 5. Это график х и у как функции от Ф на промежутке времени 0 < к <20. (Чтобы использовать инструмент среды МАТ[.АВ для численного решения дифференциальных уравнений ос(е45, мы объединим х и у в один вектор х — смотрите оперативную справку для команды ос(е45.) » В = Ф(к, х) [зс(2) з -0.5*х(2) - 9.81"в1п(х(1))] » [к, зса] ос]е45(в, [Ос0.01с20], [О 5] ) з » р1ов(ха(с, 1), ха(с, 2)) .5 -1 -О.з О 0.5 1 ьз 2 Вспомните, что координата х соответствует углу маятника, а координата у соответствует его скорости. Начав в точке (О; 5), по мере увеличения с, мы следуем за кривой, в то время как она закручивается по часовой стрелке к точке (О; 0).