Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебник Математические пакеты

.pdf
Скачиваний:
43
Добавлен:
23.12.2022
Размер:
6.39 Mб
Скачать

 

Системные константы. Таблица 1.2.2-3

Системная

Назначение

Значения системных

константа

констант

 

%i

Мнимая единица

sqrt(-1)

%pi

Число π

3.1415926…

%eps

Погрешность числа с плавающей точкой

2-52

 

%e

Основание натурального логарифма

2.71828182

 

%inf

Значение машинной бесконечности

 

 

 

 

 

 

%nan

Указание на нечисловой характер данных

 

 

 

(Not-a-Number)

 

 

%s

Переменные, используемые для определе-

--> z = poly(0, "z");

%z

ния полиномов

--> s = poly(0, "s");

ans

Переменная, хранящая результат послед-

 

 

 

ней операции

 

 

 

 

 

 

 

 

 

 

211

Функции, определяющие структуру матрицы. Таблица 1.2.2-4

Функция

Назначение

 

Пример использования

length(М)

Возвращает число элементов

--> М

= [1 2 3;2 3 4;4 5 6];

 

 

в матрице

--> length(M)

 

 

ans

=

 

 

 

 

9.

 

 

 

 

--> V

= [3 4 5 6 7];

 

 

 

--> length(V)

 

 

ans

=

 

 

 

 

5.

 

 

length(Y(:, 1))

Возвращает число строк

--> X

= [1 2;2 3;4 5];

 

 

матрицы

--> length(X(:, 1))

 

 

ans

=

 

 

 

 

3.

 

 

length(X(1, :))

Возвращает число столбцов

--> X

= [1 2;2 3;4 5];

 

 

матрицы

--> length(М(1, :))

 

 

ans

=

 

 

 

 

2.

 

 

 

Возвращает вектор, содержа-

--> M

= [1 3; 2 4; 4 6];

 

 

щий количество строк и

--> size(М)

 

столбцов матрицы М, или

ans

=

 

 

 

3.

3.

 

 

только число строк, или

 

 

 

 

 

 

 

 

только число столбцов

--> [n, m] = size(M)

 

 

size(М)

 

m

=

 

 

[n, m] = size(М)

 

 

3.

 

 

size(M, 1)

 

n

=

 

 

size(M, 2)

 

 

2.

 

 

 

 

--> size(M, 1)

 

 

ans

=

 

 

 

 

2.

 

 

 

 

--> size(M, 2)

 

 

ans

=

 

 

 

 

3.

 

 

ndims(T)

Возвращает число измерений

--> T

= [2 3 4; 4 3 2; 5 7 8];

n = ndims(T)

матрицы

--> ndims(T)

 

 

ans

=

 

 

 

 

2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

212

Алгебраические матричные операции и функции. Таблица 1.2.2-5

Операции

Назначение

 

Описания

 

и функции

 

 

 

 

 

+

Сложение

A + B складывает матрицы A и B.

 

 

 

 

 

 

 

+

Унарный плюс

+A возвращает A.

 

 

 

 

 

 

 

-

Вычитание

A - B вычитает B из A.

 

 

 

 

 

 

 

-

Унарный минус

-A меняет знакA.

 

 

 

 

 

 

 

*

Матричное

C = A * B – алгебраическое произведение мат-

 

 

умножение

риц A и B, при условии, что количество столб-

 

 

 

цов A равно числу строк B.

 

^

Матричное

A^B – возведение матрицы A в степень B, если B яв-

 

 

возведение в степень

ляется скаляром. Для других значений B вычисле-

 

 

 

ния включают собственные значения и собственные

 

 

 

вектора.

 

 

 

/

Деление матриц

X = B / A – решение уравнения X * A = B, при

 

 

слева направо

условии, что матрицы A и B имеют одинаковое коли-

 

 

 

чество столбцов. С точки зрения операций деления

 

 

 

слева и транспонирования

 

 

 

B / A = (A' \ B')'.

 

\

Обратное (справа

Х = A \ B – решение уравнения A * X = B, при

 

 

налево) деление

условии, что матрицы A и B имеют одинаковое коли-

 

 

матриц

чество строк.

 

 

 

'

Транспонирование

B = A' – комплексно-сопряженное транспонирова-

 

 

матрицы

ния матрицы A. Для комплексных матриц эта опера-

 

 

 

