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

Лаб_практикум_ОВИ_03_06_13

.pdf
Скачиваний:
61
Добавлен:
14.04.2015
Размер:
4.1 Mб
Скачать

В рамках данной интерпретации конъюнктивный оператор представляет собой оператор вычисления алгебраического произведения – 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]