Основы математического моделирования

Методы линейного программирования в математическом моделировании технологических процессов. Направление оптимизации целевой функции. Ввод функциональных зависимостей для целевой функции и ограничений осуществляется с использованием Мастера функций.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.01.2014
Размер файла 994,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ФГБОУ ВПО ВГТУ)

Факультет заочного обучения

Кафедра технологии машиностроения

КУРСОВАЯ РАБОТА

«Основы математического моделирования»

Выполнил студент ТМ-102 Д. Ю. Усманова

Шифр 310034

Проверила доцент кафедры ТМ Перова А. В.

Воронеж 2012

Задание 1

Методы линейного программирования в математическом моделировании технологических процессов

Предприятие может выпустить три вида продукции: П1, П2, П3. Для выпуска продукции требуются ресурсы трех видов: трудовые, станочное оборудование и полуфабрикаты. Объемы и нормы расхода ресурсов приведены таблице 1

Таблица 1.

Наименование ресурса

Вид продукции

Объем

ресурса

П1

П2

П3

Расход ресурса на единицу продукции

Трудовые ресурсы, чел-ч

2

5

6

240

Станочное оборудование, станкосмены

3

7

7

420

Полуфабрикаты, кг

4

4

2

300

Прибыль с единицы продукции, руб

12

18

16

max

Выпуск, шт

X1

X2

X3

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

Данная задача относится к задаче планирования при ограничениях на ресурсы, распределительного типа.

Математическая модель для решения данной задачи будет иметь следующий вид:

F=12x1+18x2+16x3max;

2x1+5x2+6x3240;

3x1+7x2+7x3420;

4x1+4x2+2x3300;

xj 0, j=.

Рассмотрим последовательность работ при решении этой задачи средствами Excel.

Форма ввода условий данной задачи может иметь следующий вид:

Рисунок 1

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

Рисунок 2

При этом ячейки B3:E3 являются неизменяемыми, и в них будут заноситься значения переменных.

Ввод функциональных зависимостей для целевой функции и ограничений осуществляется с использованием Мастера функций. Для этого необходимо активизировать требуемую ячейку (F6) и вызвать Мастер функций. В левой части появившегося диалогового окна выбираем категорию функцию Математическая, а в правом окне выделяем функцию СУММПРОИЗВ и нажимаем ОК. Затем на экране отобразится диалоговое окно второго шага (рис. 3), где введем как первый ($B$3:$D$3), так и второй массивы (B6:D6). При вводе первого массива используются абсолютные ссылки на ячейки, при вводе второго - относительные.

Рисунок 3

Окончательная таблица с исходными данными представлена на рис. 4 (для наглядности выбран режим предсталения формул).

Рисунок 4

линейный программирование целевой функция

После окончания ввода исходных данных осуществим вызов программы Поиск решения. Для этого выбираем в меню пункт Данные, а в нём - Поиск решения, в результате чего на экране появляется окно поиска решения (рис. 5).

Рисунок 5

В окне Оптимизировать целевую ячейку вводим имя ячейки, в которую введена зависимость для целевой ячейки (в данном случае F6). В качестве направления оптимизации выбираем максимизация. В окне Изменяя ячейки вводим адреса ячеек, соответствующих варьируемыми переменными задачи (В3:Е3). Далее вводим ограничения. Для добавления ограничений выбираем пункт Добавить, после чего появляется окно добавления ограничений (рис. 6).

Рисунок 6

Также вводим граничные условия для переменных (П13)?0: B3>=B4, C3>=C4, D3>=D4 (нулевые значения ячеек B4-D4 не устанавливаем).Ограничения вводи в виде B3>=0, C3>=0, D3>=0. Затем вводим ограничения на ресурсы: F10<=H10, F11<=H11, F12<=H12. Ограничения вводим последовательно. Сначала выбираем пункт Добавить, далее в появившихся диалоговых окнах вводим левую часть, знак и правая часть каждого ограничения. После ввода последнего ограничения и нажатия ОК происходит возврат в окно Поиск решения.

