- •Оглавление
- •Глава 1. Краткие основы работы в matlab
- •1.1. Интерфейс.
- •1.2. Редактирование м-файлов
- •1.3. Построение графиков
- •1.4. Построение поверхности
- •1.5. Операции с матрицами.
- •1.6. Нелинейные уравнения и системы
- •1.7. Интегрирование
- •1.8. Решение обыкновенных дифференциальных уравнений и систем.
- •1.9. Поиск экстремума функции одной переменной.
- •1.10. Поиск экстремума функции нескольких переменной.
- •Глава 2. Одномерная оптимизация с применением пакета matlab минимальный шаг по аргументу
- •Минимальное изменение функции
- •2.1. Метод сканирования
- •2.2. Метод чисел Фибоначчи
- •2.3. Метод локализации экстремума
- •2.4. Метод обратного половинного шага
- •2.5. Метод золотого сечения
- •Глава 3. Двухмерная оптимизация с применением пакета matlab
- •3.1. Метод сканирования
- •3.2. Метод Гаусса–Зейделя
- •3.3. Метод пробных движений
- •Соломатин Алексей Сергеевич Решение типовых задач одномерной и многомерной оптимизации с применением пакета matlab
- •125047, Москва, Миусская пл. 9.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Российский Химико-Технологический Университет
им. Д. И. Менделеева
Соломатин А.С., Калинкин В.Н., Гартман Т.Н., Новикова Д.К.
РЕШЕНИЕ ТИПОВЫХ ЗАДАЧ ОДНОМЕРНОЙ И МНОГОМЕРНОЙ ОПТИМИЗАЦИИ С ПРИМЕНЕНИЕМ ПАКЕТА 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).