Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
417
Добавлен:
13.02.2015
Размер:
2.51 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Российский Химико-Технологический Университет

им. Д. И. Менделеева

Соломатин А.С., Калинкин В.Н., Гартман Т.Н., Новикова Д.К.

РЕШЕНИЕ ТИПОВЫХ ЗАДАЧ ОДНОМЕРНОЙ И МНОГОМЕРНОЙ ОПТИМИЗАЦИИ С ПРИМЕНЕНИЕМ ПАКЕТА MATLAB

Утверждено Редакционным советом университета

в качестве учебного пособия

Москва, 2011

УДК 517.977

ББК

С60

Рецензенты:

Соломатин А.С.

С60

Решение типовых задач одномерной и многомерной оптимизации с применением пакета MATLAB: учеб. пособие / А. С. Соломатин, В. Н. Калинкин, Т. Н. Гартман, Д. К. Новикова; под ред. проф. Т.Н. Гартмана. - М.: РХТУ им. Д. И. Менделеева, 2011. - 74с. :ил.

ISBN

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

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

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

УДК 517.977

ББК

© Российский Химико-Технологический Университет

им. Д. И. Менделеева, 2011

Оглавление

Предисловие…………………………………………………….4

Глава 1. Краткие основы работы в MATLAB……………..5

1.1. Интерфейс. ………………………………………………………….5

1.2. Редактирование М-файлов ……………………………………8

1.3. Построение графиков……………………………………………12

1.4. Построение поверхности………………………………………13

1.5. Операции с матрицами. ……………………………………….14

1.6. Нелинейные уравнения и системы…………………………...15

1.7. Интегрирование…………………………………………………...16

1.8. Решение обыкновенных дифференциальных

уравнений и систем………………………………………18

1.9. Поиск экстремума функции одной переменной…………...21

1.10. Поиск экстремума функции нескольких переменной…..21

Глава 2. Одномерная оптимизация с

применением пакета MATLAB …………………..23

2.1. Метод сканирования……………………………………………...23

2.2. Метод чисел Фибоначчи…………………………………………29

2.3. Метод локализации экстремума……………………………...35

2.4. Метод обратного половинного шага………………………..43

2.5. Метод золотого сечения………………………………………..51

Глава 3. Двухмерная оптимизация с

применением пакета MATLAB……………………57

3.1. Метод сканирования……………………………………………...57

3.2. Метод Гаусса-Зейделя …………………………………………..61

3.3. Метод пробных движений ……………………………………..67

Предисловие

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

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

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

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

Глава 1. Краткие основы работы в matlab

1.1. Интерфейс.

После запуска МАТЛАБ на экране появляется основное окно приложения (рис.1.1.). Оно содержит меню, панель инструментов и рабочую область (Commаnd Window).

Рис. 1.1. Интерфейс. Основное окно.

В рабочей области находится знак >> после которого расположен курсор. Эту строку называют командной строкой. В нее с клавиатуры вводятся команды. Нажатие Enter заставит выполнить команду и вывести результат в том же окне. (см. рис. 1.1.)

Так как текст в окне по мере работы смещается (уступает место новым командам и выводимым данным) то для просмотра выехавшей за окно части текста используют полосы прокрутки или клавиши Page Up, Page Down.

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

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

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

Если команда заканчивается ; то результат ее выполнения не отображается в командной строке. Иначе, то есть если строка не заканчивается на ; то результат сразу же после нажатия на Enter выводится в окне ниже этой команды. (см. выше на рис. 1.1)

Значения всех переменных, вычисленные в течение работы, сохраняются в специальной области памяти, называемой Workspace. (см. выше на рис. 1.1)

Определения всех переменных и функций и их последние перед закрытием программы значения можно сохранить на диск в файл с расширением .mat но само содержание Command Window при выключении МАТЛАБа не сохраняется никаким способом.

Примеры выполнения арифметических операций показаны на рис.1.1.

Для строк символов необходимо текст помещать в ‘одинарные кавычки’. Для сложения строк символов используется операция strcat, как показано на рис.1.1.

В главном меню (см. рис.1.1) следует обратить внимание на команду Desktop (настройка среды МАТЛАБ). При нажатии раскроется список, содержащий Desktop Layout который предлагает на выбор:

  • Default устанавливает настройку принятую по умолчанию, то есть открывает окна Command Window, Workspace, Command History, Current Directory.

  • Command Window Only открывает только окно Command Window.

  • History and Command Window открывает соответствующие окна.

  • All Tabbet показывает окно справки, окно управления М-файлами и внизу ярлычки рабочих окон, которые можно выбрать щелчком.

Также работа может осуществляться в программном режиме, то есть в командной строке указывается имя М-файла (файл с расширением .m), который содержит программу действий (алгоритм) и может рассматриваться как функция, то есть при указании его имени (без указания расширения) в командной строке выполняются запрограммированные в нем операции. (см.рис.1.2).

Как выгладит содержимое М-файла, см. рис.1.3.

Числовые переменные могут быть с плавающей точкой (тогда указывается порядок, например6.4713e+003) или с фиксированной точкой (например 81.5000).

Текстовые комментарии начинаются со знака % (см.рис.1.2).

Все функции разделяются на встроенные и определенные пользователем. Встроенные, например, это y=sin(x); y=atan(x); y=exp(x); y=log(x) натуральный логарифм, а вот y=log10(x) десятичный логарифм, y=fix(x) округление до ближайшего целого в сторону нуля, y=floor(x) округление до ближайшего целого в сторону отрицательной бесконечности, y=ceil(x) округление до ближайшего целого в сторону положительной бесконечности, y=round(x) обычное округление

Массив задается так: ИМЯ_МАССИВА = НАИМЕНЬШ_ЭЛ-Т_МАСС : ШАГ_ИЗМЕН_ЭЛ-ТА_МАСС : НАИБОЛЬШ_ЭЛ-Т_МАСС ; (см. рис.1.2).

Обращение к элементу массива y=x_mas(2); где в скобках указывается порядковый номер (индекс) элемента массива (см. рис.1.2).