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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    4,15 Мб
  • Опубликовано:
    2014-09-04
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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














ДИПЛОМНАЯ РАБОТА

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












Караганда 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, то есть матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что данная ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.

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

Рисунок 3. MATLAB

Из недостатков системы MATLAB можно отметить невысокую интегрированность среды (очень много окон, с которыми лучше работать на двух мониторах), не очень внятную справочную систему (объем фирменной документации достигает почти 5 тыс. страниц, что делает ее трудно обозримой) и специфический редактор кода MATLAB-программ (рисунок 4). Сегодня система MATLAB широко используется в технике, науке и образовании, но все-таки она больше подходит для анализа данных и организации вычислений, нежели для чисто математических выкладок.

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

Рисунок 4. MathCad

Для небольшого объема вычислений MathCad идеален - здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде (MathCad предоставляет широкие возможности для оформления результатов, вплоть до публикации в Интернете). Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft MS Excel прямо внутри MathCad-документа [5].

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

В качестве более дешевых, простых, можно отметить такие пакеты, как UMS, Microsoft MS Excel.

Когда-то системы символьной математики были ориентированы исключительно на узкий круг профессионалов и работали на больших компьютерах. Но с появлением ПК эти системы были переработаны под них и доведены до уровня массовых серийных программных систем. Сейчас на рынке сосуществуют системы символьной математики самого разного калибра - от рассчитанной на широкий круг потребителей системы MathCad до компьютерных монстров Mathematica, MATLAB и Maple, имеющих тысячи встроенных и библиотечных функций, широкие возможности графической визуализации вычислений и развитые средства для подготовки документации.

Отметим, что практически все эти системы работают не только на персональных компьютерах, оснащенных популярными операционными системами Windows, но и под управлением операционных системы Linux, UNIX, Mac OS, а также на КПК [6].

Перейдем к пакетам наиболее часто используемых в школах при проведении уроков математики в старших классах. К ним относятся: Universal Math Solver <#"869912.files/image010.gif">

Рисунок 5. Universal Math Solve

К сожалению, в школьной практике нет возможности использовать такие мощные математические пакеты, как Mathematica, Mathcad, MathLab, Maple из-за дороговизны их лицензионных копий. Однако офисные приложения MS Office есть в каждой школе. Применение математической оболочки офисного табличного процессора MS Excel позволяет решать математические задачи высокой сложности.

.2 Функциональные возможности MS Excel

MS Excel - программа, используемая для обработки данных в табличном виде. Термин электронная таблица используется для обозначения простой в использовании компьютерной программы, предназначенной для обработки данных. Обработка включает в себя [9]:

-  проведение различных вычислений с использованием мощного аппарата функций и формул;

-  исследование влияния различных факторов на данные;

-  решение задач оптимизации;

-  получение выборки данных, удовлетворяющих определенным критериям;

-  построение графиков и диаграмм;

-  статистический анализ данных.

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

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

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

В Ехсel преимущественно используются стандартные для среды Windows элементы интерфейса - рабочая поверхность (окно рабочей книги), строка состояния, меню, диалоговые окна, панели инструментов, полосы прокрутки, кнопки управления и т.д. Эти и другие элементы интерфейса MS Excel отмечены на рисунке 6. Остановимся на них подробнее.

Рисунок 6. Интерфейс MS Excel

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

Непосредственно под строкой заголовка расположена строка главного меню, включающего основные команды управления работой приложения. Взаимодействие с MS Excel осуществляется посредством выбора команд из основного меню. Все команды являются иерархическими. В результате выбора одной из таких команд на экране появляется ее ниспадающее меню. В состав главного меню входят меню File (Файл), Edit (Правка), View (Вид), Insert (Вставка). Format (Формат), Tool (Сервис). Data (Данные), Window (Окно) и Help (?). В левом углу находится значок управляющего меню книги, а в правом - кнопки управления размером окна документа. Чтобы открыть меню, необходимо щелкнуть левой кнопкой мыши на его названии или же нажать комбинацию клавиш <Аlt+буква>, где параметр буква представляет собой ту букву, которая подчеркнута в имени соответствующего меню.Excel располагает 54 панелями инструментов. По умолчанию в окне MS Excel непосредственно под строкой меню отображается панель инструментов Standard (Стандартная) и панель инструментов Formatting (Форматирование). Панель инструментов Standard фактически представляет собой особый тип меню в котором каждая команда представлена отдельной кнопкой. На этой панели размещены кнопки вызова тех команд, которые используются чаще всего: Create (Создать), Open (Открыть). Save (Сохранить), Print (Печать) и т.д.

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

Рабочий лист MS Excel разделен на строки и столбцы. Заголовки столбцов и строк могут обозначаться целыми числами или же заголовки столбцов - буквами латинского алфавита, а строк - цифрами. На пересечении строки и столбца находится ячейка. Каждая ячейка имеет собственный адрес, например адрес ячейки находящейся на пересечении первого столбца и первой строки, может быть записан как А1. При числовой системе обозначения столбцов и строк, ее адрес выглядит как R1C1. Адрес активной ячейки (т.е. той ячейки, которая выделена в рабочем листе в данный момент) выводится в поле имени, которое расположено слева от строки формул.

Ниже окна рабочей книги находится строка состояния, в которой отображается информация о действиях, выполняемых в рабочей таблице: Ready (Готово), Enter (Ввод), Edit (Правка). Справа от строки состояния находятся индикаторы состояния различных режимов: CAPS, NUM.

Полосы прокрутки имеются только у активного окна книги. Они располагаются вдоль правой и нижней сторон окна. С помощью стрелок, расположенных на концах полос прокрутки, можно за один щелчок мышью перемешать лист на одну строку или один столбец. С помощью ползунка, расположенного на полосе прокрутки, можно перемещаться по листу на произвольное расстояние. Для перемещения на один полный экран следует щелкнуть кнопкой мыши на свободной от ползунка области полосы прокрутки. Напомним, что в поле имени слева от строки формул всегда выводится адрес активной ячейки, независимо от того, видна ли эта ячейка сейчас в окне или нет. Для перемещения за пределы активной области необходимо перетаскивать ползунок но полосе прокрутки при нажатой клавише <Shift>.

Ячейка - это основной элемент электронной таблицы только в ней может содержаться какая-либо информация: текст, значения, формулы.

Структура ячейки MS Excel содержит 5 уровней:

1.      Видимое на экране изображение (т.е. отформатированный текст) или результат вычисления формулы).

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

.  Формулу, которая может состоять из текста, числа или встроенных функций.

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

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

Копирование и редактирование данных осуществляется стандартным для Windows способом.

Данные в MS Excel выводятся на экран в определенном формате. По умолчанию информация выводиться в формате Общий. Можно изменить формат представления информации в выделенных ячейках. Для этого выполните команду Формат → Ячейки. Появится окно диалога “Формат ячеек”, в котором нужно выбрать вкладку “Число“.

В левой части окна диалога “Формат ячеек” в списке Числовые форматы приведены названия всех используемых в MS Excel форматов. Из списка Числовые форматы выбрана строка (все форматы). В правом окне Тип можно просмотреть все форматные коды, которые используются для представления на экране информации.

Для представления данных можно использовать встроенные форматные коды MS Excel или ввести пользовательский код формата. Для ввода форматного кода выберите строку (все форматы) и введите символы форматного кода в поле ввода Тип. Любая последовательность введенных в ячейку символов, которая не может быть интерпретирована MS Excel как число, формула, дата, время дня, логическое значение или значение ошибки, интерпретируется как текст. Введенный текст выравнивается в ячейке по левому краю.

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

- ввести значение первого элемента прогрессий в выбранную ячейку;

- выделить блок ячеек под требуемое количество членов прогрессии (либо в дальнейшем потребуется указать значение последнего элемента);

- выполнить команду меню Правка > Заполнить > Прогрессия;

- в появившемся диалоговом окне Прогрессия указать тип и параметры формируемой последовательности значений;

Основным достоинством электронной таблицы MS Excel является наличие мощного аппарата формул и функций. Любая обработка данных в MS Excel осуществляется при помощи этого аппарата. Можно складывать, умножать, делить числа, извлекать квадратные корни, вычислять синусы и косинусы, логарифмы и экспоненты. Помимо чисто вычислительных действий с отдельными числами, можно обрабатывать отдельные строки или столбцы таблицы, а также целые блоки ячеек. В частности, находить среднее арифметическое, максимальное и минимальное значение, среднеквадратичное отклонение, наиболее вероятное значение, доверительный интервал и многое другое.

