Весьма представителен
в MATLAB набор матричных функций. Они перечислены ниже.
ехрт(Х)
— возвращает е
х
от матрицы X. Комплексный результат получается,
если X имеет неположительные собственные значения. Функция expm является
встроенной и использует разложение Паде. Ее вариант в виде m-файла располагается
в файле expm1.m. Второй метод вычисления матричной экспоненты использует
разложение Тейлора и находится в файле expm2.m. Метод Тейлора не рекомендуется
применять как основной, так как он зачастую бывает относительно медленным
и неточным. Реализация третьего способа вычисления матричной экспоненты
находится в файле ехртЗ.m и использует спектральное разложение матрицы А.
Этот метод неудачен, если входная матрица не имеет полного набора линейно
независимых собственных векторов.
funm(X,
@f unction)[
Форма funm(X,@function), как в предыдущих версиях MATLAB,
по-прежнему возможна, но не рекомендуется.— Примеч. ред.
]— возвращает
любую функцию от квадратной матрицы X, если правильно ввести имя, составленное
из латинских букв. Команды funm(X ,@exp), funm(X,@sqrt), funm(X.@log) Hexpm(X),sqrtm(x),logm(X)
вычисляют соответственно одинаковые функции, но используют разные алгоритмы.
Однако предпочтительнее использовать ехрт(Х), sqrtm(x).logm(X);
[Y.esterr]
= funm(X.@f uncti on) — не выдает никакого сообщения, но помимо результата
вычислений в матрице Y возвращает грубую оценку относительной погрешности
результата вычислений funm в esterr. Если матрица X — действительная симметрическая
или комплексная эрмитова, то ее форма Шура диагональна и полученный результат
может иметь высокую точность.
logm(X)
— возвращает логарифм матрицы. Результат получается комплексным, если X
имеет отрицательные собственные значения;
[Y.esterr]=logm(X)
— не выдает какого-либо предупреждающего сообщения, но возвращает оценку
погрешности в виде относительной невязки norm(expm(Y)-X)/norm(X);
Если матрица
X — действительная симметрическая или комплексная эрмитова, то теми же свойствами
обладает и logm(X).
Пример:
а=
31.22030.0000
23.3779
38.965920.085530.0593
31.1705-0.000023.4277
»
logm(a)
ans =
1.0000
0.0000 3.0000
1.0000
3.0000 1.0000
4.0000
-0.0000-0.0000
sqrtm(X)
— возвращает квадратный корень из X, соответствующий неотрицательным действительным
частям собственных значений X. Результат получается комплексным, если X
имеет отрицательные собственные значения. Если X вырожденная, то выдает
предупреждение об ошибке;
[Y.resnonii]=sqrtm(X)
— не выдает какого-либо предупреждающего сообщения, но возвращает оценку
погрешности в виде относительной невязки по нормам Фробениуса (см. урок
11) norm(X-Y
^
2, ' fro') /norm(X, ' fro') ;
[Y. alpha,
condest]=sqrtm(X) — с тремя выходными аргументами функция помимо квадратного
корня возвращает также фактор стабильности (но не невязку!) и оценку числа
обусловленности результирующей матрицы Y.