ция не предполагает сопряжения.

 

d = det(mA)

Вычисление

--> A = [3 2; 4 3];

 

 

определителя

--> det(A)

//Определитель матрицы

 

 

матрицы

ans = 1

 

 

 

t = trace(A)

Вычисление следа

--> A = [1 2 3; 4 -2 1; 0 3 -1]

 

 

матрицы, то есть

--> trace(A)

//СледматрицыА

 

 

суммы элементов

ans =

 

 

 

 

главной диагонали

-2

 

 

 

 

 

 

 

 

 

 

--> // то же что и

 

 

 

--> sum(diag(A))

 

 

 

 

 

ans =

 

 

 

 

 

-2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

213

Арифметические поэлементные операции над матрицами. Таблица 1.2.2-6

Операция

Назначение

Описание

+

Сложение

A + B поэлементное сложение A и B

+

Унарный плюс

+A возвращает A

-

Вычитание

A - B поэлементное вычитание B из A

-

Унарный минус

-A поэлементное присвоение в A

.*

Поэлементное

C = A .* B поэлементное умножение A и B

 

умножение

 

.^

Поэлементное

A .^ B поэлементное возведение A в степень B

 

возведение в степень

 

.\

Поэлементное обратное

X = A .\ B – поэлементное обратное деле-

 

деление массивов

ние A и B

./

Поэлементное деление

X = B ./ A поэлементное деление A и B.

.'

Транспонирование мас-

A .' – поэлементная операция транспонирова-

 

сива

ния A

Наиболее часто используемые математические функции. Таблица 1.2.2-7

Тригонометрические функции (аргумент задается в радианах)

sin, cos, tan, cot

Синус, косинус, тангенс и котангенс

 

sec, csc

Секанс, косеканс

 

 

 

 

asin,acos,atan,

Арксинус, арккосинус, арктангенс и арккотангенс

atan2, acot

 

 

 

asec, acsc

Арксеканс, арккосеканс

 

Алгебраические и арифметические функции

 

abs

Модуль

 

exp

Экспоненциальная функция

 

log, log2, log10

Логарифм натуральный, по основанию 2 и 10

 

sqrt

Квадратный корень

 

fix

Целая часть числа

 

floor

Округление до ближайшего целого значения, которое не

 

превышает аргумент

 

mod(x, y), rem(x, y)

Остаток от деления x на y. Целая часть определяется со-

 

ответственно функциями floor и fix

 

sign

Знак числа

 

factorial

Вычисление факториала числа

 

Гиперболические функции

 

sinh, cosh, tanh, coth

Гиперболические синус, косинус, тангенс и котангенс

 

sech, csch

Гиперболические секанс и косеканс

 

asinh, acosh, atanh,

Гиперболические арксинус,

acoth

арккосинус, арктангенс и арккотангенс;

 

 

 

 

 

 

 

 

214

Преобразование данных числового типа. Таблица 1.2.2-8

ФФункции

Назначение

 

 

 

Примеры

 

 

 

 

 

 

 

ceil(A)

Возвращает матрицу целых

 

--> ceil([1.3 1.5 1.7 2.5 3.7])

 

 

чисел, состоящую из элемен-

 

ans

=

 

 

 

 

 

 

 

тов, округлённых в сто-

2.

2.

2.

3.

4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рону +∞

 

--> ceil([-1.3 -1.5 -1.7 -2.5 -3.7])

 

 

 

 

 

 

 

 

ans

=

 

 

 

 

 

 

 

 

-1. -1. -1. -2. -3.

 

 

 

fix(A)

Возвращает матрицу целых

 

--> fix([1.3 1.5 1.7 2.5 3.7])

 

 

чисел, состоящую из элемен-

 

ans

=

 

 

 

 

 

 

 

тов, округлённых в сто-

1.

1.

1.

2.

3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рону нуля

 

--> fix([-1.3 -1.5 -1.7 -2.5 -3.7])

 

 

 

 

 

 

y= sign(x) .* floor(abs(x)) (то же

 

ans

=

 

 

 

 

 

 

 

-1. -1. -1. -2. -3.

 

 

 

 

самое, что и int).

 

 

 

 

 

 

 

 

 

 

 

 

 

floor

Возвращает матрицу целых

 

--> floor([1.3 1.5 1.7 2.5 3.7])

 

 