Для удобства работы функции в MS Excel разбиты по категориям: функции управления базами данных и списками, функции даты и времени, DDE/Внешние функции, инженерные функции, финансовые, информационные, логические, функции просмотра и ссылок, статистические, текстовые и математические.

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

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

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

Чтобы использовать функцию, нужно ввести ее как часть формулы в ячейку рабочего листа. Формулой в MS Excel называется последовательность символов, начинающаяся со знака равенства “=“. В эту последовательность символов могут входить постоянные значения, ссылки на ячейки, имена, функции или операторы. Результатом работы формулы является новое значение, которое выводится как результат вычисления формулы по уже имеющимся данным. Если значения в ячейках, на которые есть ссылки в формулах, меняются, то результат изменится автоматически.

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

Если функция появляется в самом начале формулы, ей должен предшествовать знак равенства, как и во всякой другой формуле. Аргументы функции записываются в круглых скобках сразу за названием функции и отделяются друг от друга символом точка с запятой “;”. Скобки позволяют MS Excel определить где начинается и где заканчивается список аргументов. Внутри скобок должны располагаться аргументы. Помните о том, что при записи функции должны присутствовать открывающая и закрывающая скобки, при этом не следует вставлять пробелы между названием функции и скобками.

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

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

В формулах можно использовать четыре вида операторов:

1.      Арифметические операторы. Результатом выполнения арифметических операций является число.

2.      Текстовые.

.  Операторы сравнения используются для обозначения операций сравнения. Результатом выполнения операции сравнения является булевская (логическая) переменная, принимающая значение ИСТИНА или ЛОЖЬ.

.  Адресные операторы используются для объединения диапазонов ячеек. Порядок выполнения действий в формулах аналогичен приоритетам математических операций.Excel содержит более 400 встроенных функций. Поэтому непосредственного вводить с клавиатуры в формулу названия функций и значения входных параметров не всегда удобно. В MS Excel есть специальное средство для работы с функциями - Мастер функций. При работе с этим средством вам сначала предлагается выбрать нужную функцию из списка категорий, а затем в окне диалога предлагается ввести входные значения. Мастер функций вызывается командой Вставка → Функции.

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

Всего Microsoft MS Excel предлагает вам 9 типов плоских диаграмм и 6 типов объемных. Эти 15 типов представленных на рисунке 7 включают 102 формата.

Для построения диаграммы выполняют команду: Вставка → Диаграмма Мастер диаграмм. Метками строк и столбцов называются заголовки строк и столбцов. Метки столбцов являются текстом легенды. Легенда представляет собой прямоугольник, в котором указывается каким цветом или типом линий выводятся на графике или диаграмме данные из той или иной строки.

Рисунок 7. Мастер диаграмм

Редактирование диаграммы выполняется двойным щелчком мыши в любом месте диаграммы. Команда Формат обозначения легенды устанавливает цвет линий, их стиль и толщину. Для форматирования объекта диаграммы используют контекстное меню. Для замены одного ряда данных в диаграмме другим применяют команду Формат ряда. Изменяя линии графика, можно изменить данные на рабочем листе. Команда Тип диаграмм позволяет изменять тип уже существующей диаграммы. Команда Автоформат меняет не только тип диаграммы, но и устанавливает стандартные параметры диаграммы. Для получения трехмерной диаграммы на 2 шаге построения диаграммы выберите пространственный образец. Команда Объемный вид изменяет пространственную ориентацию диаграммы.

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

Можно изменить формат диаграммы, которую MS Excel строит по умолчанию. Команда Автоформат создает пользовательский автоформат для построения диаграмм и графиков. Для изменения формата построения стандартных диаграмм в окне диалога “Параметры” выполните команду Сервис → Параметры и выберите вкладку “Диаграмма”. XY-точечная диаграмма является наиболее подходящим типом диаграммы для обработки результатов лабораторных исследований.

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

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

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

При выборе Данные → Сортировка открывается окно диалога “Сортировка диапазона”, которое позволяет указать поля для сортировки и определить критерий сортировки.

Фильтрация данных в списке. В MS Excel списком называется снабженная метками последовательность строк рабочего листа, содержащих в одинаковых столбцах данные одного типа. Фильтрация списка позволяет находить и отбирать для обработки часть записей в списке, таблице, базе данных. В отфильтрованном списке выводятся на экран только те строки, которые содержат определенное значение или отвечают определенным критериям. При этом остальные строки оказываются скрытыми.

В MS Excel для фильтрации данных используются команды Автофильтр и Расширенный фильтр. В случае простых критериев для выборки нужной информации достаточно команды Автофильтр. При использовании сложных критериев следует применять команду Расширенный фильтр. Обе команды вызываются в результате выбора команды Данные → Фильтр.

Большинство задач, решаемых с помощью электронной таблицы, предполагают нахождение искомого результата по известным исходным данным. Но в MS Excel есть инструменты, позволяющие решить и обратную задачу: подобрать исходные данные для получения желаемого результата. Надстройка Microsoft MS Excel «Поиск решения» является мощным средством поиска решений и применяется при решении задач оптимизации. В школьном курсе алгебры такими задачами являются решение уравнения, по начальному значению. Одним из таких инструментов является Поиск решения, который особенно удобен для решения задач оптимизации (рисунок 8).

табличный математических пакет вычислительный

Рисунок 8. Работа надстройки «Поиск решения»

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

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

-  выбрать команду Сервис, Надстройки;

-  установить флажок «Поиск решения»;

-  щелкнуть на кнопке ОК.

Рассмотрим второй способ установки этой надстройки: произвести установку файла Solver.xla. После установки и подключения надстройки в MS Excel 2007/2010 на вкладке "Данные" появляется группа "Анализ" с новой командой "Поиск Решения". В MS Excel 2003 - появляется новый пункт меню "Сервис" с одноименным названием. Поиск решения - стандартная надстройка, существуют также и другие надстройки для MS Excel <#"869912.files/image014.gif">. Для нахождения корней уравнения выполним следующие действия. В ячейку С3 (рисунок 9) введем формулу для вычисления значения функции, стоящей в уравнении слева от знака равенства. В качестве аргумента используем ссылку на ячейку С2, т.е. =С2^2-5*C2+6.

Рисунок 9. Окно диалога Подбор параметра

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

После нажатия на кнопку Ok MS Excel выведет окно диалога Результат подбора параметра. Если подобранное значение необходимо сохранить, то нажмите на Оk, и результат будет сохранен в ячейке, заданной ранее в поле Изменяя значения ячейки. Для восстановления значения, которое было в ячейке С2 до использования команды Подбор параметра, нажмите кнопку Отмена.

При подборе параметра MS Excel использует итерационный (циклический) процесс. Количество итераций и точность устанавливаются в меню Сервис/Параметры/вкладка Вычисления. Если MS Excel выполняет сложную задачу подбора параметра, можно нажать кнопку Пауза в окне диалога Результат подбора параметра и прервать вычисление, а затем нажать кнопку Шаг, чтобы выполнить очередную итерацию и просмотреть результат. При решении задачи в пошаговом режиме появляется кнопка Продолжить - для возврата в обычный режим подбора параметра.

Для того чтобы найти второй корень, в качестве начального приближения в ячейку C2 поместим константу 5 и после этого запустим процесс Подбор параметра.

После открытия диалога Поиск решения, представленного на рисунке 10, необходимо выполнить следующие действия [12].

В поле Установить целевую ячейку ввести адрес ячейки, содержащей формулу для вычисления значений оптимизируемой функции, в нашем примере целевая ячейка - это С4, а формула в ней имеет вид =C3^2-5*C3 + 6 (рисунок 10).

Рисунок 10. Окно диалога Поиск решения

Для максимизации значения целевой ячейки, установить переключатель максимальному значению в положение 8, для минимизации используется переключатель минимальному значению, в нашем случае устанавливаем переключатель в положение значению и вводим значение 0.

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

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

Для запуска процесса поиска решения нажать кнопку Выполнить.

Для сохранения полученного решения необходимо использовать переключатель Сохранить найденное решение в открывшемся окне диалога Результаты поиска решения. После чего рабочий лист примет вид, представленный на рисунок 11. Полученное решение зависит от выбора начального приближения, которое задается в ячейке С4 (аргумент функции). Если в качестве начального приближения в ячейку С4 ввести значение, равное1,0, то с помощью Поиска решения найдем второй корень, равный 2,0.

