Смекни!
smekni.com

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

: двоеточие используется для указания диапазона (интервала изменения величины) и в качестве знака групповой операции над элементами матриц;

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

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

… три точки и более в конце строки отмечают продолжение выражения на следующей строке;

% знак процента обозначает начало комментария.

Большую матрицу можно определить поэлементно при помощи оператора цикла или набрать ее в обычном редакторе в виде ASCII-файла (например, data.ext), а затем считать при помощи команды

>>load data.ext

В результате матрица будет присвоена переменной data.

1.2. Матричные вычисления

1.2.1. Функции описания матриц

eye единичная матрица;

zeros нулевая матрица;

ones матрица из единиц;

rand случайная матрица со значениями из интервала [0,1];

hilb гильбертова матрица;

diag создание диагональной матрицы или выделение диагонали;

triu выделение верхней треугольной части матрицы;

tril выделение нижней треугольной части матрицы.

1.2.2. Знаки операций

+,- символы плюс и минус обозначают знак числа или операцию сложения или вычитания матриц, причем матрицы должны быть одной размерности;

* знак умножения обозначает матричное умножение;

‘ апостроф обозначает операцию транспонирования (вместе с комплексным сопряжением);

/ левое деление;

\ правое деление;

^ оператор возведения в степень.

1.2.3. Матричные характеристики

det вычисление определителя;

trace вычисление следа матрицы;

rank определение ранга матрицы;

norm вычисление нормы матрицы;

normest оценка нормы матрицы.

1.2.4. Команды линейной алгебры

inv вычисление обратной матрицы;

pinv вычисление псевдообратной матрицы;

null определение ядра (нуль-пространства) матрицы;

orth вычисление ортонормированного базиса.


1.2.5. Команды факторизации

chol разложение Холецкого для симметричных, положительно-определенных матриц;

cholnc неполное разложение Холецкого (представление симметричной матрицы в виде произведения верхней треугольной и транспонированной матриц);

lu LU-разложение (для квадратных матриц);

hess приведение к форме Хессенберга;

rref приведение к треугольной форме;

qr QR-разложение (представление матрицы в виде произведения ортогональной и верхней треугольной матриц).

1.2.6. Команды вычисления спектра

poly вычисление характеристического полинома для квадратной матрицы. В результате выполнения команды будут получены коэффициенты нормированного характеристического полинома a1, a2, ….,an:

det(pE – A)=pn +a1pn-1 +a2pn-2 + ….+ an;

polyeig вычисление собственных значений матричного полинома;

eig вычисление собственных чисел и векторов;

schur декомпозиция (разложение) Шура;

svd сингулярное разложение матрицы (SVD-разложение).

Для определения собственных значений и собственных векторов матрицы А служит команда

[U, D] = eig(A)

Здесь диагональная матрица D состоит из собственных чисел, а матрица U составлена из собственных векторов-столбцов матрицы А. Если в левой части указан единственный выходной параметр, то результатом будет выступать вектор-столбец собственных чисел eig(A).

Функция svd определяет сингулярное разложение матрицы. Сингулярное число s и соответствующие ему векторы u и v матрицы А удовлетворяют равенствам

Av = su, AТ u = sv.

Здесь AТтранспонированная матрица, s – вещественное число. Образуем матрицу S, в которой расположены на диагонали сингулярные числа. Тогда AV = US, AТU = VS, и A = USVТ. Диагональ матрицы S состоит из положительных значений квадратных корней матрицы АТА. Если матрица А симметричная и положительно определенная, то сингулярные числа совпадают с собственными значениями матрицы А.

Вектор сингулярных чисел получается при обращении с одним выходным параметром S = svd(А)

Для выполнения сингулярного разложения заданной матрицы А служит команда

>>[U,S,V] = svd(A),

где U, Vсоответственно, матрицы левых и правых сингулярных векторов, Sматрица сингулярных чисел.

1.3. Интегрирование MATLAB и Excel

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

1.3.1. Конфигурирование Excel

