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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

.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

Источник: https://www.bibliofond.ru/detail.aspx?id=869912