Рисунок 11. Результаты поиска

Опции, управляющие работой Поиска решения, задаваемые в окне Параметры (окно появляется, если нажать на кнопку Параметры окна Поиск решения), следующие (рисунок 12).

Максимальное время - ограничивает время, отведенное на процесс поиска решения (по умолчанию задано 100 секунд, что достаточно для задач, имеющих около 10 ограничений, если задача большой размерности, то время необходимо увеличить).

Рисунок 12. Настройка параметров Решателя

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

Относительная погрешность - задает точность, с которой определяется соответствие ячейки целевому значению или приближение к указанным ограничениям (десятичная дробь от 0 до 1).

Допустимое отклонение - задается в % только для задач с целочисленными ограничениями. Поиск решения в таких задачах сначала находит оптимальное нецелочисленное решение, а потом пытается найти ближайшую целочисленную точку, решение в которой отличалось бы от оптимального не более, чем на указанное данным параметром количество процентов.

Сходимость - когда относительное изменение значения в целевой ячейке за последние пять итераций становится меньше числа (дробь из интервала от 0 до 1), указанного в данном параметре, поиск прекращается.

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

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

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

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

Сохранить модель поиска решения можно следующими способами:

1.      При сохранении книги MS Excel после поиска решения все значения, введенные в окнах диалога Поиск решения, сохраняются вместе с данными рабочего листа. С каждым рабочим листом в рабочей книге можно сохранить один набор значений параметров Поиска решения.

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

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

.3 Вычислительные возможности cреды MATLAB

Система MATLAB (сокращение от MATrix LABoratory - МАТричная ЛАБоратория) является интерактивной системой для выполнения инженерных и научных расчетов, ориентированной на работу с массивами данных. Система использует математический сопроцессор и допускает возможность обращения к программам, написанным на языках Fortran, C, C++.

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

Важными достоинствами системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде текстовых m-файлов и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создавать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач [13].

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

Рабочая среда MATLAB. Запуск MATLAB 6.x приводит к открытию рабочей среды.

Рабочая среда содержит следующие элементы:

· меню;

· панель инструментов с кнопками и раскрывающимся списком;

· окно с вкладками Launch Pad и Workspace, из которого можно получить простой доступ к различным модулям Toolbox и к содержимому рабочей среды;

· окно с вкладками Command History и Current Directory, предназначенное для просмотра и повторного вызова ранее ввденных команд, а также для установки текущего каталога;

· командное окно;

· строку состояния.

Все команды следует набирать в командной строке. Для того чтобы MATLAB выполнила команду или вычислила выражение, набор любой команды или выражения должен заканчиваться нажатием на кнопку <Enter>.

Арифметические вычисления. Встроенные математические функции MATLAB позволят находить значения различных выражений. MATLAB предоставляет возможность управления форматом вывода результата. Команды для вычисления выражений имеют вид, свойственный всем языкам программирования высокого уровня [14].

Использование переменных. В MATLAB предусмотрена возможность работы с переменными. При этом нет необходимости задавать тип вводимой переменной.

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

Сохранение рабочей среды. Один из способов сохранения значений всех переменных - это использование в меню File пункта Save Workspace As. По умолчанию предлагается сохранить файл в подкаталоге work основного каталога MATLAB. MATLAB сохранит результаты работы в файле с расширением *.mat. Теперь можно закрыть MATLAB одним из следующих способов:

· выбрать в меню File пункт Exit MATLAB;

· нажать клавиши <Ctrl>+<Q>;

· набрать команду Exit в командной строке и нажать <Enter>;

· нажать на кнопку с крестиком в правом верхнем углу окна программы

MATLAB.

Для восстановления значений переменных следует открыть созданный файл при помощи подпункта Open меню File. Теперь все перменные, определенные в прошлом сеансе, стали доступными. Их можно использовать в следующем сеансе.

Сохранение и восстановление переменных рабочей среды можно выполнить и из командной строки. Для этого служат команды save и load. В конце сеанса работы с MATLAB надо выполнить команду

>>save session_1

В начале следующего сеанса работы для считывания переменных следует ввести коианду

>>load session_1

Подробную информацию о командах save и load можно получить, набрав в командной строке help save или help load. Переменные в файлах с расширением *.mat хранятся в двоичном виде.

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

>> diary session_1.txt

При остановке записи сеанса работы, наберите

>> diary off

Рабочее пространство. Рабочее пространство - это область памяти, доступная из командной строки MATLAB. Две команды, who и whos, показывают текущее содержание рабочего пространства. Команда who выдает краткий список, а команда whos размер и используемую память.

Действие над векторами. В MATLAB выделяется две существенно различающиеся группы действий над векторами: векторные действия - такие, которые предусмотрены векторным исчислением в математике, и действия по преобразованию элементов векторов.

Сложение, вычитание, транспонирование, умножение вектора на число, умножение векторов осуществляется при помощи знаков арифметических действий.

Ввод матриц. При вводе матриц необходимо соблюдать основные условия:

· отделять элементы строки пробелами или запятыми;

· использовать точку с запятой для обозначения окончания каждой строки, заключать весь список элементов квадратными скобками [];

· при обращении к элементам массива использовать круглые скобки ();

Матрицы в MATLAB можно вводить несколькими способами:

· вводить полный список элементов;

· загружать матрицы из внешних файлов;

· генерировать матрицы, используя встроенные функции;

· создавать матрицы с помощью ваших собственных функций в М - файлах.

Загрузка матриц. Команда load считывает двоичные файлы, содержащие матрицы, созданные в MATLAB ранее, или текстовые файлы, содержащие численные данные. Текстовые файлы должны быть сформированы в виде прямоугольной таблицы чисел, отделенных пробелами, с равным количеством элементов в каждой строке.

Объединение. Объединение - это процесс соединения маленьких матриц для создания больших. Пара квадратных скобок - это оператор объединения.

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

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

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

MATLAB предоставляет набор команд высокого уровня, которые используются для построения графиков. Это такие команды как plot, title, axis, text, hist, contour и ряд других. Команды высокоуровневой графики автоматически устанавливают свойства графических объектов и обеспечивают воспроизведение графики в нужных системах координат, палитре цветов и т.д.

MATLAB показывает графические объекты в специальных графических окнах, имеющих в заголовке слово Figure (фигура, изображение).

Для отображения нескольких графиков на одном рисунке существует два способа. Первым способом является использование команды hold on, которая замораживает текущий график, так что последующие кривые помещаются на этот же график [15]. Команда hold off приводит к тому, что любой последующий вызов команды plot создает новый рисунок на этом же листе, т.е. предыдущий график стирается. Того же самого результата можно добиться, используя функции plot с последовательностью аргументов: переменная x, первая функция, переменная x, вторая функция и т.д.

У такого способа есть еще одно преимущество: разные графики автоматически строятся разным цветом.

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

Вторым решением показа нескольких графиков без конфликта диапазонов осей координат является использование функции subplot.

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

Функция fplot. Функция fplot предоставляет альтернативную возможность изображения функций по сравнению с вычислением вектора y по x и последующим изображением этой кривой с помощью функции plot. Этой функции необходимо передавать строку, описывающую требуемую функцию в виде f(x), может содержать любые допустимые в MATLAB операции и/или функции. Функция fplot имеет еще два дополнительных аргумента. Один из них - это строка, описывающая тип и цвет линии, а вторая - точность. По умолчанию точность равна, и она определяет, на какое количество точек делить интервал, чтобы погрешность от линейной интерполяции не превосходила этой заданной точности.

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

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

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

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

Графики выводятся отдельно от текстов в отдельных окнах. На одном графике можно представить множество кривых, отличающихся цветом (при цветном дисплее) и отличительными символами (кружками, крестиками, прямоугольниками и т. д.). Графики можно выводить в одно или в несколько окон. Наконец, в статьях и книгах формата Notebook, реализованных при совместной работе системы MATLAB с популярным текстовым процессором Microsoft Word 95/97/2000, графики могут располагаться вместе с текстом, формулами и результатами вычислений (числами, векторами и матрицами, таблицами и т. д.). В этом случае степень визуализации оказывается особенно высокой, поскольку документы класса Notebook по существу являются превосходно оформленными электронными книгами с действующими (вычисляемыми) примерами. Особенно привлекательной выглядит возможность построения трехмерных поверхностей и фигур. Если в MATLAB 4 рендеринг трехмерных фигур осуществлялся только при помощи фирменного механизма painters, а в MATLAB 5 был добавлен программный рендеринг при помощи Z-буфера, то в MATLAB б основным является индустриальный стандарт Open GL. Он может поддерживаться аппаратно графическими ускорителями. Система автоматически подбирает наиболее оптимальный механизм рендеринга. По сравнению с системой Mathcad построение трехмерных фигур средствами MATLAB происходит почти на порядок быстрее. Кроме того, при построении таких графиков используется достаточно совершенный алгоритм удаления невидимых линий, что наряду с большими размерами графиков и возможностью интерполяции по цвету делает построенные трехмерные поверхности и фигуры весьма эстетичными и наглядными. Фигуры могут быть прозрачными. Уже в ранних версиях была введена эффектная возможность быстрого вращения графиков в любом направлении. В MATLAB 5.3.1 и 6 она улучшена - теперь вращать в пространстве можно даже плоскость с двумерными графиками.