Заполненная в результате ввода ограничений форма поиска решений представлена на рис. 5. Решение задачи производится сразу же после ввода данных, когда на экране находится диалоговое окно Поиска решения. Перед началом решения необходимо установить параметры решения, для чего в окне поиска решения выбираем команду параметры. Диалоговое окно параметров поиска решения представлено на рис. 7.

Рисунок 7.

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

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

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

Результирующие значения всех переменных записываются в ячейки B3-D3 исходной задачи. Соответствующее значения целевой функции заносится в ячейку F6, а значения левых частей ограничений - в ячейки F10-F12. Таблица с результатами решения задачи представлена на рис. 8.

Рисунок 8

показывает, что в оптимальном решении

Прод1=B3=45;

Прод2=C3=30;

Прод3=D3=0.

При этом максимальная прибыль будет составлять F6=1080, а количество использованных ресурсов равно:

Трудовых = F9 =240;

Сырья = F10 = 345;

Финансов = F11=300.

Кроме того, из окна Результаты поиска решений возможно создание отчётов трёх типов: по результатам, устойчивости и пределам, каждый из которых записывается на отдельном листе. Отчёты формируются при анализе полученного оптимального решения.

Отчет по результатам (рис. 9) состоит из трех таблиц.

В таблице 1 (целевая ячейка) приведены сведения о целевой функции, в столбце "Исходно" - указывается значение целевой функции до вычислений, "Результат" - указывается значение целевой функции после вычислений.

Таблица 2 (изменяемые ячейки) содержит сведения о значениях искомых переменных, до и после решения задачи.

Таблица 3 (ограничения) показывает результаты оптимального решения для ограничений и для граничных условий. Здесь в графе "Формула" приведены зависимости, которые были введены в диалоговом окне "Поиск решения"); в графе "Разница" показано количество неиспользованного ресурса. Если ресурс используется полностью, то в графе "Состояние" указывается связанное; при неполном использовании ресурса в этой графе указывается не связан.

Рисунок 9

Отчет по устойчивости (рис. 10) состоит из двух таблиц.

В таблице 1 (изменяемые ячейки) приводятся следующие значения для переменных:

- результат решения задачи;

- редуцированная стоимость, т.е. дополнительные двойственные переменные vj, которые показывают, насколько изменяется целевая функция при принудительном включении единицы этой продукции в оптимальное решение;

- коэффициенты целевой функции;

-предельные значения приращения коэффициентов cj целевой функции при которых сохраняется набор переменных, входящих в оптимальное решение.

В таблице 2 (ограничения) приводятся аналогичные значения для ограничений:

- величины использованных ресурсов;

- теневые цены, т.е. двойственные оценки yi, которые показывают, как изменится целевая функция при изменении ресурсов на единицу;

- значения приращения ресурсов bi, при которых сохраняется оптимальный набор переменных, входящих в оптимальное решение.

Рисунок 10

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

- рассматриваются значения xj в оптимальном решении;

- рассматриваются нижние пределы изменения значений xj.

Кроме этого, в отчете указаны значения целевой функции при выпуске данного типа продукции на нижнем пределе. Далее приводятся верхние пределы изменения xj и значения целевой функции при выпуске продукции, вошедшей в оптимальное решение на верхних пределах.

Рисунок 11

Вывод: для максимальной прибыли необходима выпускать:

Продукта 1 = 45;

Продукта 2 = 30;

Продукта 3 = 0, т.е. его выпускать не выгодно.

При этом максимальная прибыль будет составлять 1080, а количество использованных ресурсов равно:

Трудовых = 240;

Сырьевых = 345;

Финансовых = 300.

не доиспользованных ресурсов:

Трудовых = 0, т.е. используются полностью;

Сырьевых = 75;

Финансовых = 0, т.е. используются полностью.