Перед тем как настраивать Excel на совместную работу с MATLAB, следует убедиться, что Excel Link входит в установленную версию MATLAB. В подкаталоге exclink основного каталога MATLAB или подкаталога toolbox должен находиться файл с надстройкой excllink.xla. Запустите Excel и в меню Tools выберите пункт Add-ins. Откроется диалоговое окно, содержащее информацию о доступных в данный момент надстройках. Используя кнопку Browse, укажите путь к файлу excllink.xla. В списке надстроек диалогового окна появится строка Excel Link 2.0 for use with MatLab с установленным флагом. Нажмите OK, требуемая надстройка добавлена в Excel.

Обратите внимание, что в Excel теперь присутствует панель инструментов Excel Link, содержащая три кнопки: putmatrix, getmatrix, evalstring. Эти кнопки реализуют основные действия, требуемые для осуществления взаимосвязи между Excel и MATLAB— обмен матричными данными, и выполнение команд MATLAB из среды Excel. При повторных запусках Excel надстройка excllink.xla подключается автоматически.

Согласованная работа Excel и MATLAB требует еще нескольких установок, которые приняты в Excel по умолчанию (но могут быть изменены). В меню Tools перейдите к пункту Options, открывается диалоговое окно Options. Выберите вкладку General и убедитесь, что флаг R1C1 reference style выключен, т.е. ячейки нумеруются A1, A2 и т.д. На вкладке Edit должен быть установлен флаг Move selection after Enter.

1.3.2. Обмен данными между MATLAB и Excel

Запустите Excel, проверьте, что проделаны все необходимые настройки так, как описано в предыдущем разделе (MATLAB должен быть закрыт). Введите в ячейки с A1 по C3 матрицу, для отделения десятичных знаков используйте точку в соответствии с требованиями Excel.

Рисунок 2 Пример ввода дробных чисел в Excel

Выделите на листе данные ячейки и нажмите кнопку putmatrix, появляется окно Excel с предупреждением о том, что MATLAB не запущен. Нажмите OK, дождитесь открытия MATLAB. Появляется диалоговое окно Excel со строкой ввода, предназначенной для определения имени переменной рабочей среды MATLAB, в которую следует экспортировать данные из выделенных ячеек Excel. Введите, к примеру, М и закройте окно при помощи кнопки OK. Перейдите к командному окну MATLAB и убедитесь, что в рабочей среде создалась переменная М, содержащая массив три на три:

Рисунок 3 Отображение массива М в командном окне.

Проделайте некоторые операции в MATLAB с матрицей М, например, обратите ее.

Вызов inv для обращения матрицы, как и любой другой команды MATLAB можно осуществить прямо из Excel. Нажатие на кнопку evalstring, расположенную на панели Excel Link, приводит к появлению диалогового окна, в строке ввода которого следует набрать команду MATLAB:

IM=inv(M)

Результат аналогичен полученному при выполнении команды в среде MATLAB.

Вернитесь в Excel, сделайте текущей ячейку A5 и нажмите кнопку getmatrix. Появляется диалоговое окно со строкой ввода, в которой требуется ввести имя переменной, импортируемой в Excel. В данном случае такой переменной является IM. Нажмите OK, в ячейки с A5 по A7 введены элементы обратной матрицы.

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

Вышеописанный подход является самым простым способом обмена информацией между приложениями — исходные данные содержатся в Excel, затем экспортируются в MATLAB, обрабатываются там некоторым образом и результат импортируется в Excel. Пользователь переносит данные при помощи кнопок панели инструментов Excel Link. Информация может быть представлена в виде матрицы, т.е. прямоугольной области рабочего листа. Ячейки, расположенные в строку или столбец, экспортируются, соответственно, в вектор-строки и вектор-столбцы MATLAB. Аналогично происходит и импорт вектор-строк и вектор-столбцов в Excel.

1.4. Программирование

1.4.1. М-файлы

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

Откройте меню File основного окна MATLAB и в пункте New выберите подпункт M-file. Новый файл открывается в окне редактора M-файлов, которое изображено на рисунке 4.