Трехмерные графики функций. Для отображения функции двух переменных следует:

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

2.      Вычислить функцию в узлах сетки и записать полученные значения в матрицу.

.  Использовать одну из графических функций MATLAB.

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

Сетка генерируется при помощи команды meshgrid, вызываемой с двумя аргументами. Аргументами являются векторы, элементы которых соответствуют сетке на прямоугольной области построения функции. Можно использовать один аргумент, если область построения функции - квадрат. Для вычисления функции следует использовать поэлементные операции.

Для построения каркасной поверхности, используется функция mesh, вызываемая с тремя аргументами. Цвет линий поверхности соответствует значениям функции. MATLAB рисует только видимую часть поверхности. При помощи команды hidden off можно сделать каркасную поверхность “прозрачной”, добавив скрытую часть. Команда hidden on убирает невидимую часть поверхности, возвращая графику прежний вид [17].

Функция surf строит каркасную поверхность графика функции и заливает каждую клетку поверхности определенным цветом, зависящим от значения функции в точках, соответствующих углам клетки.

В пределах каждой клетки цвет постоянный. Команда shading flat позволяет убрать каркасные линии. Для получения поверхности, плавно залитой цветом, зависящим от значений функции, предназначена команда shading interp.

При помощи shading faceted можно вернуть к виду каркасной поверхности, залитой цветом. В MATLAB определена команда colorbar, которая выводит рядом с графиком столбик, устанавливающий соответствие между цветом и значением функции.

Команды meshc или surfc позволяют получить более точное представление о поведении функции. Эти команды строят каркасную поверхность и размещают на плоскости xy линии уровня функции.

MATLAB позволяет построить поверхность, состоящую из линий уровня, при помощи функции contour3. Эту функцию можно использовать так же, как и описанные выше функции mesh, surf, meshc и surf с тремя аргументами.

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

Оформление графика. Простым, но эффективным способом изменения цветового оформления графика является установка цветовой палитры при помощи функции colormap. Для восстановления первоначального значения палитры следует применить команду colormap('default').

Построение освещенной поверхности. Для построения освещенной поверхности применяется функция .

При использовании  удобно задавать цветовые палитры: , , , , в которых интенсивность цвета изменяется линейно. Для получения плавно изменяющихся оттенков следует использовать shading interp

Объединение графиков. Для объединения графиков предназначена команда hold on, которую можно задать перед построением следующего графика.

М-файлы. Файлы, которые содержат коды языка MATLAB, называются М-файлами. Процедура создания М-файла включает две операции:

· создание М-файла с использованием текстового редактора

· вызов М-файла из командной строки или из другого М-файла

Результатом является значение выходной переменной.

Типы М-файлов. Существует два типа М-файлов: М-сценарии и М-функции со следующими характеристиками (Таблица 1):

Таблица 1. Характеристики М-сценария и М-функции

М-сценарий

М-функция

Не допускает входных и выходных аргументов

Допускает водные и выходные аргументы

Оперирует с данными из рабочей области

По умолчанию внутренние переменные являются локальными по отношению к функции

Предназначен для автоматизации последовательности шагов, которые нужно выполнять много раз

Предназначена для расширения возможностей языка MATLAB (библиотеки функции, пакеты прикладных программ)


Структура М-файла. М-файл, оформленный в виде функции, состоит из следующих компонентов:

· строки определения функции

· первой строки комментария

· комментария

· тела функции

Структура этой функции содержит компоненты, которые являются общими для любых функций системы MATLAB:

· строку определения функции - задает имя, количество и порядок следования водных и выходных аргументов;

· первую строку комментария - определяет назначение функции.

Она выводится на экран с помощью команд lookfor или help<имя каталога>;

· комментарий - выводится на экран вместе с первой строкой при использовании команды help<имя функции>;

· тело функции - это программный код, который реализует вычисления и присваивает значения выходным аргументам.

Типы переменных. Локальные и глобальные переменные. Использование переменных в М-файле ничем не отличается от использования переменных в командной строке, а именно:

· переменные не требуют объявления; прежде чем переменной присвоить значение, необходимо убедиться, что всем переменным в правой части присвоены значения;

· любая операция присваивания создает переменную, если это необходимо, или изменяет значение существующей переменной;

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

Обычно каждая М-функция, задаваемая в виде М-файла, имеет собственные локальные переменные, которые отличны от переменных других функций и переменных рабочей области. Если несколько функций и рабочая область объявляют некоторую переменную глобальной, то все они используют единственную копию этой переменной. Любое присваивание этой переменной распространяется на все функции, где она объявлена глобальной.

Для того чтобы переменная рабочей области была глобальной, необходимо объявить ее как глобальную из командной строки; в каждой функции использовать команду global перед первым появлением переменной, рекомендуется указывать команду global в начале М-файла [15].

Создание М-файлов. М-файлы являются обычными текстовыми файлами, которые создаются с помощью текстового редактора. Для операционной среды персонального компьютера система MATLAB поддерживает специальный встроенный редактор/отладчик, хотя можно использовать и любой другой текстовый редактор с ASCII-кодами [18].

Открыть редактор можно двумя способами:

· из меню File выбрать опцию New, а затем M-File;

· использовать команду редактирования edit<имя файла>.

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

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

М-функции. Функции являются М-файлами, которые допускают наличие входных и выходных данных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB.

Структура М-функции. М-функция включает следующие компоненты:

· строки определения функции;

· первой строки комментария;

· собственно комментария;

· тела функции;

· строчных комментариев.

Имена М-функций. Имя файла, содержащего М-функцию, составляется из имени функции и расширения ''.m''.

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

Выполнение М-функций. М-функцию можно вызвать из командной строки системы MATLAB или из других М-файлов, обязательно указав все необходимые атрибуты - входные аргументы в круглых скобках, выходные аргументы в квадратных скобках.

Для вывода сообщений об ошибках используется оператор error(‘Message’).

Средства программирования в MATLAB. Многие математические системы создавались исходя из предположения, что пользователь будет решать свои задачи, практически не занимаясь программированием. Однако с самого начала было ясно, что подобный путь имеет недостатки и, вообще говоря, порочен. Ведь многие задачи нуждаются в развитых средствах программирования, которые упрощают запись алгоритмов задач и порой открывают новые методы создания алгоритмов. С одной стороны, MATLAB содержит огромное число операторов и функций, которые решают множество практических задач, для чего ранее приходилось готовить достаточно сложные программы. К примеру, это функции обращения или транспонирования матриц, вычисления значений производной или интеграла и т. д. Число таких функций с учетом пакетов расширения системы уже достигает многих тысяч и непрерывно увеличивается. Но, с другой стороны, система MATLAB с момента своего создания создавалась как мощный математико-ориентированный язык программирования высокого уровня. И многие рассматривали это как важное достоинство системы, свидетельствующее о возможности ее применения для решения новых, наиболее сложных математических задач [19].

Система MATLAB имеет входной язык, напоминающий Бейсик (с примесью Фортрана и Паскаля). Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с помощью любого привычного для пользователя текстового редактора. Имеет она и собственный редактор с отладчиком. Язык системы MATLAB в части программирования математических вычислений намного богаче любого универсального языка программирования высокого уровня. Он реализует почти все известные средства программирования, в том числе объектно-ориентированное и (средствами Simulink) визуальное программирование. Это дает опытным программистам необъятные возможности для самовыражения.

Управление потоками. MATLAB имеет пять видов структур управления потоками [20]:

· оператор if

· оператор switch

· циклы for

· циклы while

· оператор break

Операторы цикла for, while. Самое простое использование for осуществляется следующим образом:

