Системные переменные и константы

Системные переменные и константы устанавливаются системой при ее загрузке или автоматически формируются в процессе вычислений. Некоторые

из них приведены в табл. 3.8.

Таблица 3.8

Имя Функция
ans Результат выполнения последней операции
computer Возвращает строку с информацией о типе компьютера, на котором установлена система Matlab
i или j Мнимая единица (равная sqrt(–1)), которая используется для задания мнимой части комплексных чисел
Inf Возвращает представление положительной бесконечности для машинной арифметики
pi Число p (отношение длины окружности к ее диаметру), pi возвращает число с плавающей запятой, ближайшее к значению p

Существуют также функции для обработки множеств, побитовой логической обработки, даты и времени и т. д.

Специальные символы

Специальные символы предназначены для создания самых разнообразных объектов входного языка и языка программирования системы и придания им различных форм.

Таблица 3.9

Обозначение Функция
: Двоеточие: формирование подвекторов и подматриц из векторов и матриц. Оператор – один из наиболее часто используемых в системе Matlab
( ) Круглые скобки: а) задание порядка выполнения операций в арифметических выражениях, б) указание последовательности аргументов функции, в) указание индексов элемента вектора или матрицы
[ ] Квадратные скобки: формирование векторов и матриц
{ } Фигурные скобки: формирование массивов ячеек
. Десятичная точка: отделение дробной части чисел от целой
. Точка: выделение поля структуры
... Продолжение строки
, Запятая: а) разделение индексов элементов матрицы, б) разделение аргументов функции, в) разделение операторов языка Matlab
; Точка с запятой: а) внутри круглых скобок – разделение строк матриц, б) в конце операторов – запрет вывода на экран результата вычислений
% Комментарий
= Присваивание
' Транспонирование
[,] и [;] Горизонтальная и вертикальная конкатенации соответственно

Некоторые специальные символы приведены в табл. 3.9.

Элементарные функции

1. Алгебраические и арифметические функции. В системе Matlab определены представленные в табл. 3.10 алгебраические и арифметические функции.

Таблица 3.10

Наименование Назначение и возвращаемые значения
abs(X) Абсолютная величина для каждого элемента вектора X
ехр(Х) Экспонента для каждого элемента X
log(X), log2(X), log10(X) Логарифмы элементов массива X: натуральный, по основаниям 2 и 10 соответственно
sqrt(X) Квадратный корень каждого элемента массива X
G=gcd(A, В) Массив, содержащий наибольшие общие делители соответствующих эле-ментов массивов целых чисел А и В
lcm(A, B) Наименьшие общие кратные для соответствующих парных элементов массивов А и В. Массивы А и В должны содержать положительные целые числа и иметь одинаковую размерность (любой из них может быть скаляром)
mod(A, B) Остаток от деления A на B

Таблица 3.11

Матрица X Операции с X Результат выполнения
»X = [1 –2 4.3 –5 7] X = 1.00 –2.00 4.30 –5.00 7.00 »abs(X) ans = 1.0000 2.0000 4.3000 5.0000 7.0000
»exp(X) ans = 1.0e+003 * 0.0027 0.0001 0.0737 0.0000 1.0966
»log(X) ans = 0 0.6931+3.1416i 1.4586 1.6094+3.1416i 1.9459
»log2(X) ans = 0 1.0000+4.5324i 2.1043 2.3219+4.5324i 2.8074
»log10(X) ans = 0 0.3010+1.3644i 0.6335 0.6990+1.3644i 0.8451
»sqrt(X) ans = 1.0000 0+1.4142i 2.0736 0+2.2361i 2.6458
Матрица A Матрица B Операция 1 Операция 2 Операция 3
»A = [1 23 1 34] A = 1 23 1 34 »B =[5 12 1 1] B = 5 12 1 1 »G = gcd(A, B) G = 1 1 1 1 »lcm(A, B) ans = 5 276 1 34 »mod(A, B) ans = 1 11 0 0

Пример 3.1. Использование функций иллюстрирует табл. 3.11.

2. Функции комплексного аргумента. Для работы с комплексными числами и данными в Matlab используются функции комплексного аргумента (табл. 3.12).

