- •Элементарные математические вычисления
- •Арифметические операторы и функции
- •Вычисление произведений
- •Суммирование элементов
- •Операторы отношения и их функции
- •Логические операции
- •Системные переменные и константы
- •Специальные символы
- •Элементарные функции
- •Матричные функции
- •Цель, требования и рекомендации к выполнению задания
- •Варианты заданий
Матричные функции
Весьма представителен в Matlab набор матричных функций:
expm(X) возвращает от матрицы X (табл. 3.20). Комплексный результат получается, если X имеет неположительные собственные значения. Функция expm является встроенной и использует разложение Паде. Ее вариант располагается в виде m-файла «expm1.m». Второй метод вычисления матричной экспоненты использует разложение Тейлора и находится в файле «expm2.m». Реализация третьего способа вычисления матричной экспоненты находится в файле «expm3.m» и использует спектральное разложение матрицы А. Этот метод неудачен, если входная матрица не имеет полного набора
линейно независимых собственных векторов;
Таблица 3.20
Матрица |
Операция |
Матрица |
Операция |
»X = [1 2; 4 5] X = 1 2 4 5 |
»expm(X) ans = 136.1004 185.0578 370.1155 506.2159 |
»X = [1 2;4 5] X = 1 2 4 5 |
»[Y, esterr] = funm(X, @sqrt) Y = 0.5373 + 0.5373i 0.7339 – 0.1967i 1.4679 – 0.3933i 2.0052 + 0.1440i esterr = 9.5688e–016 |
funm(X, @function) возвращает любую функцию от квадратной матрицы X, если правильно ввести имя, составленное из латинских букв. Команды funm(X, @exp), funm(X, @sqrt), funm(X, @log), Hexpm(X), sqrtm(X), logm(X) вычисляют одинаковые функции, но используют соответственно разные алгоритмы. Однако предпочтительнее использовать ехрm(Х), sqrtm(X), logm(X). Операция [Y, esterr] = funm(X, @function) не выдает никакого сообщения, но кроме результата вычислений в матрице Y возвращает грубую оценку относительной погрешности результата вычислений funm в esterr (табл. 3.20). Если матрица X – действительная симметрическая или комплексная эрмитова, то ее форма Шура диагональна и полученный результат может иметь высокую точность;
logm(X) возвращает логарифм матрицы (табл. 3.21). Результат получается комплексным, если X имеет отрицательные собственные значения; если матрица X – действительная симметрическая или комплексная эрмитова, то теми же свойствами обладает и logm(X). Операция [Y, esterr] = logm(X) не выдает какого-либо предупреждающего сообщения, но возвращает оценку погрешности в виде относительной невязки norm(expm(Y) – X) / norm(X);
Таблица 3.21
Матрица X |
Операция |
Матрица X |
Операция |
»X = [1 2;4 5] X = 1 2 4 5 |
»Y = logm(X) Y = –0.2110+2.4777i 0.7603–0.9069i 1.5207–1.8138i 1.3097+0.6639i |
»X = [1 2;4 5] X = 1 2 4 5 |
»Y = sqrtm (X) Y = 0.5373+0.5373i 0.7339–0.1967i 1.4679–0.3933i 2.0052+0.1440i |
sqrtm(X) возвращает квадратный корень из X, соответствующий неотрицательным действительным частям собственных значений X. Результат получается комплексным, если X имеет отрицательные собственные значения. Если X вырожденная, то выдает предупреждение об ошибке (табл. 3.21). Операция [Y, resnonii] = sqrtm(X) возвращает оценку погрешности в виде относительной невязки по нормам Фробениуса; [Y, alpha, condest] = sqrtm(X) – функция с тремя выходными аргументами, возвращающая помимо квадратного корня фактор стабильности и оценку числа обусловленности результирующей матрицы Y.