Системные переменные и константы устанавливаются системой при ее загрузке или автоматически формируются в процессе вычислений. Некоторые
из них приведены в табл. 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) возвращает от матрицы 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.