for count = start:step:final

команды MATLAB

end

Использование оператора for.

for i=1:m

for j=1:n(i, j) = 1/(i+j-1);

end

end

H

По данному набору команд создается и выводится на экран матрица Гилберта размерности m×n. Точка с запятой, которая завешает внутренний оператор, предотвращает вывод на экран ненужных промежуточных результатов, в то время как последний оператор H выводит на экран окончательный результат.

Цикл While. В общем виде цикл while записывается в виде

<условие>

<операторы>

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

Использование оператора while

n=0;

while 2^n<a

n=n+1;

end

n

Условный оператор if. В общем виде простой оператор if используется следующим образом:

<условие>

<операторы>

<операторы> будут выполняться, только если <условие> истинно. Возможно также множественное ветвление, что демонстрируется приведенным далее примером.

Использование оператора if

If n<0

parity=0;mod(n, 2)==0=2;

parity=1;

end

parity

Оператор переключения switch…case. При необходимости построить конструкцию ветвления с более чем двумя логическими условиями удобнее использовать не вложенные операторы if, а оператор переключения switch…case. Этот оператор имеет следующую структуру:

switch <выражение>

case <значение 1>

операторы

case <значение 2>

операторы

otherwise

операторы

end

Условия (операторы отношения). В MATLAB используются следующие операторы отношения:

< меньше чем

> больше чем

<= меньше или равно

>= больше или равно

== равно

~= не равно

Отметим, что знак = используется в операторах присваивания, в то время как знак == используется в операторах отношения.

Когда эти операторы применяются к скалярам, то результатом является тоже скаляр 1 или 0 в зависимости от того, является ли результат истиной или ложью. Когда операторы отношения применяются к матрицам одинакового размера, результатом является матрица того же размера, у которой в качестве элементов стоят 0 или 1, в зависимости от соотношения между соответствующими элементами исходных матриц. Операторы while и if интерпретирует отношение между матрицами как истинное в том случае, если результирующая матрица не имеет нулевых элементов [16].

2. Решение задач оптимизации с применением пакетов прикладных программ

.1 Решение задач оптимизации с применением MS Excel

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

Структура производственных моделей. Производственная математическая модель предназначена для формирования оптимального производственного плана или технологических операций при ограниченных временных, материальных, трудовых и производственных ресурсах [21]. Критерием оптимальности является получение максимума прибыли или минимума издержек. Само планирование состоит обычно в определении количества выпускаемой продукции или составляющих в пределах заданного ассортимента. Чтобы создать математическую модель производственной фирмы, надо определить следующие параметры:

• константы нормативных затрат материалов, труда и финансов;

• переменные решения;

• целевую функцию;

• запас ресурсов или продукции;

• параметры спроса на продукцию.

Оптимизация модели производственного плана состоит в поиске максимума (для прибыли) или минимума (для затрат) целевой функции при ограничении на спрос и ресурсы [22]. При оптимизации раскроя листовых материалов возникают важные для технологов вопросы минимизации отходов. При составлении смесей часто требуется выполнить ограничение сверху и снизу концентрации составляющих компонент.

Математическое программирование занимается исследованием детерминированных и одноцелевых задач. Слово "программирование" в данном случае означает "планирование". К математическому программированию относится [23]:

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

. Нелинейное программирование: целевая функция и ограничения могут быть нелинейными функциями.

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

. Динамическое программирование: для отыскания оптимального решения планируемая операция разбивается на ряд шагов (этапов) и планирование осуществляется последовательно от этапа к этапу. Однако выбор метода решения на каждом этапе производится с учетом интересов операции в целом.

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

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

- набор констант, характеризующих, например, наличие ресурсов, величину спроса, производственную мощность предприятия и другие производственные факторы;

- искомые переменные величины, например, количество запланированной к выпуску продукции по всему ассортименту;

- максимум или минимум целевой функции, например, запланированной прибыли;

- систему ограничений в форме линейных уравнений и неравенств, например, условие того, что расход материала не должен превышать его запас;

- требование неотрицательности переменных (если не предусмотрено иное).

Решение практической задачи всегда связано с исследованием, с преобразованием некоторого объекта (материального или информационного) или с управлением им (рисунок 13).

Рисунок 13. Схема моделирования

При решении "стандартной" задачи в линейном программировании нужно определить максимум линейной целевой функции


при условиях


Здесь целевая функция формируется как скалярное произведение двух векторов. Один из них - вектор искомых переменных . Компонентами другого вектора являются целевые коэффициенты . Условия задачи можно сформулировать так: "Расход  не должен превышать имеющиеся ресурсы ". Вектор расхода  есть сумма произведений матрицы нормированных коэффициентов  на вектор искомых переменных .

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

Алгоритмы такого рода лежат в основе инструмента Поиск решения (Solver) в табличном процессоре MS Excel. Следовательно, решение многих экономических оптимизационных (линейных и нелинейных) задач можно существенно облегчить с помощью данного инструмента.

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

Хотя постановка задачи обычно представляет основную сложность, время и усилия, затраченные на подготовку модели, вполне оправданы, поскольку полученные результаты могут уберечь от излишней траты ресурсов при неправильном планировании, помогут увеличить процент прибыли за счет оптимального управления финансами или выявить наилучшее соотношение объемов производства, запасов и наименований продукции.

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

Обычными задачами, решаемыми с помощью надстройки Поиск решения, являются [24]:

- Ассортимент продукции. Максимизация выпуска товаров при ограничениях на сырье (или другие ресурсы) для производства изделий.

- Штатное расписание. Составление штатного расписания для достижения наилучших результатов при наименьших расходах.

- Планирование перевозок. Минимизация затрат на транспортировку.

- Составление смеси. Получение заданного качества смеси при наименьших расходах.

- Оптимальный раскрой материалов (ограничения - количество деталей различной формы и размеров).

- Оптимизация финансовых показателей (например максимизация доходов за счет оптимизации средств на разные инвестиционные проекты).

Задачи, которые лучше всего решаются данным средством, имеют три свойства:

- имеется единственная максимизируемая или минимизируемая цель (доход, ресурсы и т.д.);

- имеются ограничения, выражающиеся, как правило, в виде неравенств (например, объем используемого сырья не может превышать объем имеющегося сырья на складе, или время работы станка за сутки не должно быть больше 24 часов минус время на обслуживание);

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

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

- количество неизвестных - 200;

- количество формульных ограничений на неизвестные - 100;

- количество предельных условий ) на неизвестные - 400.

Ограничения в задачах. Под ограничениями понимаются соотношения типа А1>=В1, А1=А2, А3>=0, А1= целое.

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

Часто ограничения записываются сразу для групп ячеек, например: А1:А10<=В1:В10 или А1:Е1>0.

Правильная формулировка ограничений является наиболее ответственной частью при формировании модели для поиска решения.

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

.  в модели с несколькими периодами времени величина материального ресурса на начало следующего периода должна равняться величине этого ресурса на конец предыдущего периода;

.  в модели поставок величина запаса на начало периода плюс количество полученного должна равняться величине запаса на конец периода плюс количество отправленного;

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

Рассмотрим применение инструмента Поиск решения на примере следующей экономической задачи.

Задача 1. Составление производственного плана.

Фабрика выпускает сумки: женские, мужские, дорожные. Данные о материалах, используемых для производства сумок и месячный запас сырья на складе приведены в таблице 2.

Таблица 2. Данные о материалах

Материалы

Нормы расхода

Месячный запас материалов


Сумка женская

Сумка мужская

Сумка дорожная

Сумка спортивная


Кожа (м2)

0,5




75

Кожзаменитель (м2)


0,3

1,5

1,0

150

Подкладочная ткань (м2)

0,6

0,4

1,7

1,5

300

Нитки (м)

20

10

30

25

8000

Фурнитура-молния (шт.)

4

5

3

6

1500

Фурнитура-пряжки (шт.)

2

2

2

2

800

Фурнитура разная (шт.)

2

2

4

6

1000


По информации, полученной при изучении рынка продаж, ежемесячный спрос на продукцию фабрики составляет

·  сумка женская - 150 шт. при оптовой цене 3000 руб.;

·  сумка мужская - 70 шт. при оптовой цене 700 руб.;

·  сумка дорожная - 50 шт. при оптовой цене 2000 руб.;

·  сумка спортивная - 30 шт. при оптовой цене 1200 руб.

Отделом маркетинга были заключены договоры на поставки на следующий месяц.

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

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

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