чисел, состоящую из элемен-

 

ans

=

 

 

 

 

 

 

 

тов, округлённых в сторону -∞

1.

1.

1.

2.

3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--> floor([-1.3 -1.5 -1.7 -2.5 -3.7])

 

 

 

 

ans

=

 

 

 

 

 

 

 

 

-2. -2. -2. -3. -4.

 

 

 

int(A)

Возвращает матрицу целых

 

--> int([1.3 1.5 1.7 2.5 3.7])

 

 

чисел, состоящую из элемен-

 

ans

=

 

 

 

 

 

 

 

тов, округлённых в сто-

2.

1.

1.

2.

3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рону нуля

 

--> int([-1.3 -1.5 -1.7 -2.5 -3.7])

 

 

 

 

 

 

То же самое, что и fix.

 

ans

=

 

 

 

 

 

 

 

-1. -1. -1. -2. -3.

 

 

 

 

 

 

 

 

round

Округляет до ближайшего це-

 

--> round([1.3 1.5 1.7 2.5 3.7])

 

 

лого по правилам математики

 

ans

=

 

 

 

 

 

 

 

 

1.

2.

2.

3.

4.

 

 

 

 

 

 

--> round([-1.3 -1.5 -1.7 -2.5 -3.7])

 

 

 

 

ans

=

 

 

 

 

 

 

 

 

-1. -2. -2. -3. -4.

 

 

 

ieee()

Устанавливает режим преду-

 

--> ieee(1); 1/0

 

 

 

 

 

 

преждающий о исключитель-

 

Предупреждение : деление на нуль...

 

 

ных ситуациях при операциях

 

ans

=

 

 

 

 

 

 

 

 

Inf

 

 

 

 

 

 

 

с плавающей точкой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--> ieee(2); 1/0, log(0)

 

 

 

 

ans

=

 

 

 

 

 

 

 

 

 

Inf

 

 

 

 

 

 

 

 

 

ans

=

 

 

 

 

 

 

 

 

 

-Inf

 

 

 

 

 

 

isinf()

Проверяется значения на бес-

 

--> realmax + .0001E+308

 

 

конечность inf

 

ans =

 

 

 

 

 

 

 

 

 

Inf

 

 

 

 

 

 

 

 

 

--> -realmax - .0001E+308

 

 

 

 

ans =

 

 

 

 

 

 

 

 

 

 

-Inf

 

 

 

 

 

 

isnan()

Проверяется значения

 

x = [1 2 %nan 3 %nan 4]

 

 

 

на nan

 

k = find(~isnan(x))

 

 

 

 

 

 

 

y = x(k)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

215

Операции отношений. Таблица 1.2.3-1

Операция

Описание

 

 

Примеры *

==

Равно

--> x

== y

 

 

ans

=

 

 

 

T

T

F

 

 

--> a

== b

 

 

ans

=

 

 

 

F

 

 

~=

Не равно

--> x

~= y

 

 

ans

=

 

 

 

F

F

T

 

 

--> a

~= b

 

 

ans

=

 

 

 

T

 

 

<

Меньше чем

--> x

< y

 

 

 

ans

=

 

 

 

F

F

T

>

Больше чем

-->x

> y

 

 

 

ans

=

 

 

 

F

F

F

<=

Меньше или равно

--> x

<= y

 

 

ans

=

 

 

 

T

T

T

>=

Больше или равно

--> x

>= y

 

 

ans

=

 

 

 

T

T

F

* Примеры в этой таблице предполагают, что x = [2, 3, 4], y = [2, 3, 5], a = 3 +2 * i, b = 3 + 4 * i.

216

Логические операции. Таблица 1.2.3-2

Операция

Описание

 

Примеры *

 

Логическое сложение (операция ИЛИ)

-->

or([])

 

над элементами вектора или матрицы

ans

=

 

 

 

F

 

 

 

Где b - логический скаляр, если or(A) ис-

-->

or(0)

b = or(A)

пользуется без каких-либо вариантов "r",

"c", n (по умолчанию).

ans

=

 

 

F

 

 

 

bравно %F, если все элементы A имеют зна-

 

 

 

 

 

 

 

чение %F или ноль, включая %nan.

-->

or(0+%i * 0)

 

