Смекни!
smekni.com

Методические указания к выполнению лабораторных работ по дисциплине «Интеллектуальные информационные системы» Санкт-Петербург (стр. 3 из 10)

Рисунок 4. Окнo редактора M-файлов

М-файлы в MATLAB бывают двух типов: файл-программы (Script M-Files), содержащие последовательность команд, и файл-функции, (Function M-Files), в которых описываются функции, определяемые пользователем.

1.4.2. Файл-программа

Наберите в редакторе команды, приводящие к построению двух графиков на одном графическом окне

Рисунок 5 Команды файла в окне редактора.

Сохраните теперь файл с именем mydemo.m в подкаталоге work основного каталога MATLAB, выбрав пункт Save as меню File редактора. Для запуска на выполнение всех команд, содержащихся в файле, следует выбрать пункт Run в меню Debug. На экране появится графическое окно Figure 1, содержащее графики функций.

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

Очень удобной возможностью, предоставляемой редактором М-файлов, является выполнение части команд. Закройте графическое окно Figure 1. Выделите при помощи мыши, удерживая левую кнопку, или клавишами со стрелками при нажатой клавише Shift, первые четыре команды и выполните их из пункта Text. Обратите внимание, что в графическое окно вывелся только один график, соответствующий выполненным: командам. Запомните, что для выполнения части команд их следует выделить и нажать клавишу F9.

Отдельные блоки М-файла можно снабжать комментариями, которые пропускаются при выполнении, но удобны при работе с М-файлом. Комментарии начинаются со знака процента и автоматически выделяются зеленым цветом, например:

Рисунок 6 Команды файла с комментариями.

Открытие существующего М-файла производится при помощи пункта Open меню File рабочей среды, либо редактора М-файлов.

1.4.3. Файл-функция

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

Для проведения предобработки данных многомерного анализа часто используют операцию центрирования. Имеет смысл один раз написать файл-функцию, а потом вызывать его всюду, где необходимо производить центрирование. Откройте в редакторе М-файлов новый файл и наберите

Рисунок 7 Пример файла – функции.

Слово function в первой строке определяет, что данный файл содержит файл-функцию. Первая строка является заголовком функции, в которой размещается имя функции и списка входных и выходных аргументов. В примере имя функции centering, один входной аргумент X и один выходной — Xc. После заголовка следуют комментарии, а затем — тело функции (оно в данном примере состоит из двух строк), где и вычисляется ее значение. Важно, что вычисленное значение записывается в Xc. Не забудьте поставить точку с запятой для предотвращения вывода лишней информации на экран. Теперь сохраните файл в рабочем каталоге. Обратите внимание, что выбор пункта Save или Save as меню File приводит к появлению диалогового окна сохранения файла, в поле File name которого уже содержится название centering. Не изменяйте его, сохраните файл функцию в файле с предложенным именем!

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

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

Рисунок 8 Команды функции перевода времени.

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

1.4.4. Создание графика

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

Функция plot имеет различные формы, связанные с входными параметрами, например plot(y) создает кусочно-линейный график зависимости элементов y от их индексов. Если в качестве аргументов заданы два вектора, то plot(x,y) создаст график зависимости y от x.

Рисунок 9 Пример команд для построения графика функции sin в интервале от 0 до 2p

Программа построила график зависимости, который отображается в окне Figure 1

Рисунок 10 График функции sin в интервале от 0 до 2p

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

Команда hold on позволяет добавлять кривые на существующий график. Функция subplot позволяет выводить множество графиков в одном окне

Рисунок 11. Пример использования функции subplot.

Рисунок 12. Результат использования функции subplot.

1.4.5. Печать графиков

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

1.5. Лабораторная работа № 1

Цель работы: освоить операции матричного вычисления средствами универсальной системы MATLAB.

1.5.1. Порядок выполнения работы

Средствами универсальной системы MATLAB получить для исходной матрицы А размерности (3х3) следующие величины:

- транспонированную, псевдообратную, евклидову норму;

- собственные значения и собственные векторы;

- сингулярные числа, правые и левые сингулярные векторы.

1.5.2. Оформление отчета

Отчетом о лабораторной работе является файл с именем, совпадающим с фамилией студента с результатами работы в папке Мои документы/номер группы.

1.5.3. Контрольные вопросы

1. Что такое иммунокомпьютинг?

2. Перечислите основные вычислительные процедуры иммунокомпьютинга.

3. Свойства сингулярного разложения матриц.

4.

5.

6.

7.

8.

9.

10.

2. ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА СИНГУЛЯРНОГО РАЗЛОЖЕНИЯ МАТРИЦ

2.1. Математический аппарат

Как известно, для произвольной матрицы А размерности (m´ n) существует так называемое сингулярное разложение, т.е. представление матрицы в виде

A = USVT,

(1)

где U ‑ (m ´ m) и V – (n x n)– ортогональные квадратные матрицы, удовлетворяющие критерию ортогональности:

VVT = VTV = Em´m, UUT = UT U = En´n,

где Eединичные матрицы соответствующих размерностей.

Матрица S состоит из квадратного диагонального блока размерности r´r (r = min (m, n)) с неотрицательными элементами на главной диагонали и, если

, из дополнительных нулевых строк или столбцов

S = [S;0], если m < n,

S = [S;0]T, если m > n,

S = S, если m = n,

S= diag {s1,s2,…,sr, s1

s2
sr
}.

Числа si, i = 1, 2,….,r называются сингулярными числами матрицы A, которые определяются матрицей A однозначно.

Сингулярное разложение вещественной прямоугольной матрицы A в покомпонентной форме имеет следующее представление:

A= s1U1V1T + s2U2V2T + …. +srUrVrT, (2)