Ментальная карта должна проиллюстрировать основную формулу математической модели (рисунок  <#"869912.files/image035.gif">

Рисунок 15. Основная формула математической модели

Ментальную карту выполним в виде столбцов со списками данных (рисунок  <#"869912.files/image036.gif">

Рисунок 16. Представление исходных данных

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

В третьем столбце представлена матрица нормативных коэффициентов  - удельных затрат материалов на каждый вид сумки. Индексы определяют один из четырех видов продукции и один из семи видов ресурсов.

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

Целевая функция формируется скалярным произведением вектора цены  на вектор искомых значений переменных . Критерий оптимальности плана - получение максимального значения выручки - целевой функции .

Подставляя в общие выражения исходные численные значения задачи, получим выражение для целевой функции:


Оптимальному решению задачи отвечает максимальное значение целевой функции при следующих условиях и ограничениях (таблица 3):

Таблица 3. Тестовая таблица

Выражение

Знак отношения

Ресурс

Примечание

150Выполнение договорных поставоксумки женские





70сумки мужские





50сумки дорожные





30сумки спортивные





ЦелыеДоли сумок не выпускаются




75Ограничение на расход материаловкожа





150кожзаменитель





300подкладочная ткань





8000нитки





1500фурнитура-молнии





800фурнитура-пряжки





1000фурнитура-разная






Лишь после того, как мы разобрались в условиях задачи, можно приступить к формированию таблицы в MS Excel (рисунок 17). Заполним ячейки исходными данными. Искомые переменные (количество сумок каждого вида) поместим в ячейки строки 12. В ячейку F3 вставим формулу и протянем ее до ячейки F10. Целевая функция помещается в ячейке F10. Это выручка, т.е. стоимость всех произведенных сумок.

Рисунок 17. Вставка формул в таблицу MS Excel

Отформатированная таблица представлена на рисунке 18. В ячейки для искомых переменных В12:Е12 можно вставлять, вообще говоря, любые числа. Программа выполнит подбор их числовых значений в соответствии с условиями задачи. Однако чаще всего в качестве начальных значений вводят 0 (как на рисунке 18) или 1 (как на рисунке 19).

Рисунок 18. Сформированная таблица MS Excel

После вставки формул по команде Данные - Поиск решения вызовем диалог и заполним поля, как показано на рисунке 2.5. Адреса ячеек нужно не набирать вручную, а показывать мышью. Вызывать поля ограничений для записи нужно кнопкой "Добавить". На рисунке показано, что введены ограничения на целостность искомых переменных, на превышение выпуска продукции над обязательными поставками и на не превышение расхода материалов над запасами их на складе. Не отрицательность переменных учитывается в диалоге автоматически.

Рисунок 19. Заполнение диалога "Параметры поиска решения"

После выполнения команды "Найти решение" будет выдан результат расчета: значения искомых переменных и соответствующий расход материалов (рисунок 20):

Рисунок 20. Результаты поиска решения

Таким образом, мы нашли, что максимально возможная выручка может составить 677500 руб. Для этого сверх договорных поставок мы должны изготовить 35 мужских сумок и 9 дорожных сумок. При этом на складе останется около 10% запаса материалов, кроме кожи и кожзаменителя, которые будут израсходованы полностью. Для сохранения результата нужно нажать кнопку "Сохранить сценарий", в диалоге дать имя сценарию "Сумки_1".

Оптимизация математической модели фактически закончена. Но теперь нужно перейти обратно от модели к реальной ситуации, т.е. принять управленческое решение. А что будет, если не удастся реализовать сумки, изготовленные сверх потребности? Ясно, что выручка будет равна только сумме, перечисленной от покупателей по договорным обязательствам. Тогда, может быть, и не изготавливать излишнюю продукцию? А сколько при этом останется материалов на складе? Руководитель предприятия на основе данного анализа должен иметь возможность принять решение о создании запасов, как буферных (запас материалов для компенсации задержек в поставках), так и гарантийных (запас продукции для удовлетворения ожидаемого спроса).

Вернемся в диалоговое окно "Поиск решения". Изменим запись, приравняв в окне ограничений искомое количество продукции поставкам по договорам (рисунок 21):

Рисунок 21. Решение для обязательных поставок

Полученное решение оптимально - оно отвечает максимуму целевой функции и удовлетворяет заданным ограничениям. Сохраним второй сценарий под именем "Сумки_2".

А теперь подготовим графические материалы для отчета по составлению производственного плана. Представим остатки материалов на складе в конце следующего месяца для двух вариантов плана: для максимальной выручки и только для обязательных поставок.

По команде на ленте "Данные" - Анализ "что если" - Диспетчер сценариев - Отчет получим отчет по сценариям. Отредактируем отчет вручную по примеру, приведенному на рисунке 22:

Рисунок 22. Отредактированный отчет по двум сценариям остатков материалов

Задача 2. Цех алкидных красок с производительностью 450 тонн продукта в месяц способен производить три разновидности красок: белой, синей и красной. Согласно договорам цех должен изготовить 40 тонн белой, 60 тонн синей и 80 тонн красной красок за месяц. Избыток краски сверх этого количества поступает в свободную продажу. В качестве сырья для изготовления красок используются четыре мастики в различных соотношениях. Цех располагает следующими запасами мастики: первой - 100 тонн, второй - 150 тонн, третьей - 120 тонн и четвертой - 180 тонн. Данные о расходе мастики на производство одной тонны каждой разновидности краски сведены в таблицу 4.

Таблица 4. Данные о расходе мастики

Краски

Расход мастики на 1 тонну краски, т


Мастика 1

Мастика 2

Мастика 3

Мастика 4

Белая

0,3

0,2

0,4

0,4

Синяя

0,2

0,1

0,3

0,6

Красная

0,2

0,5

0,2

0,3


Требуется найти оптимальное (в смысле максимизации прибыли) количество каждого вида изготавливаемых красок при условии, что стоимости красок равны: белой - 13500 руб. , синей - 11300 руб. и красной 8200 руб. за тонну.

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

Решение. Таблица Excel формируется для этой задачи стандартным образом (рисунок 23):

Рисунок 23. Формирование таблицы данных

Неизвестные переменные помещаем в ячейки H3:H5, а целевую функцию - в ячейку G6. Ограничения вводим из условия задачи (рисунок 24):

Рисунок 24. Параметры поиска решений

Сохраним сценарий этого решения под именем "Краски_450". Далее во втором ограничении поставим знак "=" и сохраним сценарий под именем "Краски_180". По команде Данные - Анализ "что если" - Диспетчер сценариев - Отчеты - Структура выведем на лист отчет сценариев. Отредактированный отчет выглядит следующим образом (рисунок 25):

Рисунок 25. Отчет сценариев

Из отчета следует, что договорные поставки загружают мощности предприятия лишь на 40% и дают лишь 56,38% возможной выручки. При этом остаются невостребованными со склада запасы мастики, хранение которой также требует существенных расходов. По данным отчета построим гистограммы расхода мастики для двух вариантов производственного плана (рисунок 26):

Рисунок 26. Гистограмма расхода мастики

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

На примере рассмотренных экономических задач была продемонстрирована автоматизация их решения при помощи инструмента Поиск решения табличного процессора MS Excel.

2.2 Решение задач оптимизации с применением MATLAB

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

В настоящее время для решения оптимальных задач применяют в основном следующие методы:

методы исследования функций классического анализа;

методы, основанные на использовании неопределенных множителей Лагранжа;

вариационное исчисление;

динамическое программирование;

принцип максимума;

линейное программирование;

нелинейное программирование.

В последнее время разработан и успешно применяется для решения определенного класса задач метод геометрического программирования.

Минимизация унимодальной функции одной переменной. Функция одного переменного  называется унимодальной на отрезке , если имеется единственное значение  такое, что [25], [26]:

· -минимум  на ;

· строго убывает при ;

· строго возрастает при .

Для отыскания минимума унимодальной функции используется функция fminbnd. Алгоритм, реализованный ею, представляет собой комбинацию метода золотого сечения и обратной параболической интерполяции [27]. В простейшем варианте вызова кроме указателя на минимизируемую функцию fun задаются начало и конец интервала поиска: x=fminbnd(fun, a, b).

Пример 1. Использование функции fminbnd для поиска минимума функции humps (переводится как «горб»), входящей в ядро MATLAB. Данная функция задается формулой


Для построения ее графика следует выполнить команду

>>fplot (@humps, [0, 3])

Из рисунка 27 следует, что минимум функции humps существует на отрезке [0.5, 1].

Для нахождения минимума функции нужно выполнить команду

>> fminbnd (@humps, 0.5, 1)

ans =

.63701067459059

Для одновременного нахождения минимума функции и значения функции в точке минимума следует использовать следующий синтаксис вызова функции fminbnd:

>> [x, y]= fminbnd(@humps, 0.5, 1)=

0.63701067459059

y =

.25275412656431

Рисунок 27. График функции humps

Для получения информации о числе итераций, которые пришлось осуществить MATLAB для нахождения уточненного результата, необходимо обратиться к функции fminbnd следующим образом:

[xmin, val, flag, output] = fminbnd (@humps, 0.5, 1)

где output - объект, содержащий полную информацию о процессе нахождения минимума функции. В частности, поле output.iterations содержит количество совершенных итераций. Для вывода на экран числа итераций выполнения функции fminbnd необходимо использовать следующий синтаксис обращения к данной функции:

>>[xmin, val, flag, output] = fminbnd (@humps, 0.5, 1)=

.63701067459059=

.25275412656431=

=: 7: 8: 'golden section search, parabolic interpolation': [1x112 char]

Пример 2. График функции  представлен на рисунке 28. На каждом из интервалов  и  эта функция унимодальна. Для нахождения ее минимумов на указанных интервалах и построения графика с выделением точек минимума составлена программа prog1.m:

function prog1=-2:0.1:3; yy=fun(xx);(xx, yy,'k-')on; grid;('x'); ylabel('y');

[x,f] = fminbnd(@fun,-2,0)(x,f, 'Marker', '.', 'MarkerSize', 20);

[x,f] = fminbnd(@fun,0,3)(x,f,'Marker', '.', 'MarkerSize', 20);

y=fun(x)=3*x.^4-4*x.^3-12*x.^2;

Запуск этой программы выдает следующие результаты:

x=

.0000

f=

.0000

x=

.0000

f=

.0000

Рисунок 28. Поиск минимума унимодальной функции

Многомерная безусловная минимизация. Задач поиска минимума вещественной функции векторного аргумента  называется безусловной, если на ее аргумент не наложено никаких ограничений. В противном случае, когда вектор x должен удовлетворять каким-то уравнениям и/или неравенствам, говорят об условной минимизации [28].

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

Функция fminsearch. Для поиска минимума функции нескольких переменных применяется функция fminsearch:

fminsearch (hFunction, x0)

где hFunction - дескриптор функции нескольких переменных, для которой ищется минимум, x0 - вектор аргументов функции, с которого начинается поиск минимума.

В функции fminsearch используется так называемый алгоритм симплексного поиска, идея которого заключается в следующем. В окрестности стартовой точки n-мерного пространства строится симплекс - (n+1) точка в общем положении (никакие 3 точки не лежат на одной прямой, никакие 4 не лежат в одной плоскости и т. д.). Целевая функция измеряется в этих точках и та точка, в которой значение функции максимально, отбрасывается, а вместо нее в симплекс по определенным правилам вставляется другая точка. Процесс завершается, когда диаметр симплекса становится меньше заданного порога. Целевая функция может быть негладкой и даже разрывной [29]. Использование данной функции продемонстрировано в следующем примере.

Пример 3. Найти минимум функции

>> f2 = inline ('x(1)^2+x(2)^2', 'x')=function:(x) = x(1)^2+x(2)^2

>> xmin = fminsearch(f2, [1 1])=

.0e-004 *

-0.21023529262365 0.25484564932795

Для получения информации о числе итераций, которые пришлось осуществить MATLAB для нахождения уточненного результата, необходимо обратиться к функции fminsearch следующим образом:

[xmin, val, flag, output] = fminsearch(hFun, x0)

где output - объект, содержащий полную информацию о процессе нахождения минимума функции. В частности, поле output.iterations содержит количество совершенных итераций. Для вывода на экран числа итераций выполнения функции fminsearch необходимо использовать следующий синтаксис обращения к данной функции:

>> [xmin, val, flag, output] = fminsearch(f2, [1 1])=

.0e-004 *

.21023529262365 0.25484564932795

=

.0915e-009

=

=: 38: 69: 'Nelder-Mead simplex direct search'

message: [1x196 char]

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

Банан Розенброка. Графически он представляет собой овраг с очень крутыми склонами, дно которого при «взгляде сверху» имеет форму параболы (рисунок 29) и плавно спускается к точке минимума x=[1;1], которой z=0. Ее линии уровня представляют собой изогнутые овалы (отсюда «банан»).

function f = Rosenbrock(x)

f=5*(x(2)-x(1)^2)^2+(1-x(1))^2

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

Для поиска минимума и построения линий уровня функции Розенброка была написана программа prog2.m (см. Приложение 2).

Найденный минимум:

x=

.0000

.0000

f=

.8161e-009

Функция fminunc. В том случае, когда функция fun(x) является достаточно гладкой, для поиска ее минимума можно воспользоваться функцией fminunc. Идея поиска минимума с помощью производных принадлежит Коши и заключается в следующем: градиент функции fun(x) в любой точке x есть вектор g, направленный в сторону наибольшего локального увеличения функции fun(x). Следовательно, для достижения минимума надо двигаться в направлении наискорейшего спуска - g. В более развитом варианте этого алгоритма используются также вторые производные, которые образуют так называемую матрицу Гессе (гессиан) H. При помощи формулы Тейлора строится локальная квадратичная аппроксимация целевой функции в окрестности текущей точки :

.

Минимум выражения в правой части (если он существует) достигается при векторе смещения , который удовлетворяет системе уравнений . Такой способ выбора направления называется методом Ньютона [30]. Иногда на вектор смещения накладывается ограничение  при специально подобранном  - в этом случае говорят о методе доверительного интервала.

Пусть имеется функция


Ее линия уровня при f=0 представляет собой известную в геометрии кривую - декартов лист. Подключим к программе вычисления значения функции операторы для нахождения градиента g и гессиана H. Сообщим об этом в списке управляющих параметров для функций минимизации:

Options = optimset('Display','final','GradObj','on','Hessian','on');

Значение параметра Display = final означает, что все промежуточные выдачи, кроме заключительной, блокируются. Возьмем стартовую точку для поиска минимума x0=[2; 2]. Обращения к функции fminunc выполним в форме, позволяющей получить на выходе также значения градиента и гессиана.

[x, f1, e_flag, out, grad, hes] = fminunc(@Descartes,x0,options)

Условная минимизация. Если при поиске минимума вещественной функции векторного аргумента  на аргумент наложены те или иные ограничения в виде уравнений и/или неравенств, говорят об условной минимизации. Основной метод решения таких задач основан на использовании множителей Лагранжа. Каждое неравенство вида  превращается в уравнение  (слагаемое  заведомо неотрицательно) [30]. Затем левая часть каждого уравнения добавляется к целевой функции с некоторым множителем, эти множители и величины  включаются в число переменных. Для модифицированной таким образом функции решается задача безусловной минимизации.

Рисунок 30. Декартов лист

Функция fmincon. Для решения задачи условной минимизации функции fun(x) при наличии линейных ограничений оптимизации  (А - матрица, b - вектор) используется функция fmincon, обращение к которой требует здания начальной точки x0:

x=fmincon(fun,x0,A,b)

Найдем минимум функции Розенброка при ограничении , задающем полуплоскость.

Определим матрицу , вектор , начальную точку (эта точка удовлетворяет ограничению) и обратимся к функции fmincon.

Графические результаты представлены на рисунке 31. Они получены с помощью программы ros_tst.m (см. Приложение 2).

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

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

Заключение

Система MATLAB представляет собой уникальный сплав универсальных программных и алгоритмических средств с широкой гаммой специализированных приложений. Входной язык и среда программирования MATLAB очень близки к современным системам визуального программирования на базе универсальных алгоритмических языков типа Basic, C++, Java, Object Pascal. По ряду аспектов MATLAB уступает указанным системам (режим интерпретации, небольшой запас визуальных компонентов). Однако с его библиотекой численных методов ни по объему, ни по качеству не может сравниться ни одна из систем программирования. Кроме того, в пакете MATLAB тщательно отработаны средства визуализации результатов вычислений и отображения различных графических объектов. На базе ядра MATLAB созданы многочисленные расширения, обеспечивающие моделирование и анализ систем в разнообразных сферах человеческой деятельности.

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

Первый раздел дипломной работы посвящен системе MATLAB, здесь рассматриваются такие вопросы, как:

- вычисления в интерактивном режиме;

- графика в системе MATLAB;

- программирование М-функций;

- создание приложений.

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

Для решения задачи оптимизации функции  на отрезке [а; b] на практике, как правило, применяют приближенные методы. Они позволяют найти решение этой задачи с необходимой точностью в результате определения конечного числа значений функции  и ее производных в некоторых точках отрезка [а; b]. Методы, использующие только значения функции и не требующие вычисления ее производных, называются прямыми методами минимизации.

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

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

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

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

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

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

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

Многие оптимизационные экономические задачи можно решить сведением к задаче линейного программирования. В свою очередь, решение задачи линейного программирования можно автоматизировать с помощью надстройки "Поиск решения" в MS Excel.

Традиционными задачами, решаемыми с помощью настройки «Поиск решений» являются:

- Ассортимент продукции. Сколько можно выпустить определенного товара при ограничении сырья.

- Штатное расписание. Как составить штатное расписание для достижения лучшего результата и при наименьших расходах.

- Планирование перевозок. Как минимизировать затраты на перевозки.

- Составление смеси. Как составить смесь заданного качества при наименьших затратах.

Во втором разделе дипломной работы решены некоторые экономические задачи с применением данной надстройки в табличном процессоре MS Excel 2010.

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

В ходе работы над дипломным проектом были решены следующие задачи:

- Изучение функциональных возможностей MS Excel.

- Изучение вычислительных возможностей системы MATLAB.

- Изучение графических возможностей системы MATLAB.

- Освоение средств программирования в системе MATLAB.

- Изучение численных методов решения задач одномерной оптимизации.

- Изучение численных методов решения задач многомерной оптимизации.

- Построение математических моделей некоторых экономических задач оптимизации.

- Изучение методов решения построенной математической модели.

- Численная реализация построенной математической модели в табличном процессоре MS Excel 2010.

- Численная реализация методов оптимизации в системе MATLAB.

В Приложении 1 представлены этапы решения оптимизационной задачи производства при помощи надстройки Поиск решения в табличном процессоре MS Excel. В Приложении 2 представлены следующие программы, написанные в среде MATLAB:

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

.  Многомерная безусловная минимизация. Программа поиска минимума и построения линий уровня функции Розенброка.

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

В заключении следует отметить, что все поставленные задачи были выполнены, цели достигнуты. Были приобретены навыки работы в MS Excel 2010, в системе MATLAB, а также навыки в применении различных численных методов оптимизации на практике. Теперь ставится задача применения приобретенных знаний в своей будущей профессиональной деятельности.

Список использованной литературы

1    Васильев Ф.П. Численные методы решения экстремальных задач. - М.: Наука, 1988. - 552 с.

2    Аладьев В.З., Шишаков М.Л. Введение в среду пакета Mathematica 2.2 - М.: Информационно-издательский дом "Филинъ", 2011. - 368 с.

      Говорухин В.Н., Цибулин В.Г. Введение в Maple. Математический пакет для всех. - М.: Мир, 2007. - 208 с.

      Дьяконов В.П. Справочник MathCAD PLUS 6.0 PRO - М.: “СК Пресс”, 2010. - 336 с.

      Эрдниев П.М. Эрдниев Б.П. Укрупнение дидактических единиц в обучении математике: книга для учителя. - М.: Просвещение, 2008. - 271с.

6    И.Семакин, Л.Залогова и др. Информатика и ИКТ, базовый курс, 9 класс. М.: БИНОМ. Лаборатория знаний, 2007. - 32 с.

7    Решение уравнений средствами MS Excel. Методические указания к лабораторным работам по дисциплине "Математика и информатика". - М.: БИНОМ. Лаборатория знаний, 2012. - 282 с.

      Курицкий Б. Поиск оптимальных решений средствами MS Excel 7.0. - СПб.: BHV - Санкт-Петербург, 2011. - 384 с.

      Гусева О.Л., Миронова Н.Н. Практикум по MS Excel. - М.: Финансы и статистика, 2009. - 160 с.

      Ануфриев И.Е. MATLAB 5.3/6.х. - Санкт-Петербург: БХВ-Петербург, 2002. - 444 с.

      Потемкин В.Г. MATLAB 5 для студентов. - М.: ДИАЛОГ-МИФИ, 1998. - 314 с.

      Дьяконов В.П. MATLAB 6. - СПб.: Питер, 2001. - 592 с.

      Мартынов Н.Н. Иванов А.П. MATLAB 5.x. Вычисления, визуализация, программирование. - М.:КУДИЦ-ОБРАЗ, 2000. - 332 с.

      Потемкин В.Г. Инструментальные средства MATLAB 5.х. - М.: ДИАЛОГ-МИФИ, 2000. - 333 с.

      Гультяев А. Визуальное моделирование в среде MATLAB: учебный курс. СПб.: Питер, 2000. - 430 с.

      Мартынов Н.Н. Введение в MATLAB 6.x. - М.:КУДИЦ-ОБРАЗ, 2002. - 352 с.

17  Начало работы с MATLAB - <#"869912.files/image102.gif">

2. Сформированная таблица MS Excel


. Заполнение диалога "Параметры поиска решения"

4. Результаты поиска решения


. Решение для обязательных поставок


6. Отредактированный отчет по двум сценариям остатков материалов

           

7. Остатки материалов на складе для двух вариантов плана, %



Приложение 2

Программы решения задач оптимизации в среде MATLAB

1. Программа prog2.m:

prog2=-3:0.1:3; Y0=-2:0.1:5;

[X Y]=meshgrid(X0,Y0);=size(X); Z=zeros(s);i = 1:s(1)j = 1:s(2)(i,j)=Rosenbrock([X(i,j); Y(i,j)]);

('Xlim', [-3 3], 'Ylim',[-2 5]);equal; grid off; hold on;=1:2:10; V=10:4:20;(X,Y,Z,[v V]);('x1'); ylabel('x2')

=[-2; 2];(x0(1),x0(2),'Marker','.','MarkerSize',10);

[x,f]=fminsearch('5*(x(2)-x(1)^2)^2+(1-x(1))^2',x0)(x(1),x(2),'Marker','.','MarkerSize',20);([x0(1),x(1)],[x0(2),x(2)],'k-');copper

2. Программа prog 3.m:

prog3('Xlim', [-1.5 2.5],'Ylim',[-1.5 2.5]);equal; grid off; hold on;('x1'); ylabel('x2'); colormap copper=-1.5:0.05:2.5;

[X Y]=meshgrid(X0);=size(X); Z=zeros(s);i=1:s(1)j=1:s(2)(i,j)=Descartes([X(i,j); Y(i,j)]);=-0.8:0.2:1; contour(X,Y,Z,V);=...('Display','final','GradObj','on','Hessian','on');=[2; 2];(x0(1),x0(2),'Marker','.','MarkerSize',10);

[x, f1, e_flag, out, grad, hes] = fminunc(@Descartes,x0,options);(x(1),x(2),'Marker','.','MarkerSize',20);([x0(1),x(1)],[x0(2),x(2)],'k-');[f, g, H]=Descartes(x)=x(1)^3+x(2)^3-3*x(1)*x(2);nargout>1=[3*(x(1)^2-x(2)); 3*(x(2)^2-x(1))];nargout>2=[6*x(1) -3; -3 6*x(2)];

. Программа ros_tst.m:

ros_tst=-5:0.1:3;=0:0.1:7;

[X Y]=meshgrid(X0,Y0);=size(X); Z=zeros(s);i=1:s(1)j=1:s(2)=[X(i,j); Y(i,j)];=Rosenbrock(x);(i,j)=z;=1:10;(X,Y,Z,V);on; grid off;=-5:5; x2=0:7;('x1'); ylabel('x2')([-4 3], [0 7], 'k-');

=[-3; 4]; graf(x0) %#1=[0; 1]; graf(x0) %#2

graf (x0)=[1 -1]; b=[-4];=[];(x0(1),x0(2), 'Marker','.','MarkerSize',10 );

[x, fval]=fmincon(@Rosenbrock,x0,A,b)(x(1),x(2),'Marker','.','MarkerSize',20);([x0(1),x(1)],[x0(2),x(2)],'k-');

f=Rosenbrock(x)=5*(x(2)-x(1)^2)^2+(1-x(1))^2;x(1)^2;

Похожие работы на - Решение задач оптимизации с применением пакетов прикладных программ

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!