Задание 2

Этапы моделирования.

Необходимо спроектировать емкость заданного объема V0 оптимальных размеров: r - радиуса основания и h - высоты, имеющую форму прямого цилиндра с кромкой по периметру верхнего основания заданной высоты h0.

Дано:

h0 = 0.15

r1 = 0.5

r2 = 1.5

V0 = 10

Найти: Smin

Решение:

Поставим в формулу значения Sбок = r(h + h0) и Sосн = рr2:

Т.к. V0 = const, то выразим h = h(r) через формулу объёма цилиндра:

Следовательно:

Подставим в уравнение S полученную формулу:

Возьмем производную ф-ции:

Минимум и максимум ф-ции S = S (r) достигается в точках экстремума, т.е. когда S'(r) = 0. Возможны несколько вариантов решения:

1. Ур-е S'(r) = 0 имеет действительные решения, принадлежащие интервалу (r1; r2). Это означает, что ф-ция S = S(r) имеет точку экстремума в исследуемом интервале. Необходимо проверить является ли данная точка точкой минимума, противном в случае минимальным значением ф-ции будет являться одна из граничных точек.

2. Ур-е S'(r) = 0 имеет действительные решения, не принадлежащие интервалу (r1; r2). Это означает, что ф-ция на исследуемом интервале не имеет точек экстремума, а значит, расчет ведем находя минимальное значение, взяв 10 равноудалённых точек.

3. Ур-е S'(r) = 0 не имеет действительных решений. Данный вариант аналогичен предыдущему, т.к. в данном случае ф-ция не имеет экстремумов не только на заданном промежутке, но и на всей области её определения.

Кроме того, точками экстремума являются точки, в которых производная ф-ции не существует. Для ф-ции S'(r) такой точкой является r = 0, однако данная точка не удовлетворяет условиям задания, и ф-ция S = S (r) также не существует в данной точке.

Для нахождения точки экстремума будем использовать метод Ньютона:

,

где S'' - производная от S'.

Найдем S'':

Для выбора модели решения необходимо проверить выполнения условия R1< r <R2. Это можно сделать с помощью леммы Больцмана-Коши, если:

В моем случае условие не выполняется. Значит используем имитационную модель.

При

R1 = 0.6 мм S1 = 35,77 мм2

R2 = 0.7 мм S2 = 31,86 мм2

R3 = 0.8 мм S3 = 29,26 мм2

R4 = 0.9 мм S4 = 27,58 мм2

R5 = 1 мм S5 = 26,58 мм2

R6 = 1.1 мм S6 = 26,11 мм2

R7 = 1.2 мм S7 = 26,07 мм2

R8 = 1.3 мм S8 = 26,39 мм2

R9 = 1.4 мм S9 = 27,01 мм2

R10 = 1.5 мм S10 = 27,91 мм2

При r = 1,2 мм, достигается минимальная площадь S = 26,07 мм2

Составим блок-схему программы:

1

program Find_minimum;

{$APPTYPE CONSOLE}

uses

SysUtils;

const

V0 : integer = 10;

h0 : real = 0.15;

var

r_min, r_max, r, e, delta, S_min, r_mn : real;

str : string;

//Процедура вычисления значения S = S(r)

function S(r : real) : real;

begin

Result := 2*V0/(r) + 2*pi*r*h0 + 2*pi*sqr(r);

end;

//Процедура вычисления значения S' = S'(r)

function S_1(r : real) : real;

begin

Result := -2*V0/(sqr(r)) + 2*pi*h0 + 4*pi*r;

end;

//Процедура вычисления значения S'' = S''(r)

function S_2(r : real) : real;

begin

Result := 4*V0/(sqr(r)*r) + 4*pi;

end;

begin

//Ввод начальных значений.

Writeln('Vvedite r_min:');

Readln(str);

r_min := StrToFloat(str);

Writeln('Vvedite r_max:');

Readln(str);

