Лаб_практикум_ОВИ_03_06_13
.pdfВ рамках данной интерпретации конъюнктивный оператор представляет собой оператор вычисления алгебраического произведения – prod (рис. 5.7, а), а дизъюнктивный оператор – оператор вычисления алгебраической суммы – рrоbоr (рис. 5.7, б).
а б
Рис. 5.7. Пересечение (a) и объединение (б) нечетких множеств
(вероятностная интерпретация)
Описание функции: у = prod ([y1; у2])
Описание функции: у = probor([y1; у2]).
Параметры y1 и у2 представляют собой исходные ФП.
Пример 5.8. Программа использования вероятностных операторов конъюнкции и дизъюнкции.
»х = 0 : 0,1 : 10;
»subplot (1, 2, 1);
»y1 = gaussmf (x, [4 5]);
»y2 = gaussmf (x, [4 7]);
»у3 = prod ([y1; y2]);
101
»plot (x, [y1; у2],':');
»hold on;
»plot(x, y3);
»hold off;
»subplot (1, 2, 2);
»y4 = probor ([y1; y2]);
»plot (x, [y1; y2], ':');
»hold on;
»plot(x, y4);
»hold off.
Дополнение нечеткого множества есть не что иное, как математическое представление вербального выражения «НЕ А» (рис. 5.8),
где А – нечеткое множество, описывающее некоторое размытое суждение.
Рис. 5.8. Дополнение нечеткого множества
Описание функции дополнения: y = 1 – y*, где у* – исходная ФП.
102
Пример 5.9. Программа использования операции дополнения.
»x= [0 : 10];
»y1 = gaussmf (x, [3 5]);
»y= 1 - y1;
»plot (x, y1, ':');
»hold on;
»plot(x, y);
»hold off
5.2.Индивидуальные задания
1.Построить треугольную и трапециевидную функцию принадлежности.
2.Построить простую и двухстороннюю функцию принадлежности Гаусса, образованную с помощью различных функций распределения.
3.Построить функцию принадлежности "обобщенный колокол",
которая позволяет представлять нечеткие субъективные предпочтения.
4.Построить набор сигмоидных функций:
Основную одностороннюю, которая открыта слева или справа;
Дополнительную двухстороннюю;
Дополнительную несимметричную.
5.Построить набор полиномиальных функций принадлежности (Z-,
PI- и S-функций).
6.Построить минимаксную интерпретацию логических операторов с использованием операций поиска минимума и максимума.
7.Построить вероятностную интерпретацию конъюнктивных и дизъюнктивных операторов.
103
8. Построить дополнение нечеткого множества, которое описывает некоторое размытое суждение и представляет собой математическое описание вербального выражения, отрицающего это нечеткое множество.
При выполнении пунктов 1 – 8 индивидуального задания, значения переменных a, b, c, d и т.д. необходимо выбирать произвольным образом.
9. Оформите отчет по лабораторной работе.
104
Лабораторная работа 6
М-ФАЙЛЫ И ОСНОВЫ ПРОГРАММИРОВАНИЯ В MATLAB
Цель лабораторной работы: получение и закрепление знаний,
формирование практических навыков работы с пакетом MATLAB при использовании М-файлов и выполнении программ с нелинейной структурой.
6.1.Краткие сведения из теории
6.1.1.Работа в редакторе М-файлов
Работа из командной строки MATLAB затруднена, если требуется вводить много команд и часто их изменять. Ведение дневника при помощи команды diary и сохранение рабочей среды лишь незначительно облегчает работу. Самым удобным способом выполнения команд MATLAB является использование М-файлов, в которых можно набирать команды, выполнять их все сразу или частями, сохранять в файле и использовать в дальнейшем.
Для работы с М-файлами предназначен редактор М-файлов. При помощи этого редактора можно создавать собственные функции и вызывать их, в
том числе и из командной строки.
Раскройте меню File основного окна MATLAB и в пункте New
выберите подпункт M-file. Новый файл открывается в окне редактора М-файлов.
Наберите в редакторе команды, приводящие к построению двух графиков в одном графическом окне:
»x = [0:0.1:7];
»f = exp(-x);
»subplot(1, 2, 1)
105
»plot(x, f)
»g = sin(x);
»subplot(1, 2, 2)
»plot(x, g)
Сохраните теперь файл с именем mydemo.m в подкаталоге work
основного каталога MATLAB, выбрав пункт Save as меню File редактора.
Для запуска на выполнение всех команд, содержащихся в файле, следует выбрать пункт Run в меню Debug. На экране появится графическое окно
Figure No.1, содержащее графики функций. Если Вы решили построить график косинуса вместо синуса, то просто измените строку g = sin(x) в
М-файле на g = cos(x) и запустите все команды снова.
Замечание 1
Если при наборе сделана ошибка и MATLAB не может распознать команду, то происходит выполнение команд до неправильно введенной,
после чего выводится сообщение об ошибке в командное окно.
Очень удобной возможностью, предоставляемой редактором
М-файлов, является выполнение части команд. Закройте графическое окно
Figure No.1. Выделите при помощи мыши, удерживая левую кнопку, или клавишами со стрелками при нажатой клавише <Shift>, первые четыре команды программы и выполните их из пункта Evaluate Selection меню
Text. Обратите внимание, что в графическое окно вывелся только один график, соответствующий выполненным командам. Запомните, что для выполнения части команд их следует выделить и нажать <F9>. Выполните оставшиеся три команды программы и проследите за состоянием графического окна. Потренируйтесь самостоятельно, наберите какие-либо примеры из предыдущих лабораторных работ в редакторе М-файлов и запустите их.
Отдельные блоки М-файла можно снабжать комментариями,
которые пропускаются при выполнении, но удобны при работе с
106
М-файлом. Комментарии в MATLAB начинаются со знака процента и автоматически выделяются зеленым цветом, например:
%построение графика sin(x) в отдельном окне
В редакторе М-файлов может быть одновременно открыто несколько файлов. Переход между файлами осуществляется при помощи закладок с именами файлов, расположенных внизу окна редактора.
Открытие существующего М-файла производится при помощи пункта Open меню File рабочей среды, либо редактора М-файлов. Открыть файл в редакторе можно и командой MATLAB edit из командной строки,
указав в качестве аргумента имя файла, например:
» edit mydemo
Команда edit без аргумента приводит к созданию нового файла.
Все примеры, которые встречаются в этой и следующих лабораторных работах, лучше всего набирать и сохранять в М-файлах,
дополняя их комментариями, и выполнять из редактора М-файлов.
Применение численных методов и программирование в MATLAB требует создания М-файлов.
6.1.2. Типы М-файлов
М-файлы в MATLAB бывают двух типов: файл-программы (Script M-Files), содержащие последовательность команд, и файл-функции
(Function M-Files), в которых описываются функции, определяемые пользователем.
Файл-программу (файл-процедуру) Вы создали при прочтении предыдущего подраздела. Все переменные, объявленные в файл-
программе, становятся доступными в рабочей среде после ее выполнения.
107
Выполните в редакторе М-файлов файл-программу, приведенную в подразделе 6.1.1, и наберите команду whos в командной строке для просмотра содержимого рабочей среды. В командном окне появится описание переменных:
» whos |
|
|
|
Name |
Size |
Bytes |
Class |
f |
1x71 |
568 |
double array |
g |
1x71 |
568 |
double array |
x |
1x71 |
568 |
double array |
Grand total |
is 213 elements using 1704 bytes |
Переменные, определенные в одной файле-программе, можно использовать в других файл-программах и в командах, выполняемых из командной строки. Выполнение команд, содержащихся в файл-программе,
осуществляется двумя способами:
1)из редактора М-файлов так, как описано выше;
2)из командной строки или другой файл-программы, при этом в качестве команды используется имя М-файла.
Применение второго способа намного удобнее, особенно, если созданная файл-программа будет неоднократно использоваться впоследствии. Фактически, созданный М-файл становится командой,
которую понимает MATLAB. Закройте все графические окна и наберите в командной строке mydemo, появляется графическое окно,
соответствующее командам файл-программы mydemo.m. После ввода команды mydemo MATLAB производит следующие действия:
проверяет, является ли введенная команда именем какой-либо из переменных, определенных в рабочей среде. Если введена переменная, то выводится ее значение;
если введена не переменная, то MATLAB ищет введенную
108
команду среди встроенных функций. Если команда оказывается встроенной функцией, то происходит ее выполнение.
Если введена не переменная и не встроенная функция, то MATLAB
начинает поиск М-файла с названием команды и расширением m. Поиск начинается с текущего каталога (Current Directory), если М-файл в нем не найден, то MATLAB просматривает каталоги, установленные в пути поиска (Path). Найденный М-файл выполняется в MATLAB.
Если ни одно из вышеперечисленных действий не привело к успеху,
то выводится сообщение в командное окно, например:
»mydem
???Undefined function or variable 'mydem'.
Как правило, М-файлы хранятся в каталоге пользователя. Для того чтобы система MATLAB могла найти их, следует установить пути,
указывающие расположение М-файлов.
Замечание 2
Хранить собственные М-файлы вне основного каталога MATLAB
следует по двум причинам. Во-первых, при переустановке MATLAB
файлы, которые содержатся в подкаталогах основного каталога MATLAB,
могут быть уничтожены. Во-вторых, при запуске MATLAB все файлы подкаталога toolbox размещаются в памяти компьютера некоторым оптимальным образом так, чтобы увеличить производительность работы.
Если вы записали М-файл в этот каталог, то воспользоваться им можно будет только после перезапуска MATLAB.
6.1.3. Установка путей
Начиная с 6-й версии MATLAB есть возможность определения текущего каталога и пути поиска. Установка этих свойств производится
109
либо при помощи соответствующих диалоговых окон, либо командами из командной строки.
Текущий каталог определяется в диалоговом окне Current Directory
рабочей среды. Окно присутствует в рабочей среде, если выбран пункт
Current Directory меню View рабочей среды.
Текущий каталог выбирается из списка. Если его нет в списке, то его можно добавить из диалогового окна Browse for Folder, вызываемого нажатием на кнопку, расположенную справа от списка. Содержимое текущего каталога отображается в таблице файлов.
Определение путей поиска производится в диалоговом окне Set Path
навигатора путей, доступ к которому осуществляется из пункта Set Path
меню File рабочей среды.
Для добавления каталога нажмите кнопку Add Folder и в появившемся диалоговом окне Browse for Path выберите требуемый каталог. Добавление каталога со всеми его подкаталогами осуществляется при нажатии на кнопку Add with Subfolders. Путь к добавленному каталогу появляется в поле MATLAB search path. Порядок поиска соответствует расположению путей в этом поле, первым просматривается каталог, путь к которому размещен вверху списка. Порядок поиска можно изменить или вообще удалить путь к какому-либо каталогу, для чего выделите каталог в поле MATLAB search path и определите его положение при помощи следующих кнопок:
Move to Top поместить вверх списка;
Move Up переместить вверх на одну позицию;
Remove удалить из списка;
Move Down переместить вниз на одну позицию;
Move to Bottom поместить вниз списка.
После внесения изменений следует сохранить информацию о путях поиска, нажав кнопку Save. При помощи кнопки Default можно
110