ДИПЛОМНАЯ РАБОТА
Решение
задач оптимизации с применением пакетов прикладных программ
Караганда 2014
Содержание
Введение
. Программы математического моделирования
.1 Современные математические пакеты
.2 Функциональные возможности MS Excel
.3 Вычислительные возможности cреды MATLAB
Решение задач оптимизации с применением пакетов прикладных программ
.1 Решение задач оптимизации с применением MS Excel
.2 Решение задач оптимизации с применением MATLAB
Заключение
Список использованной литературы
Приложение 1
Приложение 2
Введение
Задачи оптимизации встречаются практически во всех сферах человеческой деятельности, так как любое разумное действие является в определенном смысле и оптимальным. Ведь оно выбрано после сравнения с другими (менее предпочтительными) действиями.
В настоящее время оптимизация находит применение в науке, технике и в любой другой области человеческой деятельности. Сюда относится, например, задача организации производства с целью получения максимальной прибыли при заданных затратах ресурсов; задача управления системой гидростанций и водохранилищ с целью получения максимального количества электроэнергии; задача о космическом перелете из одной точки пространства в другую наибыстрейшим образом или с наименьшей затратой энергии; задача о быстрейшем нагреве печи до заданного температурного режима и многие другие задачи.
Оптимизация - целенаправленная деятельность, заключающаяся в получении наилучших результатов при соответствующих условиях.
Поиски оптимальных решений привели к
созданию специальных математических методов и уже в 18 веке были заложены
математические основы оптимизации (вариационное исчисление, численные методы и
др). Однако до второй половины 20 века методы оптимизации во многих областях
науки и техники применялись очень редко, поскольку практическое использование
математических методов оптимизации требовало огромной вычислительной работы,
которую без ЭВМ реализовать было крайне трудно, а в ряде случаев - невозможно.
Если отвлечься от экономического, физического, химического или иного содержания
этих задач, то все они сводятся к следующей оптимизационной задаче [1]. Найти
минимум (или максимум) функции или функционала
на некотором множестве
некоторого
пространства
, т.е.
Здесь
выражает качество управления
, а
множество
определяется
ограничениями на ресурсы, возможностями экономических или других процессов в
изучаемой системе.
В зависимости от своей постановки, любая из задач оптимизации может решаться различными методами, и наоборот - любой метод может применяться для решения многих задач. Методы оптимизации могут быть скалярными (оптимизация проводится по одному критерию), векторными (оптимизация проводится по многим критериям), поисковыми (включают методы регулярного и методы случайного поиска), аналитическими (методы дифференциального исчисления, методы вариационного исчисления и др.), вычислительными (основаны на математическом программировании, которое может быть линейным, нелинейным, дискретным, динамическим, стохастическим, эвристическим и т.д.), теоретико-вероятностными, теоретико-игровыми и др. Подвергаться оптимизации могут задачи, как с ограничениями, так и без них.
Дипломная работа посвящена решению различных задач оптимизации в табличном процессоре MS Excel и в среде MATLAB. Целью дипломной работы является привлечение возможностей табличного процессора MS Excel и системы MATLAB при решении различных задач оптимизации, сюда включаются средства визуализации и средства программирования. В этом заключается новизна данной работы.
В ходе работы над дипломным проектом ставились следующие задачи:
· Изучение функциональных возможностей MS Excel.
· Изучение вычислительных возможностей системы MATLAB.
· Изучение графических возможностей системы MATLAB.
· Освоение средств программирования в системе MATLAB.
· Изучение численных методов решения задач одномерной оптимизации.
· Изучение численных методов решения задач многомерной оптимизации.
· Построение математических моделей некоторых экономических задач оптимизации.
· Изучение методов решения построенной математической модели.
· Численная реализация построенной математической модели в табличном процессоре MS Excel.
· Численная реализация методов оптимизации в системе MATLAB.
Табличный процессор MS Excel, являясь лидером на рынке программ обработки электронных таблиц, определяет тенденции развития в этой области. Дополнительные возможности программы облегчают решение сложных прикладных задач. В программу MS Excel встроена удобная подсистема помощи, которая в любой момент готова выдать необходимую справку.
«Простые задачи должны решаться просто». Этому постулату как нельзя лучше отвечают вычислительные возможности программы MS Excel, которые без оговорки можно назвать безграничными. Применение электронных таблиц упрощает работу с данными и позволяет получать результаты без проведения расчётов вручную или специального программирования.
Программа MS Excel позволяет решать сложные задачи, связанные с финансовой и бухгалтерской работой предприятий: проводить широкий круг сложных вычислений в электронных таблицах, легко и быстро анализировать большой объем данных; а также приобретать навыки записи и редактирования макросов, с целью применения их для часто повторяющихся операций и автоматизации работы.
Коммерциализация современной жизни предполагает принятие оптимальных управленческих решений. Оптимизация может быть достигнута только при постановке математического моделирования всех экономических и социальных систем. Оптимизация в модели заключается в максимизации или минимизации какой-либо целевой функции при условии выполнения различных ограничений. Например, предприятию нужно получить максимум прибыли при ограниченных временных, трудовых, материальных и финансовых ресурсах. Многие расчеты могут быть выполнены в оптимизационной программе «Поиск решения», встроенной в MS Excel.
Дипломная работа не предполагает глубокого изучения теории принятия решений или линейного программирования, не выходит за рамки возможностей MS Excel. Одно из направлений исследования в данной работе практическое освоение методов автоматизации расчетов в экономико-математических моделях на примере двух задач производства с применением MS Excel. Второе направление исследования в дипломной работе - применение системы MATLAB для решения задач оптимизации для функций одной и нескольких переменных.
MATLAB - это высокопроизводительный язык для технических расчетов. Он включает в себя вычисления, визуализацию и программирование в удобной для пользователя среде. Типичное использование MATLAB - это:
- математические вычисления;
- создание алгоритмов;
- моделирование;
- анализ данных, исследования и визуализация;
- научная и инженерная графика;
- разработка приложений, включая создание графического интерфейса.
Численные методы оптимизации - это новейшие разделы математики, которые получили свое развитие только во второй половине XX века. Многие проблемы в задачах оптимизации остаются актуальными и по сей день. К таким проблемам относится, например, проблема выбора начального приближения к точке экстремума или проблема определения области поиска точек экстремума в задачах нелинейного программирования. Мощные графические средства системы MATLAB позволяют получить трехмерные объемные графики функции в задачах оптимизации. И в таких задачах указанные проблемы решаются графическим способом.
В данном случае имеет место актуальность поставленных в дипломном проекте задач. Дипломная работа состоит из введения, двух разделов, заключения, списка использованной литературы и приложений.
В первом разделе проводится обзор и сравнительный анализ современных математических пакетов; исследуются функциональные возможности табличного процессора MS Excel, в частности, особое внимание уделено возможности решения задач оптимизации при помощи надстройки в MS Excel «Поиск решения»; изучается система MATLAB, как мощное средство решения различных инженерных и прикладных задач. Представлены вычислительные, графические возможности системы MATLAB, а также средства программирования в среде MATLAB.
Во втором разделе решаются следующие задачи:
- Сведение задачи производства к задаче линейного программирования.
- Решение полученной задачи линейного программирования в табличном процессоре MS Excel.
- Численная реализация задач одномерной минимизации, задач безусловной и условной минимизации функций многих переменных в системе MATLAB с привлечением графических средств системы.
В заключении подводятся итоги проделанной работы. А именно, в ходе работы над дипломным проектом были решены поставленные задачи. Основным результатом дипломной работы является численная реализация методов оптимизации для функций одной и многих переменных.
В приложении 1 представлено поэтапное решение задачи составление производственного плана с применением табличного процессора MS Excel.
В приложении 2 представлены программы, написанные в среде MATLAB, вычисления точек экстремума функций одной и многих переменных различными методами оптимизации.
. Программы математического моделирования
.1 Современные математические пакеты
Современные математические пакеты можно использовать и как обычный калькулятор, и как средства для упрощения выражений при решении каких-либо задач, и как генератор графики или даже звука. Стандартными стали также средства взаимодействия с Интернетом, и генерация HTML-страниц выполняется теперь прямо в процессе вычислений. Теперь можно решать задачу и одновременно публиковать для коллег ход ее решения на своей домашней странице.
Рассказывать о программах математического моделирования и возможных областях их применения можно очень долго, но мы ограничимся лишь кратким обзором ведущих программ, укажем их общие черты и различия. В настоящее время практически все современные CAE-программы (Computer Aided Engineering, пакеты математического моделирования) имеют встроенные функции символьных вычислений.
Так что же делают эти программы и как они помогают математикам? С помощью описываемого ПО можно сэкономить массу времени и избежать многих ошибок при вычислениях. Отметим, что спектр задач, решаемых подобными системами, очень широк [2]:
- проведение математических исследований, требующих вычислений и аналитических выкладок;
- разработка и анализ алгоритмов;
- математическое моделирование и компьютерный эксперимент;
- анализ и обработка данных;
- визуализация, научная и инженерная графика;
- разработка графических и расчетных приложений.
Наиболее известными и приспособленными для математических символьных вычислений считаются следующие математические пакеты:
- Maple;
- MathCad;
- Mathematica;
- MATLAB.
Пакет Mathematica, представленный на рисунке 1, повсеместно применяется при расчетах в современных научных исследованиях и получил широкую известность в научной и образовательной среде.
Несмотря на свою направленность на
серьезные математические вычисления, системы класса Mathematica просты в
освоении и могут использоваться довольно широкой категорией пользователей -
студентами и преподавателями вузов, инженерами, аспирантами, научными
работниками и даже учащимся математических классов общеобразовательных и
специальных школ. При этом широчайшие функции программы не перегружают ее
интерфейс и не замедляют вычислений. Mathematica неизменно демонстрирует
высокую скорость символьных преобразований и численных расчетов [3]. Программа
Mathematica из всех рассматриваемых систем наиболее полна и универсальна,
однако у каждой программы есть как свои достоинства, так и недостатки.
Рисунок 1. Mathematica
Таким образом, Mathematica - это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемно-ориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой - интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Mathematica, как система программирования, имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств, а с помощью пакетов расширения появляется возможность подстраиваться под запросы любого пользователя.
К недостаткам системы Mathematica следует отнести разве что весьма необычный язык программирования, обращение к которому, впрочем, облегчает подробная система помощи.
Программа Maple - своего рода патриарх в семействе систем символьной математики и до сих пор является одним из лидеров среди универсальных систем символьных вычислений. Она предоставляет пользователю удобную интеллектуальную среду для математических исследований любого уровня и пользуется особой популярностью в научной среде. Отметим, что символьный анализатор программы Maple является наиболее сильной частью этого ПО, поэтому именно он был позаимствован и включен в ряд других CAE-пакетов, таких как MathCad и MATLAB, а также в состав пакетов для подготовки научных публикаций Scientific WorkPlace и Math Office for Word [4].
Maple предоставляет удобную среду
для компьютерных экспериментов, в ходе которых пробуются различные подходы к
задаче, анализируются частные решения, а при необходимости программирования
отбираются требующие особой скорости фрагменты. Пакет позволяет создавать
интегрированные среды с участием других систем и универсальных языков
программирования высокого уровня. Когда расчеты произведены и требуется
оформить результаты, то можно использовать средства этого пакета для
визуализации данных и подготовки иллюстраций для публикации. Для завершения
работы остается подготовить печатный материал в среде Maple, а затем можно
приступать к очередному исследованию. Работа проходит интерактивно -
пользователь вводит команды и тут же видит на экране результат их выполнения
(рисунок 2). При этом пакет Maple совсем не похож на традиционную среду
программирования, где требуется жесткая формализация всех переменных и действий
с ними. Здесь же автоматически обеспечивается выбор подходящих типов переменных
и проверяется корректность выполнения операций, так что в общем случае не
требуется описания переменных и строгой формализации записи.
Рисунок 2. Maple
- это удачно сбалансированная система и бесспорный лидер по возможностям символьных вычислений для математики. При этом оригинальный символьный движок сочетается здесь с легко запоминающимся структурным языком программирования, так что Maple может быть использована как для небольших задач, так и для серьезных проектов.
К недостаткам системы Maple можно отнести лишь ее некоторую «задумчивость», причем не всегда обоснованную, а также очень высокую стоимость этой программы.
Система MATLAB, представленная на рисунке 3, относится к среднему уровню продуктов, предназначенных для символьной математики, но рассчитана на широкое применение в сфере CAE.- одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение и в самом названии системы - MATrix LABoratory, то есть матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что данная ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.