b равно , в противном случае (по край-

ans

=

 

 

ней мере один элемент A имеют значение

F

 

 

 

%T или ненулевой.

 

 

 

 

 

-->

or(%nan)

 

 

ans

=

 

 

 

F

 

 

 

 

-->

or([T, F T])

 

 

ans

=

 

 

 

T

 

 

 

 

-->

or([1 0 1; 0 4 3])

 

 

ans

=

 

 

 

T

 

 

 

Логическое сложение (операция ИЛИ)

-->

B = or(A, 1)

 

над элементами столбцов или строк

B

=

 

 

матрицы

T T F

 

 

 

 

 

Где B - логический вектор.

-->

B = or(A, 2)

 

B

=

 

 

Если n = 1 или| "r": or – возвращает

 

 

T

 

 

 

вектор-строку логических значений

 

 

B = or(A, 'r')

T

 

 

B(j) = or(A(:, j)).

 

 

B = or(A, 1)

T

 

 

 

 

 

 

Если n = 2 или " c": or возвращает век-

 

 

 

 

тор-столбец логических значений

 

 

 

B = or(A, 'c')

B(i) = or(A(i, :))

 

 

 

B = or(A, 2)

 

 

 

 

 

 

 

 

 

Поэлементное логическое сложение

-->

x = [1 0 0];

 

(операция ИЛИ) над элементами векто-

-->

y = [1 1 1];

 

ров или матриц

-->

L = x | y

 

L

=

 

 

 

 

 

Где A и B вектора или матрицы с элемен-

T

T T

L = A | B

 

 

 

тами целого или логического типа, кото-

 

 

 

 

-->

y = [1 0 1];

 

рые должны иметь одинаковые размеры.

 

-->

L = x | y

 

Если A или B является скаляром, она зара-

 

L =

 

 

 

нее расширяется до размера другого опе-

 

 

 

T

F T

 

ранда.

 

 

 

 

 

L – вектор или матрица логических значе-

 

 

 

 

ний

 

 

 

 

Логическое умножение (операция И) над

-->and([])

 

элементами вектора или матрицы

ans

=

 

 

 

T

 

 

b = and(A)

Где b - логический скаляр, если

-->

and(0)

and(A) используется без каких-либо вари-

 

антов "r", "c", n (по умолчанию).

ans

=

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

217

 

 

 

 

 

 

 

B равно %F, если хотя бы один из элемен-

 

 

 

 

 

 

тов A имеют значение %F или ноль.

-->

and(0 + 0*%i)

 

 

B равно , в противном случае (все эле-

ans

=

 

 

 

F

 

 

 

 

 

менты A имеют значение %T, ненулевое или

 

 

 

 

 

 

 

 

 

 

 

%nan.

-->

and(%nan)

 

 

Где A вектор или матрица булевых, целочис-

 

 

ans

=

 

 

 

ленных действительных или комплексных

 

 

 

T

 

 

 

 

 

значений

 

 

 

 

 

 

 

 

 

 

 

 

-->

and([1, 0 1])

 

 

 

ans

=

 

 

 

 

F

 

 

 

 

 

 

-->

and([1 0 1; 0 4 3])

 

 

 

ans

=

 

 

 

 

F

 

 

 

 

 

Логическое умножение (операция И) над

-->

B =

and (A, 1)

 

 

элементами столбцов или строк

B

 

=

 

 

 

матрицы

T

F F

 

 

 

 

 

 

 

 

 

Где B вектор логических значений.

-->

B =

and (A, 2)

 

 

B

 

=

 

 

 

and возвращает вектор-строку логиче-

 

 

B =

and (A, 'r')

 

T

 

 

ских значений

 

 

 

B =

and (A, 1)

 

F

 

 

b(j) = and(A(:, j));

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

B =

and (A, 'c')

and возвращает вектор-столбец логиче-

 

 

 

 

B =

and (A, 2)

ских значений

 

 

 

 

 

 

b(i) = and(A(i, :)) ;

 

 

 

 

 

 

 

 

 

 

 

Логическое умножение (операция И) над

-->

x = [1 0 0];

 

 

векторами или матрицами

-->

y = [1 1 1];

 

 

 

-->

L = x & y

 

 

Где A и B вектора или матрицы с элемен-

L

 

=

 

 

 

 

T F F

 

 

 

тами целого или логического типа, кото-

 

 

L = A & B

 

 

 

 

рые должны иметь одинаковые размеры.

 

 

 

 

 

 

-->

y = [1 0 1];

 

 

Если A или B является скаляром, она зара-

 

 

-->

L = x & y

 

 

нее расширяется до размера другого опе-

 

 

L

 

=

 

 

 

ранда.

 

 

 

 

 

T F F

 

 

 

L – вектор или матрица логических значе-

 

 

 

 

 

 

 

 

 

 

ний

 

 

 

 

 

 

 

 

 

~A

 

Логическое отрицание (операция НЕ)

-->

x = [1 0 0];

 

 

над элементами матрицы логических

-->

 

~x

 

 

 

значений

ans =

 

 

 

T

F F

 

 

 

 

 

 

 

 

-->

y = [1 1 1];

 

 

 

-->

oy = ~y

 

 

 

oy

 

=

 

 

 

 

T

F F

 

*В примерах используются:

вектора x = [1 0 0] и y = [1 1 1];

матрицы А = [5 7 0; 3 2 4; 5 0 0] и B = [6 6 0; 1 3 5; -1 0 0].

218

 

Символы преобразования и примеры их применения. Таблица 1.2.4-1

Символ

Описание

 

 

%c

Выводит одиночный символ

 

 

%d

Выводит десятичное число

 

 

%e

Выводит десятичные числа с плавающей точкой в экспоненциальном виде

 

 

%E

Так же, как %e, но, используя прописные

 

 

%f

Выводит десятичные числа с плавающей запятой

 

 

%g

Более компактное %e или %f, незначительные нули не выводятся.

 

 

%G

Выводит десятичного целого числа (представление числа с основанием 10)

 

 

%i

Выводит целую часть десятичного числа (представление числа с основанием 10)

 

 

%s

Выводит строку символов

 

 

%u

Выводит целую часть десятичного числа без знака (представление числа с основа-

 

нием 10)

 

 

Ширина и точность полей. Таблица 1.2.4-2

Характер

Описание

Пример

 

 

 

 

 

Ширина поля

Строка цифр, указывающая минимальное ко-

('%5d', 0)

0

 

личество цифр для печати

('%5d', 7)

7

 

 

('%5d', -9)

-9

 

 

('%5d', 45622)

45622

 

 

('%5d', 4562237)

45622

 

 

 

 

Точность

Строка цифр, включающая точку (.) указание

('%.0f', e)

3

 

количества цифр, которые должны быть

('%.0f.', e)

3

 

напечатаны справа от десятичной точки

('%.1f', e)

2.7

 

 

('%.2f', e)

2.72

 

 

('%.5f', e)

2.71828

 

 

('%f', e)

2.718282

 

 

 

 

Флаги форматирования. Таблица 1.2.4-3

Характер

Описание

Пример

 

 

 

 

 

 

 

Знак минус (-)

Левое выравнивание

('%-5.1f', e)

2.7__

 

 

 

 

 

 

Знак плюс (+)

Всегда печатает знак (+или -)

('%+5.1f', e)

_+2.7

 

 

 

 

 

 

Ноль (0)

Отображаются нул, а не пробелы

('%05.1f', e)

002.7

 

 

 

 

 

 

Знак плюс (+) или (-)

 

('%+-5.1f', e)

_+2.7_

 

 

 

 

 

 

Знак плюс (+) и ноль (0)

 

('% 05.1f', e)

+02.7_

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

219

 

 

 

 

Таблица 1.2.4-4

 

 

Символ

 

 

Влияние на текст

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

''

 

 

Одиночная кавычка

 

 

 

 

 

 

 

 

%%

 

 

Одиночный знак процента

 

 

 

 

 

 

 

 

\\

 

 

Однократная обратная косая черта

 

 

 

 

 

 

 

 

 

\a

 

Аварийная сигнализация

 

 

 

 

 

 

 

 

 

\b

 

Возврат на одну позицию

 

 

 

 

 

 

 

 

 

\n

 

Новая строка

 

 

 

 

 

 

 

 

 

\r

 

Возврат каретки

 

 

 

 

 

 

 

 

 

\t

 

Горизонтальная табуляция

 

 

 

 

 

 

 

 

 

\v

 

Вертикальная табуляция

 

 

 

 

 

 

 

 

 

\xN

 

Шестнадцатеричное число, N

 

 

 

 

 

 

 

 

 

\N

 

Восьмеричное число, N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

220