Пример 3.4. Варианты задания аргументов для гиперболических функций и результаты их выполнения приведены в табл. 3.17.
5. Функции округления и знака. Ряд особых функций (табл. 3.18) служат для выполнения операций округления числовых данных и анализа их знака.
Таблица 3.18
Наимено-вание |
Назначение |
fix(A) |
Массив А с элементами, округленными до ближайшего к нулю целого числа. Для комплексного А действительные и мнимые части округляются отдельно |
floor(A) |
Массив А с элементами, представляющими ближайшее меньшее или равное соответствующему элементу А целое число. Для комплексного А действительные и мнимые части преобразуются отдельно |
rem(X, Y) |
X – fix(X./Y).*Y, где fix(X./Y) – целая часть от частного X./Y |
ceil(A) |
Ближайшее большее или равное А целое число. Для комплексного А действительные и мнимые части округляются отдельно |
round(X) |
Округленные до ближайшего целого элементы массива X. Для комплексного X действительные и мнимые части округляются отдельно |
sign(X) |
Массив Y той же размерности, что и X, где каждый из элементов Y равен: 1, если соответствующий элемент X больше 0; 0, если соответствующий элемент X равен 0; –1, если соответствующий элемент X меньше 0. Для ненулевых действительных и комплексных X – sign(X)=X./abs(X) |
Таблица 3.19
Варианты матриц |
Результаты операций |
|||
»А = [1/3 2/3; 4.99 5.01] A = 0.3333 0.6667 4.9900 5.0100 |
»fix(A) ans = 0 0 4 5 |
»floor(А) ans = 0 0 4 5 |
»ceil(A) ans = 1 1 5 6 |
|
»X = [1 23] X = 1 23 |
»Y = [–1.6308] Y = –1.6308 |
»sign(X) ans = 1 1 |
»round(Y) ans = –2 |
»rem(X, Y) ans = 1.0000 0.1693 |
Примеры операций приведены в табл. 3.19.
Весьма представителен в 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.
Цель выполнения задания: использование рассмотренных операций с матрицами, содержащими целые, вещественные и комплексные значения.
Требования и рекомендации к выполнению задания:
Предварительно освоить обозначения из 3.6 и 3.7, использующиеся при задании действий и значений или в составе системных сообщений.
Индивидуальные задания включают работу с 12 разновидностями операций, формат команд и результат выполнения которых должен быть предъявлен в отчете.
Матрицы для обработки могут быть созданы тремя способами: а) случайный образом (функция rand); б) перечислением значений; в) заполнением матриц с помощью операторов цикла (разд. 5). Размеры матриц указаны в табл. 2.15.
Примеры оформления операций и данных представлены ранее в разд. 3 в соответствующих подразделах.
Номера индивидуальных
заданий выбираются из 3.1–3.5, 3.8, 3.9 согласно
двум последним цифрам номера студенческого
билета по формуле: остаток от деления
числа из двух цифр на количество операций
N
в соответствующем пункте задания,
увеличенный на 1 (например, mod(631118,
N)
+ 1).