Таблица 3.12

Наименование Назначение
angle(Z) Возвращает аргумент комплексного числа в радианах для каждого элемента массива комплексных чисел Z. Углы находятся в диапазоне [–p; +p]. Для комплексного Z модуль и аргумент вычисляются следующим образом: R=abs(Z) – модуль, theta = angle(Z) – аргумент. При этом формула Z=R.*exp(i*theta) дает переход от показательной формы представления комплексного числа к алгебраической
imag(Z) Возвращает мнимые части всех элементов массива Z
real(Z) Возвращает вещественные части всех элементов комплексного массива Z
conj(Z) Возвращает число, комплексно-сопряженное аргументу Z. Если Z комплексное, то conj(Z) = real(Z) – i*imag(Z)

Таблица 3.13

Матрица Операция 1 Операция 2 Операция 3
»Z = 5–i*3 Z = 5.0000 – 3.0000i »theta = angle(Z) theta = –0.5404 »R = abs(Z) R = 5.8310 »Z = R .* exp(i*theta) Z = 5.0000 – 3.0000i
»Z = [2+i, 1+2i, 2+3i]; »imag(Z) ans = 1 2 3 »real(Z) ans = 2 1 2 »conj(2+i) ans = 2.0000 – 1.0000i

Пример 3.2. Работу с комплексными аргументами иллюстрирует табл. 3.13.

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

углы в функциях задаются в радианах).

Таблица 3.14

Наименование Назначение и возвращаемые значения
acos(X) Арккосинус для каждого элемента X. Для действительных значений X из области [–1, 1] возвращает действительное значение из диапазона [0, p]; для действительных значений X вне области [–1, 1] – комплексное число
acot(X) Арккотангенс для каждого элемента X
acsc(X) Арккосеканс для каждого элемента X
asec(X) Арксеканс для каждого элемента X
asin(X) Арксинус для каждого элемента X
atan(X) Арктангенс для каждого элемента X
atan2(Y, X) Массив Р той же размерности, что X и Y, содержащий поэлементно арктангенсы отношения вещественных частей Y и X
cos(X) Косинус для каждого элемента X
cot(X) Котангенс для каждого элемента X
csc(X) Косеканс для каждого элемента X
sec(X) Массив той же размерности что и X, состоящий из секансов элементов X
tan(X) Тангенс для каждого элемента X

Таблица 3.15

Матрица Операция 1 Операция 2
»X = [–0.5 0 0.5] X = –0.5000 0 0.5000 »Y = cos(X) Y = 0.8776 1.0000 0.8776 »Y = sin(X) Y = –0.4794 0 0.4794

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

4. Гиперболические и обратные им функции. Гиперболические функции (табл. 3.16) вычисляются для каждого элемента массива. Входной массив до-

пускает комплексные значения.

Таблица 3.16

Наимено-вание Назначение функции, выполняемой для каждого элемента X Наимено-вание Назначение функции, выполняемой для каждого элемента X
acosh(X) Гиперболический арккосинус cosh(X) Гиперболический косинус
acoth(X) Гиперболический арккотангенс coth(X) Гиперболический котангенс
acsch(X) Гиперболический арккосеканс csch(X) Гиперболический косеканс
asech(X) Гиперболический арксеканс sech(X) Гиперболический секанс
asinh(X) Гиперболический арксинус sinh(X) Гиперболический синус
atanh(X) Гиперболический арктангенс tanh(X) Гиперболический тангенс

Таблица 3.17

Применение функций для скалярного значения
»Y = acosh(0.7) Y = 0 + 0.7954i »Y = acoth(0.1) Y = 0.1003 + 1.5708i »Y = acsch(1) Y = 0.8814 »Y = asech(4) Y = 0 + 1.3181i »Y = asinh(2.456) Y = 1.6308
Применение функций для вектора
»Х = [0.84 0.16 1.39]; »Х = [1 23];
»atanh(X) ans = 1.2212 0.1614 0.9065 + 1.5708i »cosh(X) ans = 1.0e+009 * 0.0000 4.8724
           

Пример 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) возвращает Системные переменные и константы - student2.ru от матрицы 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.

Наши рекомендации