r_max := StrToFloat(str);

Writeln('Vvedite e:');

Readln(str);

e := StrToFloat(str);

//Проверка выполнения условия леммы Больцмана-Коши.

If (S_1(r_min)<0) and (S_1(r_max)>0) or (S_1(r_min)>0) and (S_1(r_max)<0)

then begin

//Условие выполняется, расчет методом Ньютона.

//Вычисляем середину отрезка, как начальное значение для первой итерации.

r := (r_min + r_max)/2;

Repeat

delta := S_1(r)/S_2(r);

r := r - delta

until Abs(delta) < e;

S_min := S(r);

//Выводим значения.

WriteLn('Rachet metodom Nutona.');

WriteLn('Minimum pri r = ' + FloatToStr(r) + '; S_min = ' + FloatToStr(S_min));

end

else begin

//Условие не выполнено, рассчитываем по точкам.

//Присваиваем начальные значения S_min и r.

S_min := S(r_min);

r := r_min;

//Рассчитываем интервалы.

delta := (r_max - r_min)/10;

//Находим минимальное значение.

//Повторяем цикл от начала до конца отрезка с шагом delta.

Repeat

//Вычисляем точку.

r := r + delta;

//Если значение в точке меньше S_min, то сохраняем значения.

If S_min < S(r)

then begin

S_min := S(r);

r_mn := r;

end;

until r >= r_max;

//Выводим значения.

WriteLn('Rachet metodom tochek.');

WriteLn('Minimum pri r = ' + FloatToStr(r_mn) + '; S_min = ' + FloatToStr(S_min));

end;

Readln;

end.

Размещено на Allbest.ru


Подобные документы

  • Нахождение минимума целевой функции для системы ограничений, заданной многоугольником. Графическое решение задачи линейного программирования. Решение задачи линейного программирования с использованием таблицы и методом отыскания допустимого решения.

    курсовая работа [511,9 K], добавлен 20.07.2012

  • Основные понятия математического линейного программирования. Постановка и методы решения заданий целочисленного и параметрического составления программ. Примеры вычисления задач с параметрами в целевой функции и в свободных членах системных ограничений.

    дипломная работа [432,0 K], добавлен 25.10.2010

  • Математическая модель задачи. Построение области допустимых планов. Построение линии уровня целевой функции. Оптимизация целевой функции. Точка контакта линии уровня с областью допустимых планов. Максимальное значение и вектор-градиент целевой функции.

    презентация [534,8 K], добавлен 11.05.2013

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

    лабораторная работа [61,4 K], добавлен 07.01.2011

  • Задачи линейного программирования. Многоугольник решений системы. Вычисление значения целевой функции. Интервальная группировка данных. Среднее квадратическое отклонение выборки. Вычисление коэффициента корреляции. Закон распределения случайной величины.

    контрольная работа [389,6 K], добавлен 11.01.2012

  • Исследование типовых примеров задач оптимизации. Реализация программы в среде MatLab для их решения. Изучение функций нелинейной оптимизации. Определение оптимума целевой функции одной или нескольких переменных. Поиск оптимальных настроек регулятора.

    лабораторная работа [188,8 K], добавлен 07.12.2016

  • Определение варианта организации функционирования экономического объекта. Каноническая форма задачи линейного программирования. Ввод данных в таблицу Excel. Анализ коэффициентов целевой функции. Пределы изменения дефицитных и недефицитных ресурсов.

    дипломная работа [4,2 M], добавлен 05.07.2013

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

    курсовая работа [3,7 M], добавлен 07.06.2010

  • Решение общей задачи линейного программирования симплексным методом, графическое построение целевой функции. Его проверка с помощью встроенной функции "Поиск решения" MS Excel. Определение плана перевозок при наименьших суммарных транспортных затрат.

    контрольная работа [362,3 K], добавлен 03.11.2011

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

    контрольная работа [1,1 M], добавлен 09.11.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.