Глава 1. Принципы работы Matlab и основы вычислений
состоящая их строк с i-й по j-ю и одновременно столбцов с m-го по n-й. Рассмотрим некоторые примеры использования оператора "двоеточие". В частности, исходная матрица A вводится командой
A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
A = |
2 |
3 |
4 |
1 |
|||
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
Как и ранее, здесь и далее жирным шрифтом выделен ввод пользователя. В следующих командах оператор "двоеточие" используется для извлечения подматриц из исходной матрицы A:
>>A(1:3,2) ans =
2
6
10
>>A(3,2:4) ans =
10 11 12 >> A(3:4,1:2) ans =
9 10
13 14
Например, командой A(1:3,2) возвращается вектор-столбец, составленный из элементов с первой по третью строку во втором столбце матрицы A. Командой A(3,2:4) возвращается вектор-строка, который составлен из элементов третьей строки со второго по четвертый столбец включительно матрицы A. Наконец, командой A(3:4,1:2) возвращается подматрица матрицы A, верхний левый элемент которой имеет индексы (3,1), а правый нижний элемент имеет индексы (4,2).
Встроенные математические функции
Ну зачем такие сложности?
К/ф "Приключения Шерлока Холмса и доктора Ватсона. Собака Баскервилей"
В Matlab по умолчанию доступно достаточно большое количество встроенных функций. Ядро их составляют математические функции, которые на практике используются сравнительно часто. Некоторые из них перечислены в табл. 1.5.
31
Самоучитель Matlab
Табл. 1.5. Некоторые математические функции Matlab
Функция |
Описание |
|
|
abs() |
Модуль числа (в том числе и комплексного), указанного аргумен- |
том функции |
|
|
|
acos() |
Арккосинус для числа, указанного аргументом функции |
acosd() |
Арккосинус аргумента функции. Результат представлен в граду- |
сах |
|
|
|
acot() |
Арккотангенс числа, указанного аргументом функции |
acotd() |
Арккотангенс аргумента функции. Результат представлен в гра- |
дусах |
|
|
|
acsc() |
Арккосеканс числа, указанного аргументом функции |
acscd() |
Арккосеканс аргумента функции. Результат представлен в гра- |
дусах |
|
|
|
asec() |
Арксеканс числа, указанного аргументом функции |
asecd() |
Арксеканс аргумента функции. Результат представлен в градусах |
asech() |
Арксеканс гиперболический от числа, указанного аргументом |
функции |
|
|
|
asin() |
Арксинус от числа, указанного аргументом функции |
asind() |
Арксинус аргумента функции. Результат представлен в градусах |
asinh() |
Арксинус гиперболический от числа, указанного аргументом |
функции |
|
|
|
atan() |
Арктангенс от числа, переданного аргументом функции |
|
У функции два аргумента (например, atan(y,x)). В качестве |
atan2() |
результата возвращается направление (угол в диапазоне зна- |
чений от -π до π) на точку с соответствующими координатами |
|
|
(в данном случае, точка с координатами (y,x)). Если аргументы |
|
комплексные, их мнимые части игнорируются |
atand() |
Арктангенс аргумента функции. Результат представлен в градусах |
atanh() |
Арктангенс гиперболический от числа, переданного аргументом |
функции |
|
|
|
ceil() |
Функция округления аргумента в направлении плюс бесконеч- |
ности – округление выполняется до целого значения, которое не |
|
|
меньше, чем аргумент |
|
|
cos() |
Косинус от числа, переданного аргументом функции |
cosd() |
Косинус аргумента функции, указанного в градусах |
cosh() |
Косинус гиперболический от числа, переданного аргументом |
функции |
|
|
|
cot() |
Котангенс от числа, переданного аргументом функции |
cotd() |
Котангенс аргумента функции, указанного в градусах |
coth() |
Котангенс гиперболический от числа, переданного аргументом |
функции |
|
|
|
csc() |
Косеканс от числа, переданного аргументом функции |
32
|
|
Глава 1. Принципы работы Matlab и основы вычислений |
|||
|
|
|
|
|
|
Функция |
|
Описание |
|
||
|
|
|
|
|
|
cscd() |
Косеканс аргумента функции, указанного в градусах |
|
|||
csch() |
Косеканс гиперболический от числа, переданного аргументом |
|
|||
функции |
|
|
|
||
|
|
|
|
|
|
exp() |
Экспонента: показательная функция с основанием-константой Эй- |
|
|||
лера и показателем степени, определяемым аргументом функции |
|
||||
|
|
|
|
|
|
expm1() |
Командой вида expm1(x) с повышенной точностью вычисляет- |
||||
ся значение |
|
|
|
||
|
|
exp(x)-1 |
|
|
|
factor() |
Функцией возвращается вектор-строка с простыми множителями |
|
|||
числа (с учетом их кратности), указанного аргументом функции |
|
||||
|
|
|
|
|
|
factorial() |
Функция для вычисления факториала числа, указанного аргумен- |
|
|||
том функции |
|
|
|
||
|
|
|
|
|
|
fix() |
Функция округления в направлении нуля. Результатом является |
|
|||
число, получающееся округлением аргумента функции до бли- |
|
||||
|
жайшего целого значения в направлении нуля |
|
|||
|
|
|
|
|
|
floor() |
Функция округления аргумента до ближайшего целого значения, |
|
|||
которое не превышает аргумент, – округление в направлении ми- |
|
||||
|
нус бесконечности |
|
|
|
|
|
|
|
|
|
|
gcd() |
Функцией возвращается наибольший общий делитель целых чи- |
|
|||
сел или целочисленных массивов – аргументов функции |
|
||||
|
|
|
|
|
|
hypot() |
Корень квадратный из суммы квадратов модулей аргументов, |
|
|||
переданных функции |
|
|
|
||
|
|
|
|
|
|
|
У функции два аргумента. Результатом является целая часть от |
|
|||
idivide() |
деления первого аргумента на второй. Можно также указать оп- |
|
|||
цию – в одинарных скобках имя функции, с помощью которой вы- |
|
||||
|
полняется округление |
|
|
|
|
|
|
|
|
|
|
lcm() |
Функцией в качестве результата возвращается наименьшее об- |
|
|||
щее кратное для целых чисел или целочисленных массивов – ар- |
|
||||
|
гументов функции |
|
|
|
|
|
|
|
|
|
|
log() |
Натуральный логарифм от числа, указанного аргументом функции |
|
|||
log10() |
Логарифм по основанию 10 от числа, указанного аргументом |
|
|||
функции |
|
|
|
||
log1p() |
Командой вида log1p(x) с повышенной точностью вычисляет- |
|
|||
ся значение |
|
|
|
||
|
|
log(1+x) |
|
|
|
log2() |
Логарифм по основанию 2 от числа, указанного аргументом |
|
|||
функции |
|
|
|
||
mod() |
Функцией возвращается остаток от деления значения первого ар- |
|
|||
гумента функции на значение второго аргумента. Целая часть от |
|
||||
|
деления определяется функцией froor() |
|
|||
|
Функциейвкачествезначениявозвращаютсябиномиальныекоэф- |
|
|||
|
фициенты. Если функция вызвана в формате nchoosek(n,k), |
|
|||
nchoosek() |
то в качестве результата возвращается значение |
|
|||
|
Cnk = |
n ! |
|
|
|
|
|
k !(n −k)! |
|
||
|
|
|
|
||
|
|
|
|
|
|
33
Самоучитель Matlab
Функция |
Описание |
|
|
nextpow2() |
Функцией в качестве значения возвращается ближайшее целое |
число – степень двойки, которое не меньше модуля аргумента |
|
|
функции |
|
|
nthroot() |
Командой nthroot(x,n) в качестве значения возвращается |
корень порядка n (второй аргумент) из действительного числа |
|
|
или элементов действительного массива x (первый аргумент ) |
|
Функция может вызываться с одним или двумя аргументами. Если |
|
у функции один аргумент (массив) и функция вызывается в фор- |
pow2() |
мате pow2(x), то в качестве результата возвращается массив |
степеней двойки, показатели степени определяются массивом |
|
|
x. Если функция вызывается с двумя аргументами в формате |
|
pow2(x,y), то результатом является x.*2.^y |
|
У функции два аргумента. Если аргументы скалярные, в каче- |
power() |
стве результата возвращается значение первого аргумента, воз- |
веденное в степень, определяемую вторым аргументом. В бо- |
|
|
лее общем случае в качестве результата выполнения команды |
|
power(A,B) возвращается 'A.^B' |
primes() |
Функцией генерируется список простых чисел. Количество чисел |
указывается аргументом функции |
|
|
|
rem() |
Функцией возвращается остаток от деления значения первого ар- |
гумента функции на значение второго аргумента. Целая часть от |
|
|
деления определяется функцией fix() |
round() |
Функция округления аргумента до ближайшего целого значения |
sec() |
Секанс от числа, указанного аргументом функции |
secd() |
Секанс аргумента функции, указанного в градусах |
sign() |
Знак числа, указанного аргументом функции (для положительных |
чисел – единица, для отрицательных чисел – минус единица, для |
|
|
нуля - ноль) |
|
|
sin() |
Синус от числа, указанного аргументом функции |
sind() |
Синус аргумента функции, указанного в градусах |
sqrt() |
Корень квадратный из числа, указанного аргументом функции |
tan() |
Тангенс от числа, указанного аргументом функции |
tand() |
Тангенс аргумента функции, указанного в градусах |
Хотя большинство из представленных выше функций с математической точки зрения определены для скалярных величин, обычно они могут применяться и для аргументов-матриц. В этом случае действие функционального оператора применяется к каждому из элементов матрицы. Например, если переменная A является матрицей с элементами A(i,j), то в результате выполнения команды exp(A) получим матрицу того же ранга, а ее элементы вычисляются как exp(A(i,j)). В некоторых случаях такой подход неприемлем. Существуют так называемые матричные функции, аргументами которых по определению являются матрицы (в основном квадратные). Результат этих функций вычисляется по алгоритмам, разработанным специ-
34
Глава 1. Принципы работы Matlab и основы вычислений
ально для матриц. Так, в Matlab есть встроенные матричные функции для экспоненты, логарифма и квадратного корня. Это соответственно функции expm(), logm() и sqrtm(). Например, если A – квадратная матрица, то функцией expm(A) вычисляется матричная экспонента. По определению
∞ An
это ряд exp(A) = ∑ . Результатом является матрица, которая вычис-
n=0 n !
ляется, как правило, на основе собственных чисел и собственных векторов матрицы A. Матричный логарифм для аргумента-матрицы A, вычисляемый инструкцией logm(A), представляет собой матрицу такую, что матричная экспонента от нее равна матрице A. Другими словами, по определению если B=logm(A), то expm(B)=A, и функция logm() является обратной к функции expm(). Аналогично, в результате извлечения квадратного корня из матрицы A с помощью функции sqrtm() получаем матрицу, которая, будучи возведенной в квадрат, дает матрицу A. Например, если B=sqrtm(A), то B*B=A.
В Matlab также широко представлены специальные функции, некоторые их них приведены в табл. 1.6.
Табл. 1.6. Некоторые специальные математические функции Matlab
Функция |
|
|
|
|
|
|
|
Описание |
|
|
|
|
|
||||
|
Функция Эйри. Командой airy(x) в качестве результата |
||||||||||||||||
|
возвращается функция y(x), являющаяся одним из реше- |
||||||||||||||||
|
ний уравнения |
d2y(x) |
−xy(x) = 0, а именно возвращается |
||||||||||||||
|
|
|
|
||||||||||||||
|
|
|
|
|
dx2 |
|
x |
K1 3 ( |
2 |
x3 2 ), где |
|||||||
|
функция Эйри первого рода Ai(x) = |
1 |
|
||||||||||||||
|
π |
3 |
3 |
||||||||||||||
|
Kν (z) - модифицированная функция Бесселя второго рода |
||||||||||||||||
airy() |
индекса ν |
. Функция также может вызываться с двумя аргу- |
|||||||||||||||
ментами в формате airy(k,x). В этом случае для k=0 |
|||||||||||||||||
|
|||||||||||||||||
|
возвращается функция Ai(x), для k=1 возвращается произ- |
||||||||||||||||
|
водная Ai′(x), для k=2 возвращается независимое решение |
||||||||||||||||
|
Bi(x) = |
|
x |
(I−1 3 ( |
2 |
x3 2 )+ I1 3 ( |
2 |
x3 2 )), где Iν (z) - моди- |
|||||||||
|
|
3 |
3 |
3 |
|||||||||||||
|
фицированная функция Бесселя первого рода индекса ν , для |
||||||||||||||||
k=3 возвращается производная Bi′(x)
|
Функция Бесселя третьего рода |
(функция |
Ханкеля). |
||
|
При |
вызове функции с |
тремя аргументами |
в форма- |
|
besselh() |
те |
besselh(n,k,x) |
возвращается функция Ханкеля |
||
Hn(k)(x) = Jn(x) +(−1)k +1iYn(x), где |
k = 1,2 , |
а Jn(x) и |
|||
|
Yn(x) - функции Бесселя индекса n первого и второго рода со- |
||||
|
ответственно |
|
|
|
|
35