Матрица – индекс
Cтраница 1
Матрица индексов показывает, какому номеру перемещения всей стержневой системы соответствует номер перемещения каждого элемента в глобальной системе координат.
[1]
Матрица индексов строится последовательным вводом двух чисел для каждого элемента. Первое число означает номер начального узла, а второе число – номер конечного узла. В соответствии с этими числами из массива линейных координат выбираются координаты узлов, которые принимаются за координаты начала и конца элемента при построении матрицы АК. Секториальная координата начального узла / ( – го элемента должна быть известна из определения секто-риальных координат предыдущих элементов. Для первого элемента, как уже отмечалось, секториальная координата начала должна равняться нулю. Тогда сек-ториальная координата конечного узла К-то элемента определяется формулами ( 26) по известным линейным координатам концов этого элемента.
[2]
Составим матрицу индексов системы, для чего в табл. 1.2 внесем номера узлов, в которых каждый элемент может получать перемещения, Так, например, элемент ф в своем сечении получает смещение, равное смещению узла 3, а в сечении / – 2 его смещение равно нулю.
[4]
По матрице индексов узлов формируется матрица индексов перемещений.
[5]
С помощью матрицы индексов формируется матрица жесткости системы путем суммирования соответствующих коэффициентов жесткости.
[6]
Рассмотрим пример составления матрицы индексов для трубопровода, схема которого изображена на рис. 1.5. Концы 1, 2, 7, 9 трубопровода жестко заделаны, а в сечениях 3 и 5 установлены пружинные подвески. Эти точки, а также сечения 6 и 8, ограничивающие криволинейные элементы и узел 4, являются узловыми точками системы.
[8]
Координаты узлов, матрицу индексов и граничные условия можно записать в отдельные файлы, как это сделано в конце программы Matr-indl.
[9]
ПРИМЕЧАНИЕ Нуль в матрице индексов означает отсутствие перемещения системы по данному на-правлению.
[10]
Автоматизация расчетов координат узлов, матрицы индексов и граничных условий позволяет для данной схемы менять количество узлов. Поменяйте количество узлов в ряду пг и в строке пф.
[11]
По матрице индексов узлов формируется матрица индексов перемещений.
[12]
Введенные индексы используются при построении матриц индексов согласия и несогласия для заданных альтернатив.
[13]
АК по координатам узлов с использованием матрицы индексов.
[14]
Кропотливой и трудоемкой является также задача составления матрицы индексов. Здесь же приведен автоматический расчет граничных условий и, в зависимости от числа узлов, номеров перемещений, в которых перемещение на осях симметрии равно нулю.
[15]
Страницы:
1
2
3
4
Так же, как индексный вектор в любой позиции индекса, матрица может использоваться с единственной индексной матрицей, чтобы либо назначить вектор величин нерегулярному набору элементов в массиве, либо чтобы извлечь нерегулярный набор как вектор.
Пример матрицы проясняет процесс. В случае дважды индексированного массива может быть задана индексная матрица, состоящая из двух столбцов и любого количества строк. Записи в индексной матрице – это индексы строки и столбца для дважды индексированного массива. Предположим, например, что у нас есть массив X
размером 4 на 5, и мы хотим сделать следующее:
- Извлеките элементы
X[1,3]
,X[2,2]
иX[3,1]
как векторную структуру и - Замените эти записи в массиве
X
нулями.
В этом случае нам нужен массив нижних индексов 3 на 2 , как в следующем примере.
> x <- array(1:20, dim=c(4,5)) # Generate a 4 by 5 array. > x [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20 > i <- array(c(1:3,3:1), dim=c(3,2)) > i # i is a 3 by 2 index array. [,1] [,2] [1,] 1 3 [2,] 2 2 [3,] 3 1 > x[i] # Extract those elements [1] 9 6 3 > x[i] <- 0 # Replace those elements by zeros. > x [,1] [,2] [,3] [,4] [,5] [1,] 1 5 0 13 17 [2,] 2 0 10 14 18 [3,] 0 7 11 15 19 [4,] 4 8 12 16 20 >
Отрицательные индексы не допускаются в индексных матрицах. Допускаются значения NA
и нулевые значения: строки в индексной матрице, содержащие ноль, игнорируются, а строки, содержащие NA
, приводят к результату NA
.
В качестве менее тривиального примера предположим, что мы хотим сгенерировать (нередуцированную) матрицу дизайна для блочного дизайна, определяемого blocks
факторов ( уровни b
) и varieties
( уровни v
). Далее предположим, что в эксперименте есть n
участков. Мы могли бы поступить следующим образом:
> Xb <- matrix(0, n, b) > Xv <- matrix(0, n, v) > ib <- cbind(1:n, blocks) > iv <- cbind(1:n, varieties) > Xb[ib] <- 1 > Xv[iv] <- 1 > X <- cbind(Xb, Xv)
Чтобы построить матрицу инцидентности, скажем, N
, мы могли бы использовать
> N <- crossprod(Xb, Xv)
Однако более простой способ создать эту матрицу – использовать table()
:
> N <- table(blocks, varieties)
Индексные матрицы должны быть числовыми:любая другая форма матрицы (например,логическая или символьная матрица),представленная в виде матрицы,рассматривается как индексирующий вектор.
5.4 array()
функция
Помимо присвоения векторной структуре атрибута dim
, массивы могут быть построены из векторов функцией array
, которая имеет вид
> Z <- array(data_vector, dim_vector)
Например, если вектор h
содержит 24 или меньше чисел, то команда
> Z <- array(h, dim=c(3,4,2))
будет использовать h
, чтобы установить 3 по 4 с помощью 2 массива в Z
. Если размер h
ровно 24, результат будет таким же, как
> Z <- h ; dim(Z) <- c(3,4,2)
Однако, если h
меньше 24, его значения повторно используются с самого начала, чтобы сделать его размером 24 (см . Правило повторного использования ), но dim(h) <- c(3,4,2)
будет сигнализировать об ошибке о несоответствии длина. В качестве крайнего, но распространенного примера
> Z <- array(0, c(3,4,2))
делает Z
массивом всех нулей.
Здесь dim(Z)
обозначает вектор размерности c(3,4,2)
, а Z[1:24]
обозначает вектор данных, как он был в h
, а Z[]
с пустым индексом или Z
с индекс не обозначает весь массив как массив.
Массивы могут использоваться в арифметических выражениях, и результатом является массив, сформированный поэлементными операциями с вектором данных. В dim
атрибуты операндов обычно должны быть такими же, и это становится размерность вектора результата. Итак, если A
, B
и C
– похожие массивы, тогда
> D <- 2*A*B + C + 1
делает D
аналогичным массивом, вектор данных которого является результатом заданных поэлементных операций. Однако точное правило, касающееся вычислений смешанных массивов и векторов, требует более внимательного рассмотрения.
5.4.1 Смешанная арифметика векторов и массивов.Правило утилизации
Точное правило,влияющее на поэлементные смешанные вычисления с векторами и массивами,несколько причудливо,и его трудно найти в справочниках.На основании опыта мы пришли к выводу,что следующее является надежным руководством.
- Выражение сканируется слева направо.
- Любые операнды короткого вектора расширяются путем повторного использования их значений до тех пор,пока они не сравняются по размеру с любыми другими операндами.
- Пока встречаются только короткие векторы и массивы , все массивы должны иметь один и тот же атрибут
dim
, иначе возникнет ошибка. - Любой векторный операнд длиннее,чем операнд матрицы или массива,приводит к ошибке.
- Если структуры массива присутствуют и не было вызвано никаких ошибок или принуждения к вектору, результатом будет структура массива с общим атрибутом
dim
для его операндов массива.
5.5 Внешнее произведение двух массивов
Важной операцией с массивами является внешний продукт . Если a
и b
– два числовых массива, их внешний продукт представляет собой массив, вектор размерности которого получается путем конкатенации их двух векторов размерности (порядок важен), и чей вектор данных получается путем формирования всех возможных произведений элементов вектора данных a
с таковыми из b
. Внешний продукт формируется специальным оператором %o%
:
> ab <- a %o% b
Альтернативой является
> ab <- outer(a, b, "*")
Функцию умножения можно заменить произвольной функцией двух переменных. Например, если мы хотели оценить функцию f (x; y) = cos (y) / (1 + x ^ 2) по регулярной сетке значений с координатами x и y, определяемыми векторами R x
и y
соответственно , мы могли бы поступить следующим образом:
> f <- function(x, y) cos(y)/(1 + x^2)
> z <- outer(x, y, f)
В частности, внешнее произведение двух обычных векторов представляет собой массив с двойным индексом (то есть матрицу ранга не более 1). Обратите внимание, что оператор внешнего произведения, конечно же, некоммутативен. Определение собственных функций R будет рассмотрено далее в разделе Написание собственных функций .
Пример:Детерминанты одноразрядных матриц 2 на 2
В качестве искусственного, но милого примера рассмотрим определители матриц 2 на 2 [a, b; c, d], где каждая запись представляет собой неотрицательное целое число в диапазоне 0, 1, …, 9 , то есть цифру.
Проблема состоит в том, чтобы найти определители, ad – bc , всех возможных матриц этой формы и представить частоту, с которой каждое значение встречается, в виде графика с высокой плотностью . Это сводится к нахождению распределения вероятностей определителя, если каждая цифра выбирается независимо и равномерно случайным образом.
Для этого нужно дважды использовать функцию outer()
:
> d <- outer(0:9, 0:9) > fr <- table(outer(d, d, "-")) > plot(fr, xlab="Determinant", ylab="Frequency")
Обратите внимание, что plot()
здесь использует гистограмму, похожую на метод plot, потому что он «видит», что fr
относится к классу "table"
. «Очевидный» способ решить эту проблему с помощью циклов for
, который будет обсуждаться в разделе « Циклы и условное выполнение », настолько неэффективен, что нецелесообразен.
Также,возможно,удивительно,что примерно 1 из 20 таких матриц является сингулярной.
5.6 Обобщенное транспонирование массива
Функция aperm(a, perm)
может использоваться для перестановки массива a
. Аргумент perm
должен быть перестановкой целых чисел {1, …, k} , где k — количество индексов в a
. Результатом функции является массив того же размера, что и a
, но со старым измерением, заданным perm[j]
, которое становится новым j
– м измерением. Проще всего представить эту операцию как обобщение транспонирования матриц. В самом деле, если A
является матрицей (то есть массивом с двойным индексом), то B
определяется выражением
> B <- aperm(A, c(2,1))
просто транспонированная A
. Для этого особого случая доступна более простая функция t()
, поэтому мы могли бы использовать B <- t(A)
.
5.7 Матричные объекты
Как отмечалось выше, матрица – это просто массив с двумя индексами. Однако это настолько важный частный случай, что он требует отдельного обсуждения. R содержит множество операторов и функций, доступных только для матриц. Например, t(X)
– это функция транспонирования матрицы, как указано выше. Функции nrow(A)
и ncol(A)
задают количество строк и столбцов в матрице A
соответственно.
5.7.1 Умножение матриц
Оператор %*%
используется для умножения матриц. Матрица n на 1 или 1 на n может, конечно, использоваться как n -вектор, если в контексте это уместно. И наоборот, векторы, которые встречаются в выражениях матричного умножения, автоматически продвигаются либо к векторам-строкам, либо к векторам-столбцам, в зависимости от того, какой из них является мультипликативно когерентным, если это возможно (хотя это не всегда однозначно возможно, как мы увидим позже).
Если, например, A
и B
– квадратные матрицы одинакового размера, то
> A * B
матрица поэлементных произведений и
> A %*% B
– матричное произведение. Если x
вектор, то
> x %*% A %*% x
является квадратичной формой. 16
Функция crossprod()
формирует «перекрестные произведения», что означает, что crossprod(X, y)
совпадает с t(X) %*% y
, но операция более эффективна. Если второй аргумент crossprod()
опущен, он считается таким же, как и первый.
Значение diag()
зависит от его аргумента. diag(v)
, где v
– вектор, дает диагональную матрицу с элементами вектора в качестве диагональных элементов. С другой стороны , diag(M)
, где M
представляет собой матрицу, дает вектор главных диагональных элементов M
. Это то же соглашение, что и для diag()
в MATLAB . Кроме того, несколько сбивает с толку, если k
– одно числовое значение, тогда diag(k)
– это единичная матрица k
на k
!
5.7.2 Линейные уравнения и инверсия
Решение линейных уравнений-это обратная сторона умножения матриц.Когда после
> b <- A %*% x
даны только A
и b
, вектор x
является решением этой системы линейных уравнений. В R
> solve(A,b)
решает систему, возвращая x
(с некоторой потерей точности). Обратите внимание, что в линейной алгебре формально x = A^{-1} %*% b
где A^{-1}
обозначает обратное к A
, которое может быть вычислено с помощью
solve(A)
но нужен редко. Численно неэффективно и потенциально нестабильно вычислять x <- solve(A) %*% b
вместо solve(A,b)
.
Квадратичная форма x %*% A^{-1} %*% x
, которая используется в многомерных расчетах, следует вычислять что – то вроде 17 x %*% solve(A,x)
, а не вычисления обратной A
.
5.7.3 Собственные значения и собственные векторы
Функция eigen(Sm)
вычисляет собственные значения и собственные векторы симметричной матрицы Sm
. Результатом этой функции является список из двух компонентов с именами values
и vectors
. Назначение
> ev <- eigen(Sm)
назначит этот список ev
. Тогда ev$val
– это вектор собственных значений Sm
, а ev$vec
– матрица соответствующих собственных векторов. Если бы нам были нужны только собственные значения, мы могли бы использовать присваивание:
> evals <- eigen(Sm)$values
evals
теперь содержит вектор собственных значений, а второй компонент отбрасывается. Если выражение
> eigen(Sm)
используется сама по себе в качестве команды,то выводятся две компоненты с их именами.Для больших матриц лучше не вычислять собственные векторы,если они не нужны,используя выражение
> evals <- eigen(Sm, only.values = TRUE)$values
5.7.4 Разложение по сингулярным значениям и детерминанты
Функция svd(M)
принимает произвольный матричный аргумент M
и вычисляет разложение M
по сингулярным числам . Он состоит из матрицы ортонормированных столбцов U
с тем же пространством столбцов, что и M
, второй матрицы ортонормированных столбцов V
, пространство столбцов которой является пространством строк M
, и диагональной матрицы положительных элементов D
, такой что M = U %*% D %*% t(V)
. D
фактически возвращается как вектор диагональных элементов. Результатом svd(M)
на самом деле является список из трех компонентов с именами d
, u
и v
., с очевидным смыслом.
Если M
на самом деле квадратное, то нетрудно увидеть, что
> absdetM <- prod(svd(M)$d)
вычисляет абсолютное значение определителя M
. Если бы этот расчет часто требовался с множеством матриц, его можно было бы определить как функцию R
> absdet <- function(M) prod(svd(M)$d)
после чего мы могли бы использовать absdet()
как еще одну функцию R. В качестве еще одного тривиального, но потенциально полезного примера вы можете подумать о написании функции, скажем, tr()
, для вычисления следа квадратной матрицы. [Подсказка: вам не нужно использовать явный цикл. Посмотрите еще раз на функцию diag()
.]
R имеет встроенную функцию det
для вычисления определителя, включая знак, и другого, determinant
, для определения знака и модуля (необязательно в логарифмической шкале),
5.7.5 Подгонка по методу наименьших квадратов и QR-разложение
Функция lsfit()
возвращает список результатов процедуры аппроксимации методом наименьших квадратов. Задание, такое как
> ans <- lsfit(X, y)
дает результаты подгонки по методу наименьших квадратов, где y
— вектор наблюдений, а X
— матрица плана. См. справку для получения более подробной информации, а также для дополнительной функции ls.diag()
, помимо прочего, для диагностики регрессии. Обратите внимание, что термин общего среднего включается автоматически и не требует явного включения в качестве столбца X
. Далее обратите внимание, что вы почти всегда предпочтете использовать lm(.)
(см. Линейные модели ) lsfit()
для регрессионного моделирования.
Еще одна тесно связанная функция – это qr()
и ее союзники. Рассмотрим следующие задания
> Xplus <- qr(X) > b <- qr.coef(Xplus, y) > fit <- qr.fitted(Xplus, y) > res <- qr.resid(Xplus, y)
Они вычисляют ортогональную проекцию y
на диапазон X
в fit
, проекцию на ортогональное дополнение в res
и вектор коэффициентов для проекции в b
, то есть b
по существу является результатом оператора «обратной косой черты» MATLAB .
Не предполагается, что X
имеет полный ранг столбца. Избыточности будут обнаруживаться и удаляться по мере их обнаружения.
Эта альтернатива является более старым низкоуровневым способом выполнения вычислений методом наименьших квадратов. Хотя в некоторых контекстах он по-прежнему полезен, теперь его обычно заменяют функциями статистических моделей, как будет обсуждаться в разделе « Статистические модели в R » .
5.8 Формирование секционированных матриц cbind()
и rbind()
Как мы уже неформально видели, матрицы могут быть построены из других векторов и матриц с помощью функций cbind()
и rbind()
. Примерно cbind()
формирует матрицы, связывая вместе матрицы по горизонтали или по столбцам, а rbind()
вертикали или по строкам.
В задании
> X <- cbind(arg_1, arg_2, arg_3, …)
аргументы cbind()
должны быть либо векторами любой длины, либо матрицами с одинаковым размером столбца, то есть с одинаковым количеством строк. Результатом является матрица с конкатенированными аргументами arg_1 , arg_2 , …, образующими столбцы.
Если некоторые из аргументов cbind()
являются векторами, они могут быть короче, чем размер столбца любых присутствующих матриц, и в этом случае они циклически расширяются, чтобы соответствовать размеру столбца матрицы (или длине самого длинного вектора, если матрицы не заданы. ).
Функция rbind()
выполняет соответствующую операцию для строк. В этом случае любой векторный аргумент, возможно, циклически расширенный, конечно же, считается векторами-строками.
Предположим, что X1
и X2
имеют одинаковое количество строк. Чтобы объединить их по столбцам в матрицу X
, вместе с начальным столбцом в 1
с мы можем использовать
> X <- cbind(1, X1, X2)
Результат rbind()
или cbind()
всегда имеет статус матрицы. Следовательно, cbind(x)
и rbind(x)
, возможно, являются простейшими способами явно разрешить обработку вектора x
как матрицы столбца или строки соответственно.
5.9 Функция конкатенации c()
с массивами
Следует отметить, что в то время как cbind()
и rbind()
являются функциями конкатенации, которые уважают атрибуты dim
, базовая функция c()
этого не делает, а скорее очищает числовые объекты от всех атрибутов dim
и dimnames
. Иногда это полезно само по себе.
Официальный способ вернуть массив к простому векторному объекту – использовать as.vector()
> vec <- as.vector(X)
Однако аналогичного результата можно достичь, используя c()
только с одним аргументом, просто для этого побочного эффекта:
> vec <- c(X)
Между ними есть небольшие различия,но в конечном итоге выбор между ними-это в основном вопрос стиля (первый предпочтительнее).
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.
R
4.1
-
2.4 Логические векторы
А также числовые векторы позволяют манипулировать логическими величинами.
-
3.2 Изменение длины объекта
«Пустой» объект может по-прежнему иметь режим.
-
5.10 Таблицы частот из факторов
Напомним, что фактор определяет разделение на группы.
-
7 Чтение данных из файлов
Большие объекты данных обычно считываются как значения из внешних файлов,а не вводятся с клавиатуры во время сеанса.
Содержание
- NumPy: матрицы и операции над ними
- 1. Создание матриц
- 2. Индексирование
- 3. Векторы, вектор-строки и вектор-столбцы
- 4. Datatypes
- 5. Математические операции
- 6. Умножение матриц и столбцов
- 7. Объединение массивов
- Задания: (Блок 1)
- Задание 1:
- Задание 2:
- Задания: (Блок 1)
- 8. Транспонирование матриц
- 9. Определитель матрицы
- 10. Ранг матрицы
- 11. Системы линейных уравнений
- 12. Обращение матриц
- 13. Собственные числа и собственные вектора матрицы
- 14. Расстояния между векторами
- p-норма
- ℓ1 норма
- ℓ2 норма
- 15. Расстояния между векторами
- 16. Скалярное произведение и угол между векторами
- 17. Комплексные числа в питоне
- Задания: (Блок 2)
- Задание 3:
- Задания: (Блок 2)
NumPy: матрицы и операции над ними
Ссылка на jupyter notebook
В этом ноутбуке из сторонних библиотек нам понадобится только NumPy.
Для удобства импортируем ее под более коротким именем:
import numpy as np
1. Создание матриц
Приведем несколько способов создания матриц в NumPy.
Самый простой способ — с помощью функции
numpy.array(list, dtype=None, …).
В качестве первого аргумента ей надо передать итерируемый объект,
элементами которого являются другие итерируемые объекты одинаковой длины
и содержащие данные одинакового типа.
Второй аргумент является опциональным и определяет тип данных матрицы.
Его можно не задавать, тогда тип данных будет определен из типа
элементов первого аргумента. При задании этого параметра будет
произведена попытка приведения типов.
Например, матрицу из списка списков целых чисел можно создать следующим
образом:
a = np.array([1, 2, 3]) # Создаем одномерный массив print(type(a)) # Prints "<class 'numpy.ndarray'>" print(a.shape) # Prints "(3,)" - кортеж с размерностями print(a[0], a[1], a[2]) # Prints "1 2 3" a[0] = 5 # Изменяем значение элемента массива print(a) # Prints "[5, 2, 3]" b = np.array([[1,2,3],[4,5,6]]) # Создаем двухмерный массив print(b.shape) # Prints "(2, 3)" print(b[0, 0], b[0, 1], b[1, 0]) # Prints "1 2 4" print(np.arange(1, 5)) #Cоздает вектор с эелементами от 1 до 4
<class 'numpy.ndarray'> (3,) 1 2 3 [5 2 3] (2, 3) 1 2 4 [1 2 3 4]
matrix = np.array([[1, 2, 3], [2, 5, 6], [6, 7, 4]]) print ("Матрица:n", matrix)
Матрица: [[1 2 3] [2 5 6] [6 7 4]]
Второй способ создания — с помощью встроенных функций
numpy.eye(N, M=None, …), numpy.zeros(shape, …),
numpy.ones(shape, …).
Первая функция создает единичную матрицу размера N×M;
если M не задан, то M = N.
Вторая и третья функции создают матрицы, состоящие целиком из нулей или
единиц соответственно. В качестве первого аргумента необходимо задать
размерность массива — кортеж целых чисел. В двумерном случае это набор
из двух чисел: количество строк и столбцов матрицы.
Примеры:
b = np.eye(5) print ("Единичная матрица:n", b)
Единичная матрица: [[1. 0. 0. 0. 0.] [0. 1. 0. 0. 0.] [0. 0. 1. 0. 0.] [0. 0. 0. 1. 0.] [0. 0. 0. 0. 1.]]
c = np.ones((7, 5)) print ("Матрица, состоящая из одних единиц:n", c)
Матрица, состоящая из одних единиц: [[1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.]]
d = np.full((2,2), 7) # Создает матрицу (1, 2) заполненую заданным значением print(d) # Prints "[[ 7. 7.] # [ 7. 7.]]" e = np.random.random((2,2)) # Создает еденичную матрицу (2, 2) заполненую случаными числами (0, 1) print(e) # Might print "[[ 0.91940167 0.08143941] # [ 0.68744134 0.87236687]]"
[[7 7] [7 7]] [[0.25744383 0.48056466] [0.13767881 0.40578168]]
Обратите внимание: размерность массива задается не двумя аргументами
функции, а одним — кортежем!
Вот так — np.ones(7, 5) — создать массив не получится, так как
функции в качестве параметра shape передается 7, а не кортеж
(7, 5).
И, наконец, третий способ — с помощью функции
numpy.arange([start, ]stop, [step, ], …), которая создает
одномерный массив последовательных чисел из промежутка
[start, stop) с заданным шагом step, и метода
array.reshape(shape).
Параметр shape, как и в предыдущем примере, задает размерность
матрицы (кортеж чисел). Логика работы метода ясна из следующего примера:
v = np.arange(0, 24, 2) print ("Вектор-столбец:n", v)
Вектор-столбец: [ 0 2 4 6 8 10 12 14 16 18 20 22]
d = v.reshape((3, 4)) print ("Матрица:n", d)
Матрица: [[ 0 2 4 6] [ 8 10 12 14] [16 18 20 22]]
Более подробно о том, как создавать массивы в NumPy, см.
документацию.
2. Индексирование
Для получения элементов матрицы можно использовать несколько способов.
Рассмотрим самые простые из них.
Для удобства напомним, как выглядит матрица d:
print ("Матрица:n", d)
Матрица: [[ 0 2 4 6] [ 8 10 12 14] [16 18 20 22]]
Элемент на пересечении строки i и столбца j можно
получить с помощью выражения array[i, j].
Обратите внимание: строки и столбцы нумеруются с нуля!
print ("Второй элемент третьей строки матрицы:", d[2, 1])
Второй элемент третьей строки матрицы: 18
Из матрицы можно получать целые строки или столбцы с помощью выражений
array[i, :] или array[:, j] соответственно:
print ("Вторая строка матрицы d:n", d[1, :]) print ("Четвертый столбец матрицы d:n", d[:, 3])
Вторая строка матрицы d: [ 8 10 12 14] Четвертый столбец матрицы d: [ 6 14 22]
Еще один способ получения элементов — с помощью выражения
array[list1, list2], где list1, list2 —
некоторые списки целых чисел. При такой адресации одновременно
просматриваются оба списка и возвращаются элементы матрицы с
соответствующими координатами. Следующий пример более понятно объясняет
механизм работы такого индексирования:
print ("Элементы матрицы d с координатами (1, 2) и (0, 3):n", d[[1, 0], [2, 3]])
Элементы матрицы d с координатами (1, 2) и (0, 3): [12 6]
# Slicing # Создадим матрицу (3, 4) # [[ 1 2 3 4] # [ 5 6 7 8] # [ 9 10 11 12]] a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) # Используя слайсинг, созадим матрицу b из элементов матрицы а # будем использовать 0 и 1 строку, а так же 1 и 2 столебц # [[2 3] # [6 7]] b = a[:2, 1:3] print(b) # ОБРАТИТЕ ВНИМАНИЕ НА ИЗМЕНЕНИЕ ИСХОДОЙ МАТРИЦЫ print(a[0, 1]) # Prints "2" b[0, 0] = 77 # b[0, 0] is the same piece of data as a[0, 1] print(a[0, 1]) # Prints "77"
[[2 3] [6 7]] 2 77
# Integer array indexing a = np.array([[1,2], [3, 4], [5, 6]]) print(a) print() # Пример Integer array indexing # В результате получится массив размерности (3,) # Обратите внимание, что до запятой идут индексы строк, после - столбцов print(a[[0, 1, 2], [0, 1, 0]]) # Prints "[1 4 5]" print() # По-другому пример можно записать так print(np.array([a[0, 0], a[1, 1], a[2, 0]])) # Prints "[1 4 5]"
[[1 2] [3 4] [5 6]] [1 4 5] [1 4 5]
Примеры использования слайсинга:
# Создадим новый маассив, из которого будем выбирать эллементы a = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]]) print(a) # prints "array([[ 1, 2, 3], # [ 4, 5, 6], # [ 7, 8, 9], # [10, 11, 12]])" # Создадим массив индексов b = np.array([0, 2, 0, 1]) # Выберем из каждой строки элемент с индексом из b (индекс столбца берется из b) print(a[np.arange(4), b]) # Prints "[ 1 6 7 11]" print() # Добавим к этим элементам 10 a[np.arange(4), b] += 10 print(a) # prints "array([[11, 2, 3], # [ 4, 5, 16], # [17, 8, 9], # [10, 21, 12]])
[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]] [ 1 6 7 11] [[11 2 3] [ 4 5 16] [17 8 9] [10 21 12]]
a = np.array([[1,2], [3, 4], [5, 6]]) bool_idx = (a > 2) # Найдем эллементы матрицы a, которые больше 2 # В результате получим матрицу b, такой же размерности, как и a print(bool_idx) # Prints "[[False False] print() # [ True True] # [ True True]]" # Воспользуемся полученным массивом для создания нового массива, ранга 1 print(a[bool_idx]) # Prints "[3 4 5 6]" # Аналогично print(a[a > 2]) # Prints "[3 4 5 6]"
[[False False] [ True True] [ True True]] [3 4 5 6] [3 4 5 6]
#Помните, что вы можете пользоваться сразу несколькими типами индексирования a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) row_r1 = a[1, :] row_r2 = a[1:2, :] print(row_r1, row_r1.shape) # Prints "[5 6 7 8] (4,)" print(row_r2, row_r2.shape) # Prints "[[5 6 7 8]] (1, 4)"
[5 6 7 8] (4,) [[5 6 7 8]] (1, 4)
Более подробно о различных способах индексирования в массивах см.
документацию.
3. Векторы, вектор-строки и вектор-столбцы
Следующие два способа задания массива кажутся одинаковыми:
a = np.array([1, 2, 3]) b = np.array([[1], [2], [3]])
Однако, на самом деле, это задание одномерного массива (то есть
вектора) и двумерного массива:
print ("Вектор:n", a) print ("Его размерность:n", a.shape) print ("Двумерный массив:n", b) print ("Его размерность:n", b.shape)
Вектор: [1 2 3] Его размерность: (3,) Двумерный массив: [[1] [2] [3]] Его размерность: (3, 1)
Обратите внимание: вектор (одномерный массив) и вектор-столбец
или вектор-строка (двумерные массивы) являются различными объектами в
NumPy, хотя математически задают один и тот же объект. В случае
одномерного массива кортеж shape состоит из одного числа и имеет
вид (n,), где n — длина вектора. В случае двумерных
векторов в shape присутствует еще одна размерность, равная
единице.
В большинстве случаев неважно, какое представление использовать, потому
что часто срабатывает приведение типов. Но некоторые операции не
работают для одномерных массивов. Например, транспонирование (о нем
пойдет речь ниже):
a = a.T b = b.T
print ("Вектор не изменился:n", a) print ("Его размерность также не изменилась:n", a.shape) print ("Транспонированный двумерный массив:n", b) print ("Его размерность изменилась:n", b.shape)
Вектор не изменился: [1 2 3] Его размерность также не изменилась: (3,) Транспонированный двумерный массив: [[1 2 3]] Его размерность изменилась: (1, 3)
4. Datatypes
Все элементы в массиве numpy принадлежат одному типу. В этом плане
массивы ближе к C, чем к привычным вам листам питона. Numpy имеет
множество встренных типов, подходящих для решения большинства задач.
x = np.array([1, 2]) # Автоматический выбор типа print(x.dtype) # Prints "int64" x = np.array([1.0, 2.0]) # Автоматический выбор типа print(x.dtype) # Prints "float64" x = np.array([1, 2], dtype=np.int64) # Принудительное выставление типа print(x.dtype) # Prints "int64"
int32 float64 int64
5. Математические операции
К массивам (матрицам) можно применять известные вам математические
операции. Следут понимать, что при этом у элементов должны быть схожие
размерности. Поведение в случае не совпадения размерностей хорошо
описанно в документации numpy.
x = np.array([[1,2],[3,4]], dtype=np.float64) y = np.array([[5,6],[7,8]], dtype=np.float64) arr = np.array([1, 2])
# Сложение происходит поэлеметно # [[ 6.0 8.0] # [10.0 12.0]] print(x + y) print() print(np.add(x, y)) print('С числом') print(x + 1) print('C массивом другой размерности') print(x + arr)
[[ 6. 8.] [10. 12.]] [[ 6. 8.] [10. 12.]] С числом [[2. 3.] [4. 5.]] C массивом другой размерности [[2. 4.] [4. 6.]]
# Вычитание print(x - y) print(np.subtract(x, y))
[[-4. -4.] [-4. -4.]] [[-4. -4.] [-4. -4.]]
# Деление # [[ 0.2 0.33333333] # [ 0.42857143 0.5 ]] print(x / y) print(np.divide(x, y))
[[0.2 0.33333333] [0.42857143 0.5 ]] [[0.2 0.33333333] [0.42857143 0.5 ]]
# Другие функции # [[ 1. 1.41421356] # [ 1.73205081 2. ]] print(np.sqrt(x))
[[1. 1.41421356] [1.73205081 2. ]]
6. Умножение матриц и столбцов
Напоминание теории. Операция умножения определена для двух
матриц, таких что число столбцов первой равно числу строк второй.
Пусть матрицы A и B таковы, что
A ∈ ℝn×k и
B ∈ ℝk×m. Произведением матриц
A и B называется матрица C, такая что
cij = ∑kr = 1airbrj, где cij —
элемент матрицы C, стоящий на пересечении строки с номером
i и столбца с номером j.
В NumPy произведение матриц вычисляется с помощью функции
numpy.dot(a, b, …) или с помощью метода
array1.dot(array2), где array1 и array2 —
перемножаемые матрицы.
a = np.array([[1, 0], [0, 1]]) b = np.array([[4, 1], [2, 2]]) r1 = np.dot(a, b) r2 = a.dot(b)
print ("Матрица A:n", a) print ("Матрица B:n", b) print ("Результат умножения функцией:n", r1) print ("Результат умножения методом:n", r2)
Матрица A: [[1 0] [0 1]] Матрица B: [[4 1] [2 2]] Результат умножения функцией: [[4 1] [2 2]] Результат умножения методом: [[4 1] [2 2]]
Матрицы в NumPy можно умножать и на векторы:
c = np.array([1, 2]) r3 = b.dot(c)
print ("Матрица:n", b) print ("Вектор:n", c) print ("Результат умножения:n", r3)
Матрица: [[4 1] [2 2]] Вектор: [1 2] Результат умножения: [6 6]
Обратите внимание: операция * производит над матрицами
покоординатное умножение, а не матричное!
r = a * b
print ("Матрица A:n", a) print ("Матрица B:n", b) print ("Результат покоординатного умножения через операцию умножения:n", r)
Матрица A: [[1 0] [0 1]] Матрица B: [[4 1] [2 2]] Результат покоординатного умножения через операцию умножения: [[4 0] [0 2]]
Более подробно о матричном умножении в NumPy см.
документацию.
7. Объединение массивов
Массивы можно Объединенять. Есть горизонтальное и вертикальное
объединение.
a = np.floor(10*np.random.random((2,2))) b = np.floor(10*np.random.random((2,2))) print(a) print(b) print() print(np.vstack((a,b))) print() print(np.hstack((a,b)))
[[4. 0.] [1. 4.]] [[9. 7.] [2. 6.]] [[4. 0.] [1. 4.] [9. 7.] [2. 6.]] [[4. 0. 9. 7.] [1. 4. 2. 6.]]
Массивы можно переформировать при помощи метода, который задает новый
многомерный массив. Следуя следующему примеру, мы переформатируем
одномерный массив из десяти элементов во двумерный массив, состоящий из
пяти строк и двух столбцов:
a = np.array(range(10), float) print(a) print() # Превратим в матрицу a = a.reshape((5, 2)) print(a) print() # Вернем обратно print(a.flatten()) # Другой вариант print(a.reshape((-1))) # Превратим в марицу (9, 1) print(a.reshape((-1, 1))) # Превратим в марицу (1, 9) print(a.reshape((1, -1)))
[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.] [[0. 1.] [2. 3.] [4. 5.] [6. 7.] [8. 9.]] [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.] [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.] [[0.] [1.] [2.] [3.] [4.] [5.] [6.] [7.] [8.] [9.]] [[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]]
Задания: (Блок 1)
Задание 1:
Решите без использования циклов средставми NumPy (каждый пункт решается
в 1-2 строчки)
- Создайте вектор с элементами от 12 до 42
- Создайте вектор из нулей длины 12, но его пятый елемент должен быть равен 1
- Создайте матрицу (3, 3), заполненую от 0 до 8
- Найдите все положительные числа в np.array([1,2,0,0,4,0])
- Умножьте матрицу размерности (5, 3) на (3, 2)
- Создайте матрицу (10, 10) так, чтобы на границе были 0, а внтури 1
- Создайте рандомный вектор и отсортируйте его
- Каков эквивалент функции enumerate для numpy массивов?
- *Создайте рандомный вектор и выполните нормализацию столбцов (из каждого столбца вычесть среднее этого столбца, из каждого столбца вычесть sd этого столбца)
- *Для заданного числа найдите ближайший к нему элемент в векторе
- *Найдите N наибольших значений в векторе
# ваш код здесь
Задание 2:
Напишите полностью векторизованный вариант
Дан трёхмерный массив, содержащий изображение, размера (height, width,
numChannels), а также вектор длины numChannels. Сложить каналы
изображения с указанными весами, и вернуть результат в виде матрицы
размера (height, width). Считать реальное изображение можно при помощи
функции
scipy.misc.imread
(если изображение не в формате png,
установите пакет pillow:
conda install pillow
). Преобразуйте
цветное изображение в оттенки серого, использовав коэффициенты
np.array([0.299, 0.587, 0.114]).
# ваш код здесь
8. Транспонирование матриц
Напоминание теории. Транспонированной матрицей AT
называется матрица, полученная из исходной матрицы A заменой
строк на столбцы. Формально: элементы матрицы AT определяются
как aTij = aji, где aTij — элемент
матрицы AT, стоящий на пересечении строки с номером i
и столбца с номером j.
В NumPy транспонированная матрица вычисляется с помощью функции
numpy.transpose() или с помощью метода array.T, где
array — нужный двумерный массив.
a = np.array([[1, 2], [3, 4]]) b = np.transpose(a) c = a.T
print ("Матрица:n", a) print ("Транспонирование функцией:n", b) print ("Транспонирование методом:n", c)
Матрица: [[1 2] [3 4]] Транспонирование функцией: [[1 3] [2 4]] Транспонирование методом: [[1 3] [2 4]]
См. более подробно о
numpy.transpose()
и
array.T
в NumPy.
В следующих разделах активно используется модуль numpy.linalg,
реализующий некоторые приложения линейной алгебры. Более подробно о
функциях, описанных ниже, и различных других функциях этого модуля можно
посмотреть в его
документации.
9. Определитель матрицы
Напоминание теории. Для квадратных матриц существует понятие
определителя.
Пусть A — квадратная матрица. Определителем (или
детерминантом) матрицы A ∈ ℝn×n назовем
число
detA = ∑α1, α2, …, αn( − 1)N(α1, α2, …, αn)⋅aα11⋅⋅⋅aαnn,
где α1, α2, …, αn — перестановка
чисел от 1 до n,
N(α1, α2, …, αn) — число инверсий в
перестановке, суммирование ведется по всем возможным перестановкам длины
n.
Не стоит расстраиваться, если это определение понятно не до конца — в
дальнейшем в таком виде оно не понадобится.
Например, для матрицы размера 2×2 получается:
det⎛⎜⎝
a11
a12
a21
a22
⎞⎟⎠ = a11a22 − a12a21
Вычисление определителя матрицы по определению требует порядка
n! операций, поэтому разработаны методы, которые позволяют
вычислять его быстро и эффективно.
В NumPy определитель матрицы вычисляется с помощью функции
numpy.linalg.det(a), где a — исходная матрица.
a = np.array([[1, 2, 1], [1, 1, 4], [2, 3, 6]], dtype=np.float32) det = np.linalg.det(a)
print ("Матрица:n", a) print ("Определитель:n", det)
Матрица: [[1. 2. 1.] [1. 1. 4.] [2. 3. 6.]] Определитель: -1.0
Рассмотрим одно интересное свойство определителя. Пусть у нас есть
параллелограмм с углами в точках
(0, 0), (c, d), (a + c, b + d), (a, b) (углы даны в порядке обхода по
часовой стрелке). Тогда площадь этого параллелограмма можно вычислить
как модуль определителя матрицы
⎛⎜⎝
a
c
b
d
⎞⎟⎠.
Похожим образом можно выразить и объем параллелепипеда через
определитель матрицы размера 3×3.
10. Ранг матрицы
Напоминание теории. Рангом матрицы A называется
максимальное число линейно независимых строк (столбцов) этой матрицы.
В NumPy ранг матрицы вычисляется с помощью функции
numpy.linalg.matrix_rank(M, tol=None), где M — матрица,
tol — параметр, отвечающий за некоторую точность вычисления. В
простом случае можно его не задавать, и функция сама определит
подходящее значение этого параметра.
a = np.array([[1, 2, 3], [1, 1, 1], [2, 2, 2]]) r = np.linalg.matrix_rank(a)
print ("Матрица:n", a) print ("Ранг матрицы:", r)
Матрица: [[1 2 3] [1 1 1] [2 2 2]] Ранг матрицы: 2
С помощью вычисления ранга матрицы можно проверять линейную
независимость системы векторов.
Допустим, у нас есть несколько векторов. Составим из них матрицу, где
наши векторы будут являться строками. Понятно, что векторы линейно
независимы тогда и только тогда, когда ранг полученной матрицы совпадает
с числом векторов. Приведем пример:
a = np.array([1, 2, 3]) b = np.array([1, 1, 1]) c = np.array([2, 3, 5]) m = np.array([a, b, c])
print (np.linalg.matrix_rank(m) == m.shape[0])
True
11. Системы линейных уравнений
Напоминание теории. Системой линейных алгебраических уравнений
называется система вида Ax = b, где
A ∈ ℝn×m, x ∈ ℝm×1, b ∈ ℝn×1.
В случае квадратной невырожденной матрицы A решение системы
единственно.
В NumPy решение такой системы можно найти с помощью функции
numpy.linalg.solve(a, b), где первый аргумент — матрица
A, второй — столбец b.
a = np.array([[3, 1], [1, 2]]) b = np.array([9, 8]) x = np.linalg.solve(a, b)
print ("Матрица A:n", a) print ("Вектор b:n", b) print ("Решение системы:n", x)
Матрица A: [[3 1] [1 2]] Вектор b: [9 8] Решение системы: [2. 3.]
Убедимся, что вектор x действительно является решением системы:
print (a.dot(x))
[9. 8.]
Бывают случаи, когда решение системы не существует. Но хотелось бы все
равно “решить” такую систему. Логичным кажется искать такой вектор
x, который минимизирует выражение
‖Ax − b‖2 — так мы приблизим выражение
Ax к b.
В NumPy такое псевдорешение можно искать с помощью функции
numpy.linalg.lstsq(a, b, …), где первые два аргумента такие
же, как и для функции numpy.linalg.solve(). Помимо решения
функция возвращает еще три значения, которые нам сейчас не понадобятся.
a = np.array([[0, 1], [1, 1], [2, 1], [3, 1]]) b = np.array([-1, 0.2, 0.9, 2.1]) x, res, r, s = np.linalg.lstsq(a, b, rcond=None)
print ("Матрица A:n", a) print ("Вектор b:n", b) print ("Псевдорешение системы:n", x)
Матрица A: [[0 1] [1 1] [2 1] [3 1]] Вектор b: [-1. 0.2 0.9 2.1] Псевдорешение системы: [ 1. -0.95]
12. Обращение матриц
Напоминание теории. Для квадратных невырожденных матриц определено
понятие обратной матрицы.
Пусть A — квадратная невырожденная матрица. Матрица
A − 1 называется обратной матрицей к A, если
AA − 1 = A − 1A = I,
где I — единичная матрица.
В NumPy обратные матрицы вычисляются с помощью функции
numpy.linalg.inv(a), где a — исходная матрица.
a = np.array([[1, 2, 1], [1, 1, 4], [2, 3, 6]], dtype=np.float32) b = np.linalg.inv(a)
print ("Матрица A:n", a) print ("Обратная матрица к A:n", b) print ("Произведение A на обратную должна быть единичной:n", a.dot(b))
Матрица A: [[1. 2. 1.] [1. 1. 4.] [2. 3. 6.]] Обратная матрица к A: [[ 6. 9. -7.] [-2. -4. 3.] [-1. -1. 1.]] Произведение A на обратную должна быть единичной: [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]
13. Собственные числа и собственные вектора матрицы
Напоминание теории. Для квадратных матриц определены понятия
собственного вектора и собственного числа.
Пусть A — квадратная матрица и
A ∈ ℝn×n. Собственным вектором матрицы
A называется такой ненулевой вектор
x ∈ ℝn, что для некоторого
λ ∈ ℝ выполняется равенство
Ax = λx. При этом λ называется
собственным числом матрицы A. Собственные числа и
собственные векторы матрицы играют важную роль в теории линейной алгебры
и ее практических приложениях.
В NumPy собственные числа и собственные векторы матрицы вычисляются
с помощью функции numpy.linalg.eig(a), где a — исходная
матрица. В качестве результата эта функция выдает одномерный массив
w собственных чисел и двумерный массив v, в котором по
столбцам записаны собственные вектора, так что вектор v[:, i]
соотвествует собственному числу w[i].
a = np.array([[-1, -6], [2, 6]]) w, v = np.linalg.eig(a)
print ("Матрица A:n", a) print ("Собственные числа:n", w) print ("Собственные векторы:n", v)
Матрица A: [[-1 -6] [ 2 6]] Собственные числа: [2. 3.] Собственные векторы: [[-0.89442719 0.83205029] [ 0.4472136 -0.5547002 ]]
Обратите внимание: у вещественной матрицы собственные значения или
собственные векторы могут быть комплексными.
14. Расстояния между векторами
Вспомним некоторые нормы, которые можно ввести в пространстве
ℝn, и рассмотрим, с помощью каких библиотек и
функций их можно вычислять в NumPy.
p-норма
p-норма (норма Гёльдера) для вектора
x = (x1, …, xn) ∈ ℝn вычисляется по
формуле:
‖x‖p = (n∑i = 1|xi|p)1 ⁄ p, p ≥ 1.
В частных случаях при: * p = 1 получаем ℓ1 норму
* p = 2 получаем ℓ2 норму
Далее нам понабится модуль numpy.linalg, реализующий некоторые
приложения линейной алгебры. Для вычисления различных норм мы используем
функцию numpy.linalg.norm(x, ord=None, …), где x —
исходный вектор, ord — параметр, определяющий норму (мы
рассмотрим два варианта его значений — 1 и 2). Импортируем эту функцию:
from numpy.linalg import norm
ℓ1 норма
ℓ1 норма (также известная как манхэттенское
расстояние)
для вектора x = (x1, …, xn) ∈ ℝn
вычисляется по формуле:
‖x‖1 = n∑i = 1|xi|.
Ей в функции numpy.linalg.norm(x, ord=None, …) соответствует
параметр ord=1.
a = np.array([1, 2, -3]) print('Вектор a:', a)
Вектор a: [ 1 2 -3]
print('L1 норма вектора a:n', norm(a, ord=1))
L1 норма вектора a: 6.0
ℓ2 норма
ℓ2 норма (также известная как евклидова норма) для вектора
x = (x1, …, xn) ∈ ℝn вычисляется по
формуле:
‖x‖2 = √(n∑i = 1(xi)2).
Ей в функции numpy.linalg.norm(x, ord=None, …) соответствует
параметр ord=2.
print ('L2 норма вектора a:n', norm(a, ord=2))
L2 норма вектора a: 3.7416573867739413
Более подробно о том, какие еще нормы (в том числе матричные) можно
вычислить, см.
документацию.
15. Расстояния между векторами
Для двух векторов x = (x1, …, xn) ∈ ℝn и
y = (y1, …, yn) ∈ ℝn ℓ1 и
ℓ2 раccтояния вычисляются по следующим формулам
соответственно:
ρ1(x, y) = ‖x − y‖1 = n∑i = 1|xi − yi|
ρ2(x, y) = ‖x − y‖2 = √(n∑i = 1(xi − yi)2).
a = np.array([1, 2, -3]) b = np.array([-4, 3, 8]) print ('Вектор a:', a) print ('Вектор b:', b)
Вектор a: [ 1 2 -3] Вектор b: [-4 3 8]
print ('L1 расстояние между векторами a и b:n', norm(a - b, ord=1)) print ('L2 расстояние между векторами a и b:n', norm(a - b, ord=2))
L1 расстояние между векторами a и b: 17.0 L2 расстояние между векторами a и b: 12.12435565298214
16. Скалярное произведение и угол между векторами
a = np.array([0, 5, -1]) b = np.array([-4, 9, 3]) print ('Вектор a:', a) print ('Вектор b:', b)
Вектор a: [ 0 5 -1] Вектор b: [-4 9 3]
Скалярное произведение в пространстве ℝn для двух
векторов x = (x1, …, xn) и
y = (y1, …, yn) определяется как:
⟨x, y⟩ = n∑i = 1xiyi.
Длиной вектора x = (x1, …, xn) ∈ ℝn
называется квадратный корень из скалярного произведения, то есть длина
равна евклидовой норме вектора:
|x| = √(⟨x, x⟩) = √(n∑i = 1x2i) = ‖x‖2.
Теперь, когда мы знаем расстояние между двумя ненулевыми векторами и их
длины, мы можем вычислить угол между ними через скалярное произведение:
⟨x, y⟩ = |x||y|cos(α) ⟹ cos(α) = (⟨x, y⟩)/(|x||y|),
где α ∈ [0, π] — угол между векторами x и
y.
cos_angle = np.dot(a, b) / norm(a) / norm(b) print ('Косинус угла между a и b:', cos_angle) print ('Сам угол:', np.arccos(cos_angle))
Косинус угла между a и b: 0.8000362836474323 Сам угол: 0.6434406336093618
17. Комплексные числа в питоне
Напоминание теории. Комплексными числами называются числа вида
x + iy, где x и y — вещественные числа, а
i — мнимая единица (величина, для которой выполняется равенство
i2 = − 1). Множество всех комплексных чисел обозначается
буквой ℂ (подробнее про комплексные числа см.
википедию).
В питоне комплескные числа можно задать следующим образом (j
обозначает мнимую единицу):
a = 3 + 2j b = 1j
print ("Комплексное число a:n", a) print ("Комплексное число b:n", b)
Комплексное число a: (3+2j) Комплексное число b: 1j
С комплексными числами в питоне можно производить базовые арифметические
операции так же, как и с вещественными числами:
c = a * a d = a / (4 - 5j)
print ("Комплексное число c:n", c) print ("Комплексное число d:n", d)
Комплексное число c: (5+12j) Комплексное число d: (0.0487804878048781+0.5609756097560976j)
Задания: (Блок 2)
Задание 3:
Рассмотрим сложную математическую функцию на отрезке [1, 15]:
f(x) = sin(x / 5) * exp(x / 10) + 5 * exp(-x / 2)
Она может описывать, например, зависимость оценок, которые выставляют
определенному сорту вина эксперты, в зависимости от возраста этого вина.
Мы хотим приблизить сложную зависимость с помощью функции из
определенного семейства. В этом задании мы будем приближать указанную
функцию с помощью многочленов.
Как известно, многочлен степени n (то есть w0 +
w1x + w2x2 + … + wnxn)
однозначно определяется любыми n + 1 различными точками, через которые
он проходит. Это значит, что его коэффициенты w0, … wn
можно определить из следующей системы линейных уравнений:
где через x1, …, xn, xn + 1 обозначены точки, через которые
проходит многочлен, а через f(x1), …, f(xn), f(xn + 1) —
значения, которые он должен принимать в этих точках.
Воспользуемся описанным свойством, и будем находить приближение функции
многочленом, решая систему линейных уравнений.
- Сформируйте систему линейных уравнений (то есть задайте матрицу
коэффициентов A и свободный вектор b) для многочлена первой степени,
который должен совпадать с функцией f в точках 1 и 15. Решите данную
систему с помощью функции scipy.linalg.solve. Нарисуйте функцию f и
полученный многочлен. Хорошо ли он приближает исходную функцию? - Повторите те же шаги для многочлена второй степени, который совпадает
с функцией f в точках 1, 8 и 15. Улучшилось ли качество
аппроксимации? - Повторите те же шаги для многочлена третьей степени, который
совпадает с функцией f в точках 1, 4, 10 и 15. Хорошо ли он
аппроксимирует функцию? Коэффициенты данного многочлена (четыре числа
в следующем порядке: w_0, w_1, w_2, w_3) являются ответом на задачу.
Округлять коэффициенты не обязательно, но при желании можете
произвести округление до второго знака (т.е. до числа вида 0.42)
Определитель матрицы и его свойства
8 февраля 2018
В этом уроке мы детально рассмотрим несколько ключевые вопросов и определений, благодаря чему вы раз и навсегда разберётесь и с матрицами, и с определителями, и со всеми их свойствами.
Определители — центральное понятие в алгебре матриц. Подобно формулам сокращённого умножения, они будут преследовать вас на протяжении всего курса высшей математики. Поэтому читаем, смотрим и разбираемся досконально.:)
И начнём мы с самого сокровенного — а что такое матрица? И как правильно с ней работать.
Правильная расстановка индексов в матрице
Матрица — это просто таблица, заполненная числами. Нео тут ни при чём.
Одна из ключевых характеристик матрицы — это её размерность, т.е. количество строк и столбцов, из которых она состоит. Обычно говорят, что некая матрица $A$ имеет размер $left[ mtimes n right]$, если в ней имеется $m$ строк и $n$ столбцов. Записывают это так:
[A=left[ mtimes n right]]
Или вот так:
[A=left( {{a}_{ij}} right),quad 1le ile m;quad 1le jle n.]
Бывают и другие обозначения — тут всё зависит от предпочтений лектора/ семинариста/ автора учебника. Но в любом случае со всеми этими $left[ mtimes n right]$ и ${{a}_{ij}}$ возникает одна и та же проблема:
Какой индекс за что отвечает? Сначала идёт номер строки, затем — столбца? Или наоборот?
При чтении лекций и учебников ответ будет казаться очевидным. Но когда на экзамене перед вами — только листик с задачей, можно переволноваться и внезапно запутаться.
Поэтому давайте разберёмся с этим вопросом раз и навсегда. Для начала вспомним обычную систему координат из школьного курса математики:
Помните её? У неё есть начало координат (точка $O=left( 0;0 right)$) оси $x$и $y$, а каждая точка на плоскости однозначно определяется по координатам: $A=left( 1;2 right)$, $B=left( 3;1 right)$ и т.д.
А теперь давайте возьмём эту конструкцию и поставим её рядом с матрицей так, чтобы начало координат находилось в левом верхнем углу. Почему именно там? Да потому что открывая книгу, мы начинаем читать именно с левого верхнего угла страницы — запомнить это легче лёгкого.
Но куда направить оси? Мы направим их так, чтобы вся наша виртуальная «страница» была охвачена этими осями. Правда, для этого придётся повернуть нашу систему координат. Единственно возможный вариант такого расположения:
Теперь всякая клетка матрицы имеет однозначные координаты $x$ и $y$. Например запись ${{a}_{24}}$ означает, что мы обращаемся к элементу с координатами $x=2$ и $y=4$. Размеры матрицы тоже однозначно задаются парой чисел:
Просто всмотритесь в эту картинку внимательно. Поиграйтесь с координатами (особенно когда будете работать с настоящими матрицами и определителями) — и очень скоро поймёте, что даже в самых сложных теоремах и определениях вы прекрасно понимаете, о чём идёт речь.
Разобрались? Что ж, переходим к первому шагу просветления — геометрическому определению определителя.:)
Геометрическое определение
Прежде всего хотел бы отметить, что определитель существует только для квадратных матриц вида $left[ ntimes n right]$. Определитель — это число, которое cчитается по определённым правилам и является одной из характеристик этой матрицы (есть другие характеристики: ранг, собственные вектора, но об этом в других уроках).
Ну и что это за характеристика? Что он означает? Всё просто:
Определитель квадратной матрицы $A=left[ ntimes n right]$ — это объём $n$-мерного параллелепипеда, который образуется, если рассмотреть строки матрицы в качестве векторов, образующих рёбра этого параллелепипеда.
Например, определитель матрицы размера 2×2 — это просто площадь параллелограмма, а для матрицы 3×3 это уже объём 3-мерного параллелепипеда — того самого, который так бесит всех старшеклассников на уроках стереометрии.
На первый взгляд это определение может показаться совершенно неадекватным. Но давайте не будем спешить с выводами — глянем на примеры. На самом деле всё элементарно, Ватсон:
Задача. Найдите определители матриц:
[left| begin{matrix} 1 & 0 \ 0 & 3 \end{matrix} right|quad left| begin{matrix} 1 & -1 \ 2 & 2 \end{matrix} right|quad left| begin{matrix}2 & 0 & 0 \ 1 & 3 & 0 \ 1 & 1 & 4 \end{matrix} right|]
Решение. Первые два определителя имеют размер 2×2. Значит, это просто площади параллелограммов. Начертим их и посчитаем площадь.
Первый параллелограмм построен на векторах ${{v}_{1}}=left( 1;0 right)$ и ${{v}_{2}}=left( 0;3 right)$:
Определитель 2×2 — это площадь параллелограмма Очевидно, это не просто параллелограмм, а вполне себе прямоугольник. Его площадь равна
[S=1cdot 3=3]
Второй параллелограмм построен на векторах ${{v}_{1}}=left( 1;-1 right)$ и ${{v}_{2}}=left( 2;2 right)$. Ну и что с того? Это тоже прямоугольник:
Ещё один определитель 2×2 Стороны этого прямоугольника (по сути — длины векторов) легко считаются по теореме Пифагора:
[begin{align} & left| {{v}_{1}} right|=sqrt{{{1}^{2}}+{{left( -1 right)}^{2}}}=sqrt{2}; \ & left| {{v}_{2}} right|=sqrt{{{2}^{2}}+{{2}^{2}}}=sqrt{8}=2sqrt{2}; \ & S=left| {{v}_{1}} right|cdot left| {{v}_{2}} right|=sqrt{2}cdot 2sqrt{2}=4. \end{align}]
Осталось разобраться с последним определителем — там уже матрица 3×3. Придётся вспоминать стереометрию:
Определитель 3×3 — это объём параллелепипеда Выглядит мозговыносяще, но по факту достаточно вспомнить формулу объёма параллелепипеда:
[V=Scdot h]
где $S$ — площадь основания (в нашем случае это площадь параллелограмма на плоскости $OXY$), $h$ — высота, проведённая к этому основанию (по сути, $z$-координата вектора ${{v}_{3}}$).
Площадь параллелограмма (мы начертили его отдельно) тоже считается легко:
[begin{align} & S=2cdot 3=6; \ & V=Scdot h=6cdot 4=24. \end{align}]
Вот и всё! Записываем ответы.
Ответ: 3; 4; 24.
Небольшое замечание по поводу системы обозначений. Кому-то наверняка не понравится, что я игнорирую «стрелочки» над векторами. Якобы так можно спутать вектор с точкой или ещё с чем.
Но давайте серьёзно: мы с вами уже взрослые мальчики и девочки, поэтому из контекста прекрасно понимаем, когда речь идёт о векторе, а когда — о точке. Стрелки лишь засоряют повествование, и без того под завязку напичканное математическими формулами.
И ещё. В принципе, ничто не мешает рассмотреть и определитель матрицы 1×1 — такая матрица представляет собой просто одну клетку, а число, записанное в этой клетке, и будет определителем. Но тут есть важное замечание:
В отличие от классического объёма, определитель даст нам так называемый «ориентированный объём», т.е. объём с учётом последовательности рассмотрения векторов-строк.
И если вы хотите получить объём в классическом смысле этого слова, придётся взять модуль определителя, но сейчас не стоит париться об этом — всё равно через несколько секунд мы научимся считать любой определитель с любыми знаками, размерами и т.д.:)
Алгебраическое определение
При всей красоте и наглядности геометрического подхода у него есть серьёзный недостаток: он ничего не говорит нам о том, как этот самый определитель считать.
Поэтому сейчас мы разберём альтернативное определение — алгебраическое. Для этого нам потребуется краткая теоретическая подготовка, зато на выходе мы получим инструмент, позволяющий считать в матрицах что и как угодно.
Правда, там появится новая проблема… но обо всём по порядку.
Перестановки и инверсии
Давайте выпишем в строчку числа от 1 до $n$. Получится что-то типа этого:
[1;2;3;4;5;…;n-1;n]
Теперь (чисто по приколу) поменяем парочку чисел местами. Можно поменять соседние:
[1;3;2;4;5;…;n-1;n]
А можно — не особо соседние:
[n;2;3;4;5;…;n-1;1]
И знаете, что? А ничего! В алгебре эта хрень называется перестановкой. И у неё есть куча свойств.
Определение. Перестановка длины $n$ — строка из $n$ различных чисел, записанных в любой последовательности. Обычно рассматриваются первые $n$ натуральных чисел (т.е. как раз числа 1, 2, …, $n$), а затем их перемешивают для получения нужной перестановки.
Обозначаются перестановки так же, как и векторы — просто буквой и последовательным перечислением своих элементов в скобках. Например: $p=left( 1;3;2 right)$ или $p=left( 2;5;1;4;3 right)$. Буква может быть любой, но пусть будет $p$.:)
Далее для простоты изложения будем работать с перестановками длины 5 — они уже достаточно серьёзны для наблюдения всяких подозрительных эффектов, но ещё не настолько суровы для неокрепшего мозга, как перестановки длины 6 и более. Вот примеры таких перестановок:
[begin{align} & {{p}_{1}}=left( 1;2;3;4;5 right) \ & {{p}_{2}}=left( 1;3;2;5;4 right) \ & {{p}_{3}}=left( 5;4;3;2;1 right) \end{align}]
Естественно, перестановку длины $n$ можно рассматривать как функцию, которая определена на множестве $left{ 1;2;…;n right}$ и биективно отображает это множество на себя же. Возвращаясь к только что записанным перестановкам ${{p}_{1}}$, ${{p}_{2}}$ и ${{p}_{3}}$, мы вполне законно можем написать:
[{{p}_{1}}left( 1 right)=1;{{p}_{2}}left( 3 right)=2;{{p}_{3}}left( 2 right)=4;]
Количество различных перестановок длины $n$ всегда ограничено и равно $n!$ — это легко доказуемый факт из комбинаторики. Например, если мы захотим выписать все перестановки длины 5, то мы весьма заколебёмся, поскольку таких перестановок будет
[n!=5!=1cdot 2cdot 3cdot 4cdot 5=120]
Одной из ключевых характеристик всякой перестановки является количество инверсий в ней.
Определение. Инверсия в перестановке $p=left( {{a}_{1}};{{a}_{2}};…;{{a}_{n}} right)$ — всякая пара $left( {{a}_{i}};{{a}_{j}} right)$ такая, что $i lt j$, но ${{a}_{i}} gt {{a}_{j}}$. Проще говоря, инверсия — это когда большее число стоит левее меньшего (не обязательно соседнего).
Мы будем обозначать через $Nleft( p right)$ количество инверсий в перестановке $p$, но будьте готовы встретиться и с другими обозначениями в разных учебниках и у разных авторов — единых стандартов тут нет. Тема инверсий весьма обширна, и ей будет посвящён отдельный урок. Сейчас же наша задача — просто научиться считать их в реальных задачах.
Например, посчитаем количество инверсий в перестановке $p=left( 1;4;5;3;2 right)$:
[left( 4;3 right);left( 4;2 right);left( 5;3 right);left( 5;2 right);left( 3;2 right).]
Таким образом, $Nleft( p right)=5$. Как видите, ничего страшного в этом нет. Сразу скажу: дальше нас будет интересовать не столько само число $Nleft( p right)$, сколько его чётность/ нечётность. И тут мы плавно переходим к ключевому термину сегодняшнего урока.
Что такое определитель
Пусть дана квадратная матрица $A=left[ ntimes n right]$. Тогда:
Определение. Определитель матрицы $A=left[ ntimes n right]$ — это алгебраическая сумма $n!$ слагаемых, составленных следующим образом. Каждое слагаемое — это произведение $n$ элементов матрицы, взятых по одному из каждой строки и каждого столбца, умноженное на (−1) в степени количество инверсий:
[left| A right|=sumlimits_{n!}{{{left( -1 right)}^{Nleft( p right)}}cdot {{a}_{1;pleft( 1 right)}}cdot {{a}_{2;pleft( 2 right)}}cdot …cdot {{a}_{n;pleft( n right)}}}]
Принципиальным моментом при выборе множителей для каждого слагаемого в определителе является тот факт, что никакие два множителя не стоят в одной строчке или в одном столбце.
Благодаря этому можно без ограничения общности считать, что индексы $i$ множителей ${{a}_{i;j}}$ «пробегают» значения 1, …, $n$, а индексы $j$ являются некоторой перестановкой от первых:
[j=pleft( i right),quad i=1,2,…,n]
А когда есть перестановка $p$, мы легко посчитаем инверсии $Nleft( p right)$ — и очередное слагаемое определителя готово.
Естественно, никто не запрещает поменять местами множители в каком-либо слагаемом (или во всех сразу — чего мелочиться-то?), и тогда первые индексы тоже будут представлять собой некоторую перестановку. Но в итоге ничего не поменяется: суммарное количество инверсий в индексах $i$ и $j$ сохраняет чётность при подобных извращениях, что вполне соответствует старому-доброму правилу:
От перестановки множителей произведение чисел не меняется.
Вот только не надо приплетать это правило к умножению матриц — в отличие от умножения чисел, оно не коммутативно. Но это я отвлёкся.:)
Матрица 2×2
Вообще-то можно рассмотреть и матрицу 1×1 — это будет одна клетка, и её определитель, как нетрудно догадаться, равен числу, записанному в этой клетке. Ничего интересного.
Поэтому давайте рассмотрим квадратную матрицу размером 2×2:
[left[ begin{matrix} {{a}_{11}} & {{a}_{12}} \ {{a}_{21}} & {{a}_{22}} \end{matrix} right]]
Поскольку количество строк в ней $n=2$, то определитель будет содержать $n!=2!=1cdot 2=2$ слагаемых. Выпишем их:
[begin{align} & {{left( -1 right)}^{Nleft( 1;2 right)}}cdot {{a}_{11}}cdot {{a}_{22}}={{left( -1 right)}^{0}}cdot {{a}_{11}}cdot {{a}_{22}}={{a}_{11}}{{a}_{22}}; \ & {{left( -1 right)}^{Nleft( 2;1 right)}}cdot {{a}_{12}}cdot {{a}_{21}}={{left( -1 right)}^{1}}cdot {{a}_{12}}cdot {{a}_{21}}={{a}_{12}}{{a}_{21}}. \end{align}]
Очевидно, что в перестановке $left( 1;2 right)$, состоящей из двух элементов, нет инверсий, поэтому $Nleft( 1;2 right)=0$. А вот в перестановке $left( 2;1 right)$ одна инверсия имеется (собственно, 2 < 1), поэтому $Nleft( 2;1 right)=1.$
Итого универсальная формула вычисления определителя для матрицы 2×2 выглядит так:
[left| begin{matrix} {{a}_{11}} & {{a}_{12}} \ {{a}_{21}} & {{a}_{22}} \end{matrix} right|={{a}_{11}}{{a}_{22}}-{{a}_{12}}{{a}_{21}}]
Графически это можно представить как произведение элементов, стоящих на главной диагонали, минус произведение элементов на побочной:
Рассмотрим пару примеров:
Задача. Вычислите определитель:
[left| begin{matrix} 5 & 6 \ 8 & 9 \end{matrix} right|;quad left| begin{matrix} 7 & 12 \ 14 & 1 \end{matrix} right|.]
Решение. Всё считается в одну строчку. Первая матрица:
[5cdot 9-8cdot 6=45-48=-3]
И вторая:
[7cdot 1-14cdot 12=7-168=-161]
Ответ: −3; −161.
Впрочем, это было слишком просто. Давайте рассмотрим матрицы 3×3 — там уже интересно.
Матрица 3×3
Теперь рассмотрим квадратную матрицу размера 3×3:
[left[ begin{matrix} {{a}_{11}} & {{a}_{12}} & {{a}_{13}} \ {{a}_{21}} & {{a}_{22}} & {{a}_{23}} \ {{a}_{31}} & {{a}_{32}} & {{a}_{33}} \end{matrix} right]]
При вычислении её определителя мы получим $3!=1cdot 2cdot 3=6$ слагаемых — ещё не слишком много для паники, но уже достаточно, чтобы начать искать какие-то закономерности. Для начала выпишем все перестановки из трёх элементов и посчитаем инверсии в каждой из них:
[begin{align} & {{p}_{1}}=left( 1;2;3 right)Rightarrow Nleft( {{p}_{1}} right)=Nleft( 1;2;3 right)=0; \ & {{p}_{2}}=left( 1;3;2 right)Rightarrow Nleft( {{p}_{2}} right)=Nleft( 1;3;2 right)=1; \ & {{p}_{3}}=left( 2;1;3 right)Rightarrow Nleft( {{p}_{3}} right)=Nleft( 2;1;3 right)=1; \ & {{p}_{4}}=left( 2;3;1 right)Rightarrow Nleft( {{p}_{4}} right)=Nleft( 2;3;1 right)=2; \ & {{p}_{5}}=left( 3;1;2 right)Rightarrow Nleft( {{p}_{5}} right)=Nleft( 3;1;2 right)=2; \ & {{p}_{6}}=left( 3;2;1 right)Rightarrow Nleft( {{p}_{6}} right)=Nleft( 3;2;1 right)=3. \end{align}]
Как и предполагалось, всего выписано 6 перестановок ${{p}_{1}}$, … ${{p}_{6}}$ (естественно, можно было бы выписать их в другой последовательности — суть от этого не изменится), а количество инверсий в них меняется от 0 до 3.
В общем, у нас будет три слагаемых с «плюсом» (там, где $Nleft( p right)$ — чётное) и ещё три с «минусом». А в целом определитель будет считаться по формуле:
[left| begin{matrix} {{a}_{11}} & {{a}_{12}} & {{a}_{13}} \ {{a}_{21}} & {{a}_{22}} & {{a}_{23}} \ {{a}_{31}} & {{a}_{32}} & {{a}_{33}} \end{matrix} right|=begin{matrix} {{a}_{11}}{{a}_{22}}{{a}_{33}}+{{a}_{12}}{{a}_{23}}{{a}_{31}}+{{a}_{13}}{{a}_{21}}{{a}_{32}}- \ -{{a}_{13}}{{a}_{22}}{{a}_{31}}-{{a}_{12}}{{a}_{21}}{{a}_{33}}-{{a}_{11}}{{a}_{23}}{{a}_{32}} \end{matrix}]
Вот только не надо сейчас садиться и яростно зубрить все эти индексы! Вместо непонятных цифр лучше запомните следующее мнемоническое правило:
Правило треугольника. Для нахождения определителя матрицы 3×3 нужно сложить три произведения элементов, стоящих на главной диагонали и в вершинах равнобедренных треугольников со стороной, параллельной этой диагонали, а затем вычесть такие же три произведения, но на побочной диагонали. Схематически это выглядит так:
Определитель матрицы 3×3: правило треугольников
Именно эти треугольники (или пентаграммы — кому как больше нравится) любят рисовать во всяких учебниках и методичках по алгебре. Впрочем, не будем о грустном. Давайте лучше посчитаем один такой определитель — для разминки перед настоящей жестью.:)
Задача. Вычислите определитель:
[left| begin{matrix} 1 & 2 & 3 \ 4 & 5 & 6 \ 7 & 8 & 1 \end{matrix} right|]
Решение. Работаем по правилу треугольников. Сначала посчитаем три слагаемых, составленных из элементов на главной диагонали и параллельно ей:
[begin{align} & 1cdot 5cdot 1+2cdot 6cdot 7+3cdot 4cdot 8= \ & =5+84+96=185 \end{align}]
Теперь разбираемся с побочной диагональю:
[begin{align} & 3cdot 5cdot 7+2cdot 4cdot 1+1cdot 6cdot 8= \ & =105+8+48=161 \end{align}]
Осталось лишь вычесть из первого числа второе — и мы получим ответ:
[185-161=24]
Вот и всё!
Ответ: 24.
Тем не менее, определители матриц 3×3 — это ещё не вершина мастерства. Самое интересное ждёт нас дальше.:)
Общая схема вычисления определителей
Как мы знаем, с ростом размерности матрицы $n$ количество слагаемых в определителе составляет $n!$ и быстро растёт. Всё-таки факториал — это вам не хрен собачий довольно быстро растущая функция.
Уже для матриц 4×4 считать определители напролом (т.е. через перестановки) становится как-то не оч. Про 5×5 и более вообще молчу. Поэтому к делу подключаются некоторые свойства определителя, но для их понимания нужна небольшая теоретическая подготовка.
Готовы? Поехали!
Что такое минор матрицы
Пусть дана произвольная матрица $A=left[ mtimes n right]$. Заметьте: не обязательно квадратная. В отличие от определителей, миноры — это такие няшки, которые существуют не только в суровых квадратных матрицах. Выберем в этой матрице несколько (например, $k$) строк и столбцов, причём $1le kle m$ и $1le kle n$. Тогда:
Определение. Минор порядка $k$ — определитель квадратной матрицы, возникающей на пересечении выбранных $k$ столбцов и строк. Также минором мы будем называть и саму эту новую матрицу.
Обозначается такой минор ${{M}_{k}}$. Естественно, у одной матрицы может быть целая куча миноров порядка $k$. Вот пример минора порядка 2 для матрицы $left[ 5times 6 right]$:
Выбор $k = 2$ столбцов и строк для формирования минора
Совершенно необязательно, чтобы выбранные строки и столбцы стояли рядом, как в рассмотренном примере. Главное, чтобы количество выбранных строк и столбцов было одинаковым (это и есть число $k$).
Есть и другое определение. Возможно, кому-то оно больше придётся по душе:
Определение. Пусть дана прямоугольная матрица $A=left[ mtimes n right]$. Если после вычеркивания в ней одного или нескольких столбцов и одной или нескольких строк образуется квадратная матрица размера $left[ ktimes k right]$, то её определитель — это и есть минор ${{M}_{k}}$. Саму матрицу мы тоже иногда будем называть минором — это будет ясно из контекста.
Как говорил мой кот, иногда лучше один раз навернуться с 11-го этажа есть корм, чем мяукать, сидя на балконе.
Пример. Пусть дана матрица
[A=left[ begin{matrix} begin{matrix} 1 \ 2 \ 3 \end{matrix} & begin{matrix} 7 \ 4 \ 0 \end{matrix} & begin{matrix} 9 \ 5 \ 6 \end{matrix} & begin{matrix} 0 \ 3 \ 1 \end{matrix} \end{matrix} right]]
Выбирая строку 1 и столбец 2, получаем минор первого порядка:
[{{M}_{1}}=left| 7 right|=7]
Выбирая строки 2, 3 и столбцы 3, 4, получаем минор второго порядка:
[{{M}_{2}}=left| begin{matrix} 5 & 3 \ 6 & 1 \end{matrix} right|=5-18=-13]
А если выбрать все три строки, а также столбцы 1, 2, 4, будет минор третьего порядка:
[{{M}_{3}}=left| begin{matrix} 1 & 7 & 0 \ 2 & 4 & 3 \ 3 & 0 & 1 \end{matrix} right|]
Считать этот определитель мне уже в лом. Но он равен 53.:)
Читателю не составит труда найти и другие миноры порядков 1, 2 или 3. Поэтому идём дальше.
Алгебраические дополнения
«Ну ok, и что дают нам эти миньоны миноры?» — наверняка спросите вы. Сами по себе — ничего. Но в квадратных матрицах у каждого минора появляется «компаньон» — дополнительный минор, а также алгебраическое дополнение. И вместе эти два ушлёпка позволят нам щёлкать определители как орешки.
Определение. Пусть дана квадратная матрица $A=left[ ntimes n right]$, в которой выбран минор ${{M}_{k}}$. Тогда дополнительный минор для минора ${{M}_{k}}$ — это кусок исходной матрицы $A$, который останется при вычёркивании всех строк и столбцов, задействованных при составлении минора ${{M}_{k}}$:
Дополнительный минор к минору ${{M}_{2}}$ Уточним один момент: дополнительный минор — это не просто «кусок матрицы», а определитель этого куска.
Обозначаются дополнительные миноры с помощью «звёздочки»: $M_{k}^{*}$:
[M_{k}^{*}=left| Anabla {{M}_{k}} right|]
где операция $Anabla {{M}_{k}}$ буквально означает «вычеркнуть из $A$ строки и столбцы, входящие в ${{M}_{k}}$». Эта операция не является общепринятой в математике — я её сам только что придумал для красоты повествования.:)
Дополнительные миноры редко используются сами по себе. Они являются частью более сложной конструкции — алгебраического дополнения.
Определение. Алгебраическое дополнение минора ${{M}_{k}}$ — это дополнительный минор $M_{k}^{*}$, умноженный на величину ${{left( -1 right)}^{S}}$, где $S$ — сумма номеров всех строк и столбцов, задействованных в исходном миноре ${{M}_{k}}$.
Как правило, алгебраическое дополнение минора ${{M}_{k}}$ обозначается через ${{A}_{k}}$. Поэтому:
[{{A}_{k}}={{left( -1 right)}^{S}}cdot M_{k}^{*}]
Сложно? На первый взгляд — да. Но это не точно. Потому что на самом деле всё легко. Рассмотрим пример:
Пример. Дана матрица 4×4:
[A=left[ begin{matrix} 1 & 2 & 3 & 4 \ 5 & 6 & 7 & 8 \ 9 & 10 & 11 & 12 \ 13 & 14 & 15 & 16 \end{matrix} right]]
Выберем минор второго порядка
[{{M}_{2}}=left| begin{matrix} 3 & 4 \ 15 & 16 \end{matrix} right|]
Капитан Очевидность как бы намекает нам, что при составлении этого минора были задействованы строки 1 и 4, а также столбцы 3 и 4. Вычёркиваем их — получим дополнительный минор:
[M_{2}^{*}=left| begin{matrix} 5 & 6 \ 9 & 10 \end{matrix} right|=50-54=-4]
Осталось найти число $S$ и получить алгебраическое дополнение. Поскольку мы знаем номера задействованных строк (1 и 4) и столбцов (3 и 4), всё просто:
[begin{align} & S=1+4+3+4=12; \ & {{A}_{2}}={{left( -1 right)}^{S}}cdot M_{2}^{*}={{left( -1 right)}^{12}}cdot left( -4 right)=-4end{align}]
Ответ: ${{A}_{2}}=-4$
Вот и всё! По сути, всё различие между дополнительным минором и алгебраическим дополнением — только в минусе спереди, да и то не всегда.
Наша задача сейчас — научиться быстро считать алгебраические дополнения, потому что они являются составной частью «Теоремы, Которую Нельзя Называть». Но мы всё же назовём. Встречайте:
Теорема Лапласа
И вот мы пришли к тому, зачем, собственно, все эти миноры и алгебраические дополнения были нужны.
Теорема Лапласа о разложении определителя. Пусть в матрице размера $left[ ntimes n right]$ выбрано $k$ строк (столбцов), причём $1le kle n-1$. Тогда определитель этой матрицы равен сумме всех произведений миноров порядка $k$, содержащихся в выбранных строках (столбцах), на их алгебраические дополнения:
[left| A right|=sum{{{M}_{k}}cdot {{A}_{k}}}]
Причём таких слагаемых будет ровно $C_{n}^{k}$.
Ладно, ладно: про $C_{n}^{k}$ — это я уже понтуюсь, в оригинальной теореме Лапласа ничего такого не было. Но комбинаторику никто не отменял, и буквально беглый взгляд на условие позволит вам самостоятельно убедиться, что слагаемых будет именно столько.:)
Мы не будем её доказывать, хоть это и не представляет особой трудности — все выкладки сводятся к старым-добрым перестановкам и чётности/ нечётности инверсий. Тем не менее, доказательство будет представлено в отдельном параграфе, а сегодня у нас сугубо практический урок.
Поэтому переходим к частному случаю этой теоремы, когда миноры представляют собой отдельные клетки матрицы.
Разложение определителя по строке и столбцу
То, о чём сейчас пойдёт речь — как раз и есть основной инструмент работы с определителями, ради которого затевались вся эта дичь с перестановками, минорами и алгебраическими дополнениями.
Читайте и наслаждайтесь:
Следствие из Теоремы Лапласа (разложение определителя по строке/столбцу). Пусть в матрице размера $left[ ntimes n right]$ выбрана одна строка. Минорами в этой строке будут $n$ отдельных клеток:
[{{M}_{1}}={{a}_{ij}},quad j=1,…,n]
Дополнительные миноры тоже легко считаются: просто берём исходную матрицу и вычёркиваем строку и столбец, содержащие ${{a}_{ij}}$. Назовём такие миноры $M_{ij}^{*}$.
Для алгебраического дополнения ещё нужно число $S$, но в случае с минором порядка 1 это просто сумма «координат» клетки ${{a}_{ij}}$:
[S=i+j]
И тогда исходный определитель можно расписать через ${{a}_{ij}}$ и $M_{ij}^{*}$ согласно теореме Лапласа:
[left| A right|=sumlimits_{j=1}^{n}{{{a}_{ij}}cdot {{left( -1 right)}^{i+j}}cdot {{M}_{ij}}}]
Это и есть формула разложения определителя по строке. Но то же верно и для столбцов.
Из этого следствия можно сразу сформулировать несколько выводов:
- Эта схема одинаково хорошо работает как для строк, так и для столбцов. На самом деле чаще всего разложение будет идти именно по столбцам, нежели по строкам.
- Количество слагаемых в разложении всегда ровно $n$. Это существенно меньше $C_{n}^{k}$ и уж тем более $n!$.
- Вместо одного определителя $left[ ntimes n right]$ придётся считать несколько определителей размера на единицу меньше: $left[ left( n-1 right)times left( n-1 right) right]$.
Последний факт особенно важен. Например, вместо зверского определителя 4×4 теперь достаточно будет посчитать несколько определителей 3×3 — с ними мы уж как-нибудь справимся.:)
Что ж, попробуем посчитать одну такую задачку?
Задача. Найдите определитель:
[left| begin{matrix} 1 & 2 & 3 \ 4 & 5 & 6 \ 7 & 8 & 9 \end{matrix} right|]
Решение. Разложим этот определитель по первой строке:
[begin{align} left| A right|=1cdot {{left( -1 right)}^{1+1}}cdot left| begin{matrix} 5 & 6 \ 8 & 9 \end{matrix} right|+ & \ 2cdot {{left( -1 right)}^{1+2}}cdot left| begin{matrix} 4 & 6 \ 7 & 9 \end{matrix} right|+ & \ 3cdot {{left( -1 right)}^{1+3}}cdot left| begin{matrix} 4 & 5 \ 7 & 8 \end{matrix} right|= & \end{align}]
[begin{align} & =1cdot left( 45-48 right)-2cdot left( 36-42 right)+3cdot left( 32-35 right)= \ & =1cdot left( -3 right)-2cdot left( -6 right)+3cdot left( -3 right)=0. \end{align}]
Ответ: 0.
Задача. Найдите определитель:
[left| begin{matrix} 0 & 1 & 1 & 0 \ 1 & 0 & 1 & 1 \ 1 & 1 & 0 & 1 \ 1 & 1 & 1 & 0 \end{matrix} right|]
Решение. Для разнообразия давайте в этот раз работать со столбцами. Например, в последнем столбце присутствуют сразу два нуля — очевидно, это значительно сократит вычисления. Сейчас увидите почему.
Итак, раскладываем определитель по четвёртому столбцу:
[begin{align} left| begin{matrix} 0 & 1 & 1 & 0 \ 1 & 0 & 1 & 1 \ 1 & 1 & 0 & 1 \ 1 & 1 & 1 & 0 \end{matrix} right|=0cdot {{left( -1 right)}^{1+4}}cdot left| begin{matrix} 1 & 0 & 1 \ 1 & 1 & 0 \ 1 & 1 & 1 \end{matrix} right|+ & \ +1cdot {{left( -1 right)}^{2+4}}cdot left| begin{matrix} 0 & 1 & 1 \ 1 & 1 & 0 \ 1 & 1 & 1 \end{matrix} right|+ & \ +1cdot {{left( -1 right)}^{3+4}}cdot left| begin{matrix} 0 & 1 & 1 \ 1 & 0 & 1 \ 1 & 1 & 1 \end{matrix} right|+ & \ +0cdot {{left( -1 right)}^{4+4}}cdot left| begin{matrix} 0 & 1 & 1 \ 1 & 0 & 1 \ 1 & 1 & 0 \end{matrix} right| & \end{align}]
И тут — о, чудо! — два слагаемых сразу улетают коту под хвост, поскольку в них есть множитель «0». Остаётся ещё два определителя 3×3, с которыми мы легко разберёмся:
[begin{align} & left| begin{matrix} 0 & 1 & 1 \ 1 & 1 & 0 \ 1 & 1 & 1 \end{matrix} right|=0+0+1-1-1-0=-1; \ & left| begin{matrix} 0 & 1 & 1 \ 1 & 0 & 1 \ 1 & 1 & 1 \end{matrix} right|=0+1+1-0-0-1=1. \end{align}]
Возвращаемся к исходнику и находим ответ:
[left| begin{matrix} 0 & 1 & 1 & 0 \ 1 & 0 & 1 & 1 \ 1 & 1 & 0 & 1 \ 1 & 1 & 1 & 0 \end{matrix} right|=1cdot left( -1 right)+left( -1 right)cdot 1=-2]
Ну вот и всё. И никаких 4! = 24 слагаемых считать не пришлось.:)
Ответ: −2
Основные свойства определителя
В последней задаче мы видели, как наличие нулей в строках (столбцах) матрицы резко упрощает разложение определителя и вообще все вычисления. Возникает естественный вопрос: а нельзя ли сделать так, чтобы эти нули появились даже в той матрице, где их изначально не было?
Ответ однозначен: можно. И здесь нам на помощь приходят свойства определителя:
- Если поменять две строчки (столбца) местами, определитель поменяет знак;
- Если одну строку (столбец) умножить на число $k$, то весь определитель тоже умножится на число $k$;
- Если взять одну строку и прибавить (вычесть) её сколько угодно раз из другой, определитель не изменится;
- Если две строки определителя одинаковы, либо пропорциональны, либо одна из строк заполнена нулями, то весь определитель равен нулю;
- Все указанные выше свойства верны и для столбцов.
- При транспонировании матрицы определитель не меняется;
- Определитель произведения матриц равен произведению определителей.
Особую ценность представляет третье свойство: мы можем вычитать из одной строки (столбца) другую до тех пор, пока в нужных местах не появятся нули.
Чаще всего расчёты сводится к тому, чтобы «обнулить» весь столбец везде, кроме одного элемента, а затем разложить определитель по этому столбцу, получив матрицу размером на 1 меньше.
Давайте посмотрим, как это работает на практике:
Задача. Найдите определитель:
[left| begin{matrix} 1 & 2 & 3 & 4 \ 4 & 1 & 2 & 3 \ 3 & 4 & 1 & 2 \ 2 & 3 & 4 & 1 \end{matrix} right|]
Решение. Нулей тут как бы вообще не наблюдается, поэтому можно «долбить» по любой строке или столбцу — объём вычислений будет примерно одинаковым. Давайте не будем мелочиться и «обнулим» первый столбец: в нём уже есть клетка с единицей, поэтому просто возьмём первую строчку и вычтем её 4 раза из второй, 3 раза из третьей и 2 раза из последней.
В результате мы получим новую матрицу, но её определитель будет тем же:
[begin{matrix} left| begin{matrix} 1 & 2 & 3 & 4 \ 4 & 1 & 2 & 3 \ 3 & 4 & 1 & 2 \ 2 & 3 & 4 & 1 \end{matrix} right|begin{matrix} downarrow \ -4 \ -3 \ -2 \end{matrix}= \ =left| begin{matrix} 1 & 2 & 3 & 4 \ 4-4cdot 1 & 1-4cdot 2 & 2-4cdot 3 & 3-4cdot 4 \ 3-3cdot 1 & 4-3cdot 2 & 1-3cdot 3 & 2-3cdot 4 \ 2-2cdot 1 & 3-2cdot 2 & 4-2cdot 3 & 1-2cdot 4 \end{matrix} right|= \ =left| begin{matrix} 1 & 2 & 3 & 4 \ 0 & -7 & -10 & -13 \ 0 & -2 & -8 & -10 \ 0 & -1 & -2 & -7 \end{matrix} right| \end{matrix}]
Теперь с невозмутимостью Пятачка раскладываем этот определитель по первому столбцу:
[begin{matrix} 1cdot {{left( -1 right)}^{1+1}}cdot left| begin{matrix} -7 & -10 & -13 \ -2 & -8 & -10 \ -1 & -2 & -7 \end{matrix} right|+0cdot {{left( -1 right)}^{2+1}}cdot left| … right|+ \ +0cdot {{left( -1 right)}^{3+1}}cdot left| … right|+0cdot {{left( -1 right)}^{4+1}}cdot left| … right| \end{matrix}]
Понятно, что «выживет» только первое слагаемое — в остальных я даже определители не выписывал, поскольку они всё равно умножаются на ноль. Коэффициент перед определителем равен единице, т.е. его можно не записывать.
Зато можно вынести «минусы» из всех трёх строк определителя. По сути, мы трижды вынесли множитель (−1):
[left| begin{matrix} -7 & -10 & -13 \ -2 & -8 & -10 \ -1 & -2 & -7 \end{matrix} right|=cdot left| begin{matrix} 7 & 10 & 13 \ 2 & 8 & 10 \ 1 & 2 & 7 \end{matrix} right|]
Получили мелкий определитель 3×3, который уже можно посчитать по правилу треугольников. Но мы попробуем разложить и его по первому столбцу — благо в последней строчке гордо стоит единица:
[begin{align} & left( -1 right)cdot left| begin{matrix} 7 & 10 & 13 \ 2 & 8 & 10 \ 1 & 2 & 7 \end{matrix} right|begin{matrix} -7 \ -2 \ uparrow \end{matrix}=left( -1 right)cdot left| begin{matrix} 0 & -4 & -36 \ 0 & 4 & -4 \ 1 & 2 & 7 \end{matrix} right|= \ & =cdot left| begin{matrix} -4 & -36 \ 4 & -4 \end{matrix} right|=left( -1 right)cdot left| begin{matrix} -4 & -36 \ 4 & -4 \end{matrix} right| \end{align}]
Можно, конечно, ещё поприкалываться и разложить матрицу 2×2 по строке (столбцу), но мы же с вами адекватны, поэтому просто посчитаем ответ:
[left( -1 right)cdot left| begin{matrix} -4 & -36 \ 4 & -4 \end{matrix} right|=left( -1 right)cdot left( 16+144 right)=-160]
Вот так и разбиваются мечты. Всего-то −160 в ответе.:)
Ответ: −160.
Парочка замечаний перед тем, как мы перейдём к последней задаче:
- Исходная матрица была симметрична относительно побочной диагонали. Все миноры в разложении тоже симметричны относительно той же побочной диагонали.
- Строго говоря, мы могли вообще ничего не раскладывать, а просто привести матрицу к верхнетреугольному виду, когда под главной диагональю стоят сплошные нули. Тогда (в точном соответствии с геометрической интерпретацией, кстати) определитель равен произведению ${{a}_{ii}}$ — чисел на главной диагонали.
Идём дальше. Последняя задача в сегодняшнем уроке.
Задача. Найдите определитель:
[left| begin{matrix} 1 & 1 & 1 & 1 \ 2 & 4 & 8 & 16 \ 3 & 9 & 27 & 81 \ 5 & 25 & 125 & 625 \end{matrix} right|]
Решение. Ну, тут первая строка прямо-таки напрашивается на «обнуление». Берём первый столбец и вычитаем ровно один раз из всех остальных:
[begin{align} & left| begin{matrix} 1 & 1 & 1 & 1 \ 2 & 4 & 8 & 16 \ 3 & 9 & 27 & 81 \ 5 & 25 & 125 & 625 \end{matrix} right|= \ & =left| begin{matrix} 1 & 1-1 & 1-1 & 1-1 \ 2 & 4-2 & 8-2 & 16-2 \ 3 & 9-3 & 27-3 & 81-3 \ 5 & 25-5 & 125-5 & 625-5 \end{matrix} right|= \ & =left| begin{matrix} 1 & 0 & 0 & 0 \ 2 & 2 & 6 & 14 \ 3 & 6 & 24 & 78 \ 5 & 20 & 120 & 620 \end{matrix} right| \end{align}]
Раскладываем по первой строке, а затем выносим общие множители из оставшихся строк:
[cdot left| begin{matrix} 2 & 6 & 14 \ 6 & 24 & 78 \ 20 & 120 & 620 \end{matrix} right|=cdot left| begin{matrix} 1 & 3 & 7 \ 1 & 4 & 13 \ 1 & 6 & 31 \end{matrix} right|]
Снова наблюдаем «красивые» числа, но уже в первом столбце — раскладываем определитель по нему:
[begin{align} & 240cdot left| begin{matrix} 1 & 3 & 7 \ 1 & 4 & 13 \ 1 & 6 & 31 \end{matrix} right|begin{matrix} downarrow \ -1 \ -1 \end{matrix}=240cdot left| begin{matrix} 1 & 3 & 7 \ 0 & 1 & 6 \ 0 & 3 & 24 \end{matrix} right|= \ & =240cdot {{left( -1 right)}^{1+1}}cdot left| begin{matrix} 1 & 6 \ 3 & 24 \end{matrix} right|= \ & =240cdot 1cdot left( 24-18 right)=1440 \end{align}]
Порядок. Задача решена.
Ответ: 1440
Всё. Хорош читать этот бред.:)
Смотрите также:
- Обратная матрица
- Умножение матриц
- Геометрическая вероятность
- Решение задач B12: №448—455
- Задачи на проценты: формула, упрощающая вычисления
- Задача B4 про три дороги — стандартная задача на движение
Содержание:
Определение: Матрицей называется таблица чисел (выражений), имеющая m строк и n столбцов:
В дальнейшем будем писать матрицу в сокращенном виде
Определение: Если матрица содержит 1 строку и n столбцов, то она называется матрицей-строкой
Определение: Если матрица содержит m строк и 1 столбец, то она называется матрицей-столбцом
Пример:
Следующие таблицы являются матрицами
Определение: Матрица, у которой совпадает количество столбцов с количеством строк, называется квадратной.
Всякой квадратной матрице соответствует определитель, составленный из тех же матричных элементов, который в теории матриц называется детерминантом матрицы
Определение: Транспонированной к исходной квадратной матрице называется такая матрица, строки которой заменены на соответствующие столбцы, а столбцы – на соответствующие строки.
Замечание: Согласно свойству 1. для определителей (см. Лекцию № 1) для квадратных матриц детерминант исходной матрицы равен детерминанту транспонированной матрицы.
Определение: Матрицу, у которой все элементы, стоящие под главной диагональю равны нулю, будем называть треугольной
Определение: Матрица, все элементы которой равны нулю, за исключением элементов, стоящих на главной диагонали, называется диагональной
Определение: Единичной матрицей называется диагональная матрица, у которой на главной диагонали все элементы равны единице, а остальные элементы равны нулю:
Действия над матрицами
1. Суммой (разностью) двух матриц и одинаковой структуры называется матрица той же размерности элементы которой вычисляются по формуле:
Пример:
Найти сумму (разность) матриц
Решение:
Из приведенных матриц складывать (вычитать) можно только матрицы А и С, которые имеют одинаковую структуру. Найдем сумму:
и разность этих матриц:
2. При умножении вещественного числа k на матрицу все элементы матрицы умножаются на это число.
Пример:
Умножить (-2) на матрицу
Решение:
Результат умножения имеет вид
3. Произведением матриц и называется матрица элементы которой вычисляются по формуле:
Замечание: Перемножать можно лишь те матрицы, для которых количество столбцов первой перемножаемой матрицы совпадает с количеством строк второй перемножаемой матрицы. Матрица, получаемая в результате перемножения, имеет количество строк равное количеству строк первой матрицы и количество столбцов равное количеству столбцов второй матрицы.
Пример:
Найти (возможные) произведения матриц
Решение:
Матрица А имеет структуру 2×3, матрица В – 2×2, матрица С – 3×2. Согласно определению можно найти произведения Не существуют произведения Вычислим произведение Прежде всего, определим структуру результирующей матрицы: имеем размерности и убирая подчеркнутые цифры, получим структуру результирующей матрицы 2×3. Вычислим ее элементы. Для того чтобы найти элементы возможных произведений, надо просуммировать произведения элементов строки первой матрицы на соответствующие элементы столбца второй матрицы:
Остальные возможные произведения найти самостоятельно.
Замечание: Из приведенного примера видно, что в общем случае произведение матриц некоммутативно (неперестановочно), т. е.
Определение: Обратной матрицей к исходной квадратной матрице называется матрица той же структуры, произведение которой с матрицей А коммутативно и равно единичной матрице, то есть
Рассмотрим схему построения обратной матрицы
Замечание: Обращаем внимание на то, что матрица алгебраических дополнений записана в транспонированном виде.
Пример:
Найти обратную матрицу к матрице
Решение:
Вычислим детерминант данной матрицы раскроем этот определитель по элементам первой строки:
Вычислим алгебраические дополнения всех элементов определителя: Запишем обратную матрицу
Проверим правильность нахождения обратной матрицы, для чего воспользуемся ее определением. Умножим найденную матрицу на исходную матрицу, вычислим элементы результирующей матрицы
Таким образом, т.е. найдена верно.
Основные сведения о матрицах
Понятие матрицы и основанный на нем раздел математики — матричная алгебра — имеют чрезвычайно важное значение для экономистов. Объясняется это тем, что значительная часть математических моделей экономических объектов и процессов записывается в достаточно простой, а главное — компактной матричной форме.
Матрицей размера называется прямоугольная таблица чисел, содержащая m строк и n столбцов. Числа, составляющие матрицу, называются элементами матрицы.
Матрицы обозначаются прописными (заглавными) буквами латинского алфавита, например, А, В, С, …, а для обозначения элементов матрицы используются строчные буквы с двойной индексацией: , где — номер строки, — номер столбца.
Например, матрица
или, в сокращенной записи,
Например, Наряду с круглыми скобками используются и другие обозначения матрицы:
Две матрицы А и В одного размера называются равными, если они совпадают поэлементно, т.е. для любых
С помощью матриц удобно записывать некоторые экономические зависимости. Например, таблица распределения ресурсов по отдельным отраслям экономики (усл. ед.)
может быть записана в компактной форме в виде матрицы распределения ресурсов по отраслям:
В этой записи, например, матричный элемент показывает, сколько электроэнергии потребляет промышленность, а элемент — сколько трудовых ресурсов потребляет сельское хозяйство.
Виды матриц
Матрица, состоящая из одной строки, называется матрицей (вектором)-строкой, а из одного столбца — матрицей (вектором)-столбцом: — матрица-строка;
— матрица-столбец.
Матрица называется квадратной -го порядка, если число ее строк равно числу столбцов и равно .
Например, — квадратная матрица третьего порядка.
Элементы матрицы , у которых номер столбца равен номеру строки , называются диагональными и образуют главную диагональ матрицы. Для квадратной матрицы главную диагональ образуют элементы
Если все недиагональные элементы квадратной матрицы равны нулю, то матрица называется диагональной. Например,
—диагональная матрица третьего порядка.
Если у диагональной матрицы -го порядка все диагональные элементы равны единице, то матрица называется единичной матрицей -го порядка, она обозначается буквой Е.
Например,— единичная матрица третьего порядка.
Матрица любого размера называется нулевой, или нуль-матрицей, если все ее элементы равны нулю:
Операции над матрицами
Над матрицами, как и над числами, можно производить ряд операций, причем некоторые из них аналогичны операциям над числами, а некоторые – специфические.
Умножение матрицы на число
Произведением матрицы А на число называется матрица элементы которой для
Например, если , то
Следствие. Общий множитель всех элементов матрицы можно выносить за знак матрицы.
Например,
В частности, произведение матрицы А на число 0 есть нулевая матрица, т.е.
Сложение матриц
Суммой двух матриц А и В одинакового размера называется матрица , элементы которой для (т.е. матрицы складываются поэлементно).
Например,
В частном случае A + 0 = A.
Вычитание матриц
Разность двух матриц одинакового размера определяется через предыдущие операции:
Умножение матриц
Умножение матрицы А на матрицу В определено, когда число столбцов первой матрицы равно числу строк второй. Тогда произведением матриц называется такая матрица, каждый элемент которой равен сумме произведений элементов -й строки матрицы А на соответствующие элементы -го столбца матрицы В:
Пример №1
Вычислить произведение матриц , где
Решение:
1. Найдем размер матрицы-произведения (если умножение матриц возможно):
2. Вычислим элементы матрицы-произведения С, умножая элементы каждой строки матрицы А на соответствующие элементы столбцов матрицы В следующим образом:
Получаем ►
Многие свойства, присущие операциям над числами, справедливы и для операций над матрицами (что следует из определений этих операций):
этом случае матрица А называется согласованной с матрицей В.
Однако имеются и специфические свойства матриц. Так, операция умножения матриц имеет некоторые отличия от умножения чисел:
а)Если произведение матриц существует, то после перестановки сомножителей местами произведения матриц может и не существовать. Действительно, в примере 1.1 получили произведение матриц , а произведения не существует, так как число столбцов первой матрицы не совпадает с числом строк второй матрицы.
б)Если даже произведения и существуют, то они могут быть матрицами разных размеров.
Пример №2
Найти произведения матриц и :
Решение:
► в) В случае, когда оба произведения и существуют и оба — матрицы одинакового размера (это возможно только при умножении квадратных матриц А и В одного порядка), коммутативный (переместительный) закон умножения, вообще говоря, не выполняется, т.е.
Пример №3
Найти произведения матриц и , где
Решение:
В частном случае коммутативным законом обладает произведение любой квадратной матрицы А -гo порядка на единичную матрицу Е того же порядка, причем это произведение равно А:
Таким образом, единичная матрица играет при умножении матриц ту же роль, что и число 1 при умножении чисел.
г) Произведение двух ненулевых матриц может равняться нулевой матрице, т.е. из того, что , не следует, что или,. Например,
Возведение в степень
Целой положительной степенью квадратной матрицы называется произведение матриц, равных , т.е.
Заметим, что операция возведения в степень определяется только для квадратных матриц.
По определению полагают Нетрудно показать, что
Пример №4
Найти , где
Решение:
Обращаем внимание на то, что из равенства еще не следует, что матрица ►
Транспонирование матрицы
Транспонирование матрицы — переход от матрицы к матрице , в которой строки и столбцы поменялись местами с сохранением порядка. Матрица называется транспонированной относительно матрицы : Из определения следует, что если матрица имеет размер , то транспонированная матрица имеет размер .
Например,
В литературе встречаются и другие обозначения транспонированной матрицы, например, .
Свойства операции транспонирования:
Рекомендуем читателю доказать их самостоятельно. Рассмотренные выше операции над матрицами позволяют упростить решения некоторых экономических задач.
Пример №5
Предприятие выпускает продукцию трех видов: и использует сырье двух типов: . Нормы расхода сырья характеризуются матрицей
где каждый элемент показывает, сколько единиц сырья
-го типа расходуется на производство единицы продукции -го вида. План выпуска продукции задан матрицей-строкой , стоимость единицы каждого типа сырья (ден. ед.) — матрицей-столбцом
Определить затраты сырья, необходимые для планового выпуска продукции, и общую стоимость сырья.
Решение:
Затраты 1-го сырья составляют ед. и 2-го — ед., поэтому матрица-строка затрат сырья может быть записана как произведение
Тогда общая стоимость сырья ден. ед. может быть записана в матричном виде Общую стоимость сырья можно вычислить и в другом порядке: вначале вычислим матрицу стоимостей затрат сырья на единицу продукции, т.е. матрицу
а затем общую стоимость сырья
На данном примере мы убедились в выполнении свойства 7 (см. с. 13) — ассоциативного закона произведения матриц:
Определители квадратных матриц
Необходимость введения определителя — числа, характеризующего квадратную матрицу , — тесно связана с решением систем линейных уравнений (см. гл. 2). Определитель матрицы обозначается или
Определителем матрицы первого порядка , или определителем первого порядка, называется элемент :
Например, пусть тогда
Определителем матрицы второго порядка , или определителем второго порядка, называется число, которое вычисляется по формуле:
Произведения а и называются членами определителя второго порядка. Например, пусть тогда
Пусть дана квадратная матрица третьего порядка: Определителем матрицы третьего порядка , или определителем третьего порядка, называется число, которое вычисляется по формуле:
Это число представляет алгебраическую сумму, состоящую из 6 слагаемых, или 6 членов определителя. В каждое слагаемое входит ровно по одному элементу из каждой строки и каждого столбца матрицы. Знаки, с которыми члены определителя входят в формулу (1.4), легко запомнить, пользуясь схемой (рис. 1.1), которая называется правилом треугольников или правилом Сарруса.
Пример №6
Вычислить определитель третьего порядка
Решение:
►
Для того чтобы ввести понятие определителя более высокого порядка, потребуются некоторые дополнительные понятия. Рассмотрим квадратную матрицу -гo порядка:
Из общего числа элементов этой матрицы выберем набор, содержащий элементов, таким образом, чтобы в него входило по одному элементу из каждой строки и каждого столбца. Например, набор элементов или соответственно главной и побочной диагоналей матрицы.
Любой такой набор можно упорядочить, записав сначала элемент из 1-й строки, затем из 2-й и т.д., т.е.
Номера столбцов образуют при этом перестановку из чисел: Всего существует различных перестановок из натуральных чисел.
Введем понятие беспорядка, или инверсии, в перестановке Это наличие пары чисел, в которой большее число предшествует меньшему. Например, в перестановке из трех чисел имеется одна инверсия (2; 1), а в перестановке — три: (3; 2), (3; 1), (2; 1). Обозначим через количество инверсий в перестановке
Возвращаясь к наборам (1.5) из элементов матрицы мы можем каждому такому набору поставить в соответствие произведение его элементов:
и число , равное количеству инверсий в перестановке из номеров соответствующих столбцов.
Определение. Определителем квадратной матрицы -го порядка, или определителем -го порядка, называется число, равное алгебраической сумме членов, каждый из которых является произведением элементов матрицы, взятых по одному из каждой строки и каждого столбца, причем знак каждого члена определяется как , где — число инверсий в перестановке из номеров столбцов элементов матрицы, ест при этом номера строк записаны в порядке возрастания:
где сумма берется по всем перестановкам Проверим, например, что при мы получаем введенный ранее определитель третьего порядка (1.4):
то же число, что и по формуле (1.4).
Заметим, что с ростом резко увеличивается число членов определителя поэтому даже для использование формулы (1.7) весьма трудоемко (получим 24 слагаемых!).
На практике при вычислении определителей высоких порядков используют другие формулы. Для их рассмотрения необходимо ввести новые понятия.
Пусть дана квадратная матрица -го порядка.
Минором элемента матрицы -го порядка называется
определитель матрицы -го порядка, полученной из матрицы вычеркиванием -й строки и го столбца.
Например, минором элемента матрицы третьего порядка будет: Каждая матрица -го порядка имеет миноров -го порядка.
Алгебраическим дополнением элемента матрицы -го порядка называется его минор, взятый со знаком
т.е. алгебраическое дополнение совпадает с минором, когда сумма номеров строки и столбца — четное число, и отличается от минора знаком, когда — нечетное число.
Например,
Пример №7
Найти алгебраические дополнения всех элементов матрицы (из примера 1.6):
Решение:
Важное значение для вычисления определителей имеет следующая теорема.
Теорема Лапласа. Определитель квадратной матрицы равен сумме произведений элементов любой строки (столбца) на их алгебраические дополнения:
(разложение по элементам -й строки; );
(разложение по элементам -го столбца; ).
Убедимся в справедливости теоремы Лапласа на примере определителя матрицы третьего порядка. Разложим его вначале по элементам первой строки:
Точнее данная теорема является частным случаем теоремы Лапласа.
После преобразований (представляем их сделать читателю) нетрудно убедиться в том, что полученное выражение совпадает с определением (1.4). Аналогичный результат получаем разложением определителя матрицы по любой строке или столбцу.
Пример №8
Вычислить определитель треугольной матрицы:
Решение:
Раскладывая по первому столбцу, получаем:
На частном примере мы убедились в том, что определитель треугольной (и, очевидно, диагональной) матрицы равен произведению элементов главной диагонали.
Значение теоремы Лапласа состоит в том, что позволяет свести вычисление определителей -го порядка к вычислению более простых определителей -го порядка.
Свойства определителей
1. Если какая-либо строка (столбец) матрицы состоит из одних нулей, то ее определитель равен 0.
2. Если все элементы какой-либо строки (столбца) матрицы умножить на число , то ее определитель умножится на это число .
Пусть определитель исходной матрицы равен . Для определенности первую строку матрицы умножим на , получим новый определитель , который разложим по элементам первой строки:
Замечание. За знак определителя можно выносить общий множитель элементов любой строки или столбца в отличие от матрицы, за знак которой можно выносить общий множитель лишь всех ее элементов. Например, , но
3. При транспонировании матрицы ее определитель не изменяется:
4. При перестановке двух строк (столбцов) матрицы ее определитель меняет знак на противоположный.
□ Предположим вначале, что переставлены две соседние строки матрицы: Разложим определитель исходной матрицы по элементам -й строки, а определитель новой матрицы (с переставленными строками) — по элементам -й строки. Разложения будут отличаться только знаком, так как в формуле (1.9) для каждое алгебраическое дополнение будет иметь противоположный знак (множители сменятся на множители , поэтому
Если переставить не соседние строки, а, скажем, -ю и -ю, то такую перестановку можно представить как последовательное смещение -й строки на строк вниз (при этом каждый раз знак определителя меняется), -й строки на вверх, что тоже сопровождается изменением знака, т.е. знак поменяется нечетное число раз: .
Доказательство для столбцов аналогично.
Квадратная матрица называется треугольной, если все ее элементы, расположенные ниже (или выше) главной диагонали, равны нулю.
5. Если квадратная матрица содержит две одинаковые строки {столбца), то ее определитель равен 0.
□Действительно, переставим эти строки (столбцы). С одной стороны, определитель не изменится, но, с другой стороны, по свойству 4 поменяет знак, т.е. , откуда
6. Если элементы двух строк (столбцов) матрицы пропорциональны, то ее определитель равен 0.
□ Пусть для определенности пропорциональны первая и вторая строки. Тогда, вынося коэффициент пропорциональности , получаем по свойству , где имеет две одинаковые строки и по свойству 5 равен 0.
7. Сумма произведений элементов какой-либо строки (столбца) матрицы на алгебраические дополнения элементов другой строки (столбца) этой матрицы равна 0, т.е.
Рассмотрим квадратную матрицу и вспомогательную матрицу , полученную из матрицы заменой -й строки на -ю:
т.е. матрица имеет две одинаковые строки, поэтому согласно свойству 5 ее определитель равен 0. Вычисляя его разложением по элементам -й строки, получаем:
Замечание. Объединяя результат теоремы Лапласа и свойство 7, получаем:
8. Определитель матрицы не изменится, если к элементам какой-либо строки (столбца) матрицы прибавить элементы другой строки (столбца), предварительно умноженные на одно и то же число.
Пусть для определенности к элементам -Й строки матрицы прибавим элементы -й строки, умноженные на Тогда первая строка матрицы имеет вид: Определитель полученной матрицы вычислим разложением по элементам -й строки:
где — алгебраические дополнения элементов -й строки исходной матрицы Раскроем скобки и получим после преобразования:
Используя формулу (1.12), получаем, что первая сумма равна определителю исходной матрицы, а вторая — 0, т.е.
9. Сумма произведений произвольных чисел на алгебраические дополнения элементов любой строки (столбца) равна определителю матрицы, полученной из данной заменой элементов этой строки (столбца) на числа .
Свойство вытекает непосредственно из теоремы Лапласа.
10. Определитель произведения двух квадратных матриц равен произведению их определителей: где —матрицы -го порядка.
Замечание. Из свойства 10 следует, что даже если то
Перечисленные свойства определителей позволяют существенно упростить их вычисление, особенно для определителей высоких порядков. При вычислении определителей целесообразно так преобразовать исходную матрицу с помощью свойств 1—9, чтобы преобразованная матрица имела строку (или столбец), содержащую как можно больше нулей, а потом найти определитель разложением по этой строке (столбцу).
Пример №9
Вычислить определитель четвертого порядка:
Решение:
Преобразуем матрицу так, чтобы в 3-й строке все элементы, кроме одного, обращались в 0. Для этого умножим, например, элементы 3-го столбца на (-4) и на 2 и прибавим их соответственно к элементам 1-го и 2-го столбцов. Раскладывая полученный определитель по элементам третьей строки, найдем Полученный определитель третьего порядка можно вычислить по правилу треугольников или с помощью теоремы Лапласа, однако можно продолжить упрощение матрицы. «Обнулим» в матрице третьего порядка элементы 2-й строки (кроме одного). Для этого элементы 3-го столбца матрицы, предварительно умножив на (—13) и на 4, сложим с элементами 1-го и 2-го столбцов соответственно:
Раскладывая по элементам множители, получаем:
Обратная матрица
Для каждого числа существует обратное число такое, что произведение Для квадратных матриц тоже вводится аналогичное понятие.
Определение. Матрица называется обратной по отношению к квадратной матрице , если при умножении этой матрицы на данную как справа, так и слева получается единичная матрица:
Из определения следует, что только квадратная матрица имеет обратную; в этом случае и обратная матрица является квадратной того же порядка.
Однако не каждая квадратная матрица имеет обратную. Если является необходимым и достаточным условием существования числа то для существования матрицы таким условием является требование
Если определитель матрицы отличен от нуля то такая квадратная матрица называется невырожденной, или неособенной; в противном случае (при )— вырожденной, или особенной.
Теорема (необходимое и достаточное условие существования обратной матрицы). Обратная матрица существует (и единственна) тогда и только тогда, когда исходная матрица невырожденная.
Необходимость. Пусть матрица имеет обратную , т.е . По свойству 10 определителей имеем
Достаточность. Пусть Рассмотрим квадратную матрицу -го порядка, называемую присоединенной*, элементы которой являются алгебраическими дополнениями элементов матрицы , транспонированной к Тогда элементы произведения матриц определяются по правилу умножения матриц: Поэтому матрица является диагональной, элементы ее главной диагонали равны определителю исходной матрицы:
Аналогично доказывается, что произведение на равно той же матрице Отсюда следует, что если в качестве обратной матрицы взять матрицу.
то произведения и равны единичной матрице -го порядка:
Докажем единственность обратной матрицы. Предположим, что существуют еще матрицы такие, что и , где матрица получена по формуле (1.14), и выполняются равенства: и . Тогда, умножая наслева первое из них, получаем: , откуда , т.е. . Аналогично, умножая второе равенство на справа, получаем . Единственность доказана.
Алгоритм вычисления обратной матрицы:
Пример №10
Найти матрицу, обратную к данной:
Решение:
1°. Определитель матрицы (см. пример 1.6), т.е. матрица — невырожденная и обратная матрица существует.
2°. Находим матрицу , транспонированную к :
3°. Находим алгебраические дополнения элементов матрицы и составляем из них присоединенную матрицу , учитывая, что
4° . Вычисляем обратную матрицу
5°. Проверяем правильность вычисления обратной матрицы по формулам:
(рекомендуем в этом убедиться самому читателю). ►
Для невырожденных матриц выполняются следующие свойства:
Ранг матрицы
Для решения и исследования ряда математических и прикладных задач важное значение имеет понятие ранга матрицы.
В матрице размера вычеркиванием каких-либо строк и столбцов можно вычленить квадратные подматрицы -то порядка, где . Определители таких подматриц называются минорами -го порядка матрицы .
Например, из матрицы можно получить подматрицы первого, второго и третьего порядков.
Определение. Рангом матрицы называется наивысший порядок отличных от нуля миноров этой матрицы.
Ранг матрицы обозначается или
Из определения следует: а) ранг матрицы не превосходит меньшего из ее размеров, т.е. ;
б) тогда и только тогда, когда все элементы матрицы равны нулю, т.е. ;
в) для квадратной матрицы -го порядка тогда и только тогда, когда матрица — невырожденная.
Пример №11
Вычислить ранг матрицы
Решение:
Матрица имеет четвертый порядок, поэтому Однако так как матрица содержит нулевой столбец, поэтому Все подматрицы третьего порядка тоже содержат нулевой столбец и поэтому имеют нулевые определители, значит Все подматрицы второго порядка либо имеют нулевой столбец (второй или четвертый), либо имеют пропорциональные столбцы (первый и третий), поэтому тоже имеют нулевые определители; таким образом Поскольку матрица содержит ненулевые элементы, т.е. невырожденные подматрицы первого порядка, то . ►
Пример №12
Вычислить ранг матрицы
Решение:
Для матрицы .
Проверим, равен ли ранг 3-м, для этого вычислим все миноры третьего порядка, т.е. определители всех подматриц третьего порядка (их всего 4, они получаются при вычеркивании одного из столбцов матрицы):
Поскольку все миноры третьего порядка нулевые, Так как существует ненулевой минор второго порядка, например,
►
В общем случае определение ранга матрицы перебором всех миноров достаточно трудоемко. Для облегчения этой задачи используются преобразования, сохраняющие ранг матрицы.
Назовем элементарными преобразованиями матрицы следующие:
- Отбрасывание нулевой строки (столбца).
- Умножение всех элементов строки (столбца) матрицы на число, не равное нулю.
- Изменение порядка строк (столбцов) матрицы.
- Прибавление к каждому элементу одной строки (столбца) соответствующих элементов другой строки (столбца), умноженных на любое число.
- Транспонирование матрицы.
Теорема. Ранг матрицы не изменяется при элементарных преобразованиях матрицы.
При изучении свойств определителей было показано, что при преобразованиях квадратных матриц их определители либо сохраняются, либо умножаются на число, не равное нулю. В результате сохраняется наивысший порядок отличных от нуля миноров исходной матрицы, т.е. ее ранг не изменяется.
С помощью элементарных преобразований можно привести матрицу к так называемому ступенчатому виду, когда вычисление ее ранга не представляет труда.
Матрица называется ступенчатой, если она имеет вид: где .
Замечание. Условие всегда может быть достигнуто транспонированием матрицы.
Очевидно, что ранг ступенчатой матрицы равен , так как имеется минор -го порядка, не равный нулю:
Покажем на примере алгоритм вычисления ранга матрицы с помощью элементарных преобразований.
Пример №13
Найти ранг матрицы
Решение:
1°. Если , то при перестановке строк или столбцов добиваемся того, что . В данном примере поменяем местами, например, 1-ю и 2-ю строки матрицы (см. ниже).
2°. Если , то умножая элементы 2-й, 3-й и 4-й строк на подходящие числа (именно на ) и прибавляя полученные числа соответственно к элементам 2-й1, 3-й и 4-й строк, добьемся того, чтобы все элементы 1-го столбца (кроме ) равнялись нулю:
3°. Если в полученной матрице (у нас ), то умножая элементы 3-й и 4-й строк на подходящие числа (а именно, на ), добьемся того, чтобы все элементы 2-го столбца (кроме ) равнялись нулю. Если в процессе преобразований получаются строки (или столбцы), целиком состоящие из нулей (как в данном примере), то отбрасываем эти строки (или столбцы):
Последняя матрица имеет ступенчатый вид и содержит миноры второго порядка, не равные нулю, например,
Поэтому ранг полученной ступенчатой, а следовательно, и данной матрицы равен 2. ►
Для рангов матриц справедливы следующие соотношения:
5) если — квадратная матрица и
6) где – число столбцов матрицы или строк матрицы .
Понятие ранга матрицы тесно связано с понятием линейной зависимости (независимости) ее строк или столбцов.
матрице обозначим ее строки следующим образом:
Две строки матрицы называются равными, если равны их соответствующие элементы: , если
Арифметические операции над строками матрицы (умножение строки на число, сложение строк) вводятся как операции, проводимые поэлементно:
Строка е называется линейной комбинацией строк матрицы, если она равна сумме произведений этих строк на произвольные действительные числа:
где — любые числа.
Строки матрицы называются линейно зависимыми, если существуют такие числа .т, не равные одновременно нулю, что линейная комбинация строк матрицы равна нулевой строке:
где 0 = (0 0…0).
Линейная зависимость строк матрицы означает, что хотя бы одна строка матрицы является линейной комбинацией остальных.
Действительно, пусть для определенности в формуле (1.17) , тогда
где
Таким образом, строкаявляется линейной комбинацией остальных строк.
Если линейная комбинация строк (1.17) равна нулю тогда и только тогда, когда все коэффициенты равны нулю, т.е. , то строки называются линейно независимыми.
Теорема о ранге матрицы. Ранг матрицы равен максимальному числу ее линейно независимых строк или столбцов, через которые линейно выражаются все остальные ее строки {столбцы).
Пусть матрица размера имеет
Это означает, что существует отличный от нуля минор -го порядка. Всякий ненулевой минор -го порядка будем называть базисным минором. Пусть для определенности это минор
Тогда строки матрицы линейно независимы. Действительно, предположим противное, т.е. одна из этих строк, например , является линейной комбинацией остальных:
Вычтем из элементов -й строки элементы 1-й строки, умноженные на , элементы 2-й строки, умноженные на , и т.д., наконец, элементы -й строки, умноженные на . На основании свойства 8 (см. § 1.4) при таких преобразованиях матрицы ее определитель не изменится, но так как теперь г-я строка будет состоять из одних нулей, то — противоречие, и наше предположение о том, что строки матрицы линейно зависимы, неверно.
Строки назовем базисными.
Покажем, что любые строк матрицы линейно зависимы, т.е. любая строка выражается через базисные.
Рассмотрим минор -го порядка, который получается
при дополнении рассматриваемого минора элементами еще одной строки и столбца
Этот минор равен нулю, так как ранг матрицы равен , поэтому любой минор более высокого порядка равен нулю.
Раскладывая его по элементам последнего (добавленного) столбца, получаем , где последнее алгебраическое дополнение совпадает с базисным минором и поэтому отлично от нуля, т.е. .
Разделив последнее равенство на , можем выразить элемент как линейную комбинацию:
где
Фиксируем значение и получаем, что для любого элементы -й строки линейно выражаются через элементы строк т.е. -я строка есть линейная комбинация базисных:
Теорема о ранге матрицы играет принципиальную роль в матричном анализе, в частности при исследовании систем линейных уравнений.
Матрицы в линейной алгебре
Прямоугольная таблица:
(9.1)
состоящая из m строк и n столбцов, называется матрицей размера m х n или (n,m)-матрицей.
Матрицу (9.1) будем обозначать А или . Числа называются элементами матрицы, индекс i обозначает номер строки, а индекс j – номер столбца, на пересечении которых расположен элемент.
Если m = n, то матрица (9.1) называется квадратной матрицей порядка n.
В квадратной матрице n-го порядка диагональ, состоящая из элементов называется главной диагональю, состоящая из элементов а,п, – побочной диагональю.
Квадратная матрица:
называется диагональной. Если в диагональной матрице все диагональные элементы равны, т.е. , то такая матрица называется скалярной. Скалярная матрица, у которой называется единичной и обозначается буквой Е. Например, единичная матрица третьего порядка:
Матрица, все элементы которой равны нулю, называется нулевой матрицей и обозначается через 0.
Матрицы А и В называются равными, если их размеры одинаковы и элементы этих матриц, стоящие на одинаковых местах, равны.
Операции над матрицами
Суммой двух матриц одинакового размера называется матрица того же размера с элементами, равными суммам соответствующих элементов слагаемых матриц, т.е.
Сложение матриц обладает следующими свойствами:
- Коммутативность, т.е. А + В = В + А.
- Ассоциативность, т.е. (А + B)+ С = А + (В + С).
- Для любых двух матриц А и В одинакового размера существует единственная матрица X такая, что А + X = В. Матрица X обозначается X = В-А и называется разностью матриц В и А. Урав-=нение А + Х = 0 имеет решение Х = 0-А, получающаяся при этом матрица называется противоположной А и обозначается – А.
Произведением матрицы на число называется матрица, все элементы которой равны соответствующим элементам матрицы А, умноженным на число .
Умножение матрицы на действительное число обладает следующими свойствами:
Матрица А называется согласованной с матрицей В, если число столбцов матрицы А равно числу строк матрицы В. В этом случае произведением матрицы на матрицу называется матрица
т.е. элемент, стоящий в n -той строке и j-том столбце матрицы произведения равен сумме произведений элементов n’-той строки матрицы А на соответствующие элементы j -го столбца матрицы В.
Свойства умножения:
- Если матрица А согласована с матрицей В, а матрица В согласована с матрицей С, то А • В• С = (А В)- С = А (В С) – ассоциативность умножения;
- (А + ВС = АС + ВС, А-(В + С)= АВ + АС – свойство дистрибутивности;
- Умножение матриц не коммутативно, т.е., как правило,
Транспонированием матрицы А называется операция замены местами строк и столбцов с сохранением порядка их следования, т.е. i-я строка матрицы А становится i -тым столбцом транспонированной матрицы. Матрица, транспонированная к матрице А обозначается .
Свойства транспонирования:
Определитель матрицы
Далее будем рассматривать только квадратные матрицы. Каждой квадратной матрице ставится в соответствие действительное число, называемое определителем матрицы и вычисляемое по определенному правилу.
Определитель матрицы естественно возникает при решении систем линейных уравнений, или в свернутой форме , или в свернутой форме
Предыдущая формула получается разложением определителя по первой строке.
Возьмем теперь квадратную матрицу n -го порядка
Для записи определителя n-го порядка матрицы А будем применять обозначения . При n = 1 матрица A состоит из одного элемента и ее определитель равен этому элементу. При n = 2 получаем определитель
Минором элемента матрицы A называют определитель матрицы (n-1)-го порядка, получаемого из матрицы Л вычеркиванием i-той строки и j-го столбца.
Пример №14
Найти минор матрицы:
По определению, минор элемента есть определитель матрицы, получаемой из матрицы А вычеркиванием первой строки и второго столбца. Следовательно,
Алгебраическим дополнением элемента матрицы А называется минор взятый со знаком Алгебраическое дополнение элемента обозначается следовательно,
Пример №15
Найти алгебраическое дополнение элемента , матрицы А из примера 7.
Определителем квадратной матрицы А n-го порядка называется число:
где аи – элементы первой строки матрицы (9.2), а их алгебраические дополнения .
Запись по формуле (9.3) называется разложением определителя но первой строке.
Рассмотрим свойства определителей.
Свойство 1. При транспонировании матрицы ее определитель не меняется.
Это свойство устанавливает равноправность строк и столбцов определителя, поэтому определение определителя можно сформулировать так:
Определителем квадратной матрицы А n-го порядка называется число:
(9.4)
где – элементы первого столбца матрицы (9.2), а их алгебраические дополнения.
Свойство 2. Если поменять местами две строки или два столбца матрицы А, то ее определитель изменит знак на противоположный.
Свойства 1 и 2 позволяют обобщить формулы (9.3) и (9.4) следующим образом:
Определитель квадратной матрицы n-го порядка (будем в дальнейшем говорить определитель n-го порядка) равен сумме попарных произведений любой строки (столбца) на их алгебраические дополнения.
Свойство 3. Определитель, y которого две строки или два столбца одинаковы, равен нулю.
Действительно, поменяем в определителе две одинаковые сроки местами. Тогда, по свойству 2 получим определитель , но с другой стороны, определитель не изменится, т.е.. Отсюда.
Свойство 4. Если все элементы какой-нибудь строки (столбца) определителя умножить на число , то определитель умножится на .
Умножим элементы i-той строки на . Тогда получим определитель:
Следствие 1. Если все элементы какой-нибудь строки (столбца) имеют общий множитель, то его можно вынести за знак определителя.
Следствие 2. Если все элементы какой-нибудь строки (столбца) равны нулю, то определитель равен нулю.
Свойство 5. Определитель, у которого две строки (два столбца) пронорциональныу равен нулю.
Пусть i-я строка пропорциональна j-ой строке. Вынося коэффициент пропорциональности за знак определителя, получим определитель с двумя одинаковыми строками, который по свойству 3 равен нулю.
Свойство 6. Если каждый элемент строки (столбца) определителя есть сумма двух слагаемых, то определитель равен сумме двух определителей: у одного из них i-той строкой (столбцом) служат первые слагаемые, а у другого – вторые.
Разложив определитель по i -той строке получим:
Свойство 7. Определитель не изменится, если к элементам какой-нибудь строки (столбца) прибавить соответствующие элементы другой строки (столбца), умноженные на одно и то же число.
Прибавив к элементам i-той строки определителя соответствующие элементы j-ой строки, умноженные на число , получим определитель Определитель равен сумме двух определителей: первый есть, а второй равен нулю, так как у него i-тая и j-тая строки пропорциональны.
Свойство 8. Определитель диагональной матрицы равен произведению элементов, стоящих на главной диагонали, т.е.:
Свойство 9. Сумма произведений элементов какой-нибудь строки (столбца) определителя на алгебраические дополнения элементов другой строки (столбца) равна нулю.
Рассмотрим вспомогательный определитель , который получается из данного определителя заменой j-той строки i-той строкой. Определитель равен нулю, так как у него две одинаковые строки. Разложив его по j-той строке получим:
Большое значение имеет следующий критерий равенства определителя нулю. Определитель квадратной матрицы равен нулю тогда и только тогда когда его строки (столбцы) линейно зависимы.
Строки (столбцы) матрицы называются линейно зависимыми, если одна (один) из них является линейной комбинацией с действительными коэффициентами остальных.
Теорема об определителе произведения двух квадратных матриц. Определитель произведения двух квадратных матриц равен произведению определителей этих квадратных матриц, т.е. .
Ранг матрицы
Рангом матрицы называется наибольший порядок ее миноров, отличных от нуля. Ранг матрицы А обозначают rankA или rА.
Если все миноры порядка к данной матрицы равны нулю, то все миноры более высокого порядка данной матрицы также равны нулю. Это следует из определения определителя. Отсюда вытекает алгоритм нахождения ранга матрицы.
Если все миноры первого порядка (элементы матрицы А) равны нулю, то rankA = 0. Если хотя бы один из миноров первого порядка отличен от нуля, а все миноры второго порядка равны нулю, то rankA = 1. Причем, достаточно просмотреть только те миноры второго порядка, которые окаймляют ненулевой минор первого порядка. Если найдется минор второго порядка отличный от нуля, исследуют миноры третьего порядка, окаймляющие ненулевой минор второго порядка. Так продолжают до тех пор, пока не придут к одному из двух случаев: либо все миноры порядка к, окаймляющие ненулевой минор (A-l)-ro порядка равны нулю, либо таких миноров нет. Тогда rankA = к -1.
Пример №16
Вычислить ранг матрицы
Минор первого порядка (элемент ) отличен от нуля. Окаймляющий его минор тоже не равен нулю.
Далее рассмотрим миноры, окаймляющие минор М :
Все эти миноры равны нулю, значит rankA = 2. Приведенный алгоритм нахождения ранга матрицы не всегда удобен, поскольку связан с вычислением большого числа определителей. Наиболее удобно пользоваться при вычислении ранга матрицы элементарными преобразованиями, при помощи которых матрица приводится к столь простому виду, что очевидно, чему равен ее ранг.
Элементарными преобразованиями матрицы называют следующие преобразования:
- > умножение какой-нибудь строки (столбца) матрица на число, отличное от нуля;
- > прибавление к одной строке (столбцу) другой строки (столбца), умноженной на произвольное число.
Полужордановым преобразованием строк матрицы:
с разрешающим элементом называется следующая совокупность преобразований со строками матрицы:
- > k первой строке прибавить k-ю, умноженную на число и т.д.;
> k последней строке прибавить k — го, умноженную на число После выполнения этих преобразований получается матрица:
Полужордановым преобразованием столбцов матрицы с разрешающим элементом называется следующая совокупность преобразований со столбцами матрицы:
- > к первому столбцу прибавить k-й, умноженный на число и т.д.;
- > к последнему столбцу прибавить k -й, умноженный на число
После выполнения этих преобразований получается матрица:
Полужорданово преобразование строк или столбцов квадратной матрицы не изменяет ее определителя. Элементарные преобразования матрицы не изменяют ее ранга. Покажем на пример, как вычислить ранг матрицы, пользуясь элементарными преобразованиями.
Пример №17
Вычислить ранг матрицы
Применим к матрице А элементарные преобразования: первую строку матрицы, умноженную на (-3) прибавим ко второй и третьей и ее же вычтем из последней.
Вычитая далее вторую строку из третьей и последней, имеем:
Последняя матрица содержит отличный от нуля минор третьего порядка, определитель же самой матрицы А равен нулю. Следовательно,
Отметим два важных свойства ранга матрицы:
- Ранг матрицы не меняется при ее транспонировании;
- Если ранг матрицы равен г, то любые ее г + 1 строк (столбцов) линейно зависимы.
Обратная матрица
Пусть А – квадратная матрица порядка n. Матрица В называется обратной матрицей к матрице А, если выполняются равенства А-В = В■ А = Е, где Е – единичная матрица порядка n.
Теорема 1. Если для данной матрицы существует обратная матрица, то она единственная.
Пусть – матрицы, обратные к матрице А. Тогда с другой стороны,
Откуда . Обратную матрицу к матрице А обозначают .
Теорема 2. Матрица А имеет обратную матрицу тогда и только тогда, когда .
Пусть А имеет обратную матрицу. Тогда и, применяя теорему об умножении определителей, получаем или
Следовательно, .
Пусть . Укажем явное выражение матрицы через элементы матрицы А, а именно: если , то:
здесь – алгебраическое дополнение к элементу . Матрица (9.5) получается из матрицы А следующим образом. Сначала вместо каждого элемента пишется его алгебраическое дополнение, затем полученная матрица транспонируется и получается т.н. присоединенная матрица. Для получения обратной матрицы присоединенная матрица умножается на величину, обратную
Непосредственное умножение А на матрицу (9.5) слева и справа дает единичную матрицу, что подтверждает, что (9.5) – матрица, обратная к А.
Пример №18
Найти обратную матрицу к матрице
Так как , то существует. Вычислим алгебраические дополнения элементов матрицы А:
Матрицу находим в два приема, согласно формуле (9.5). Сначала запишем матрицу В, состоящую из алгебраических дополнений элементов Затем матрица В транспонируется и умножается на число обратное , в данном случае – на (-1). Окончательно получаем:
Матрица называется неособенной или невырожденной, если ее определитель не равен нулю. Отметим свойства обратных матриц. Если А и В – невырожденные матрицы одинакового порядка, то:
Матрицы и определители
Определение и типы матриц
Определение 3.1.1. Прямоугольная таблица (3.1.1) состоящая из m строк и n столбцов, называется матрицей размером .
Числа называются элементами матрицы. Каждый элемент матрицы имеет два индекса, первый индекс i обозначает номер строки, второй индекс j – номер столбца.
Матрицы удобно обозначать в виде , при . Фигурные (круглые) скобки, двойные прямые вертикальные линии показывают, что – типовой элемент матрицы А, в котором индексы i и j последовательно принимают все значения от 1 до указанных конечных величин.
Превратим в матрице (3.1.1) строки в столбцы, а столбцы в строки, получим матрицу которая называется транспонированной по отношению к А. Если размер А , то размерности . Повторное транспонирование приводит к исходной матрице: .
Пример №19
Рассмотрим матрицу
элементы которой характеризуют зависимость средних розничных цен на автомобили от срока их службы в 1998, 1999 и 2000 гг. Строки матрицы соответствуют продолжительности эксплуатации автомобиля, а столбцы – годам. Содержательное значение каждого элемента матрицы определяется его местом в данном массиве чисел. Например, число 3100 во второй строке и втором столбце, элемент с/22> представляет среднюю розничную цену автомобиля прослужившего два года в 1999 г. Следовательно, числа, записанные в строку, характеризуют цены автомобилей, прослуживших один и гот же срок службы в разные годы 1998-2000 гг., а числа в столбце – цены автомобилей различного срока службы в данном году.
В той мере, в какой это связано с характеристикой цен па автомобили, такой выбор строк матрицы полностью произволен, и мы могли бы сразу же поменять местами строки и столбцы без какой-либо потери информации, получив строки для отдельных лет и столбцы для сроков службы, т.е. получили бы транспонированную матрицу по отношению к матрице Р:
Хотя элементы матрицы те же, что и матрицы Р, обе матрицы не одинаковые. Взаимосвязь этих матриц проявляется в том, что строки матрицы Р являются столбцами матрицы .
Если, элементы матрицы А неотрицательные (положительные) действительные числа , то матрица А называется неотрицательной (положительной) и записывается .
Матрица Р в примере 3.1.1 является положительной матрицей, так как её элементы положительные действительные числа.
Матрица, состоящая из одной строки , называется матрицей-строкой. Матрица, состоящая из одного столбца
называется матрицей-столбцом. Транспонированием переводят матрицу-строку в матрицу-столбец, и наоборот.
Если m=n, то матрица называется квадратной, при этом число строк (столбцов) называется порядком квадратной матрицы.
Рассмотрим некоторые виды квадратных матриц.
Квадратная матрица, у которой все элементы, не стоящие на главной диагонали, равны нулю, называется диагональной. Она обозначается символом:
Если в диагональной матрице то она называется скалярной. Скалярная матрица, у которой диагональные элементы равны 1, называется единичной:
Квадратная матрица, у которой все элементы, стоящие ниже главной диагонали, равны нулю, называется верхнетреугольной (“матрица А). Аналогично, если в квадратной матрице нулю равны все элементы, стоящие выше главной диагонали, то она называется нижнетреугольной (матрица В).
Например,
Матрица A – верхнеугольная, а В – нижнетреугольная. Квадратная матрица называется ленточной, если все её элементы, не стоящие на главной диагонали и в соседних с ней косых строках, равны нулю. Например,
В ленточной матрице не равные нулю элементы заполняют «ленту», осью которой служит главная диагональ. Ленточная матрица называется модулированной, если в каждой косой строке стоят одинаковые элементы:
Квадратная матрица называется симметрической, если её элементы, расположенные симметрично относительно главной диагонали, одинаковы: ; если же, то матрица А называется кососимметрической. Симметрическая матрица совпадает с транспонированной матрицей, т.е. .
Например, матрица, характеризующая влияние факторов на инвестиции и запасы, является симметрической матрицей вида:
Элемент =0,29, характеризующий зависимость использования мощностей и изменения объёмов запасов, совпадает с элементом =0,29, характеризующим зависимость между изменением объёмов запасов и использованием мощностей; элемент =0,15, характеризующий зависимость между изменением общей величины хозяйственных запасов и суммой совокупного оборота с поправкой на сезонность, совпадает с элементом =0,15, характеризующим зависимость между суммой совокупного оборота с поправкой на сезонность и изменением общей величины хозяйственных запасов; элемент =0,71, характеризующий зависимость между степенью использования производственных мощностей и суммой совокупного оборота с поправкой на сезонность, совпадает с элементом =0,71, характеризующим зависимость между суммой совокупного оборота с поправкой на сезонность и степенью использования производственных мощностей.
Очевидно, что транспонированная симметричная матрица равна самой матрице.
Квадратная матрица, у которой на главной диагонали стоит одно и го же число и все элементы одного ряда выше диагонали равны единице, а все другие элементы равны нулю, называется клеткой Жордана:
Матрица, у которой на главной диагонали стоят любые клетки Жордана, а все элементы вне этих клеток равны нулю, называется Жордаповой матрицей. Например, матрица является Жордановой.
Она содержит четыре клетки Жордана: две клетки второго порядка с числом 3 на диагонали, одну клетку третьего порядка с числом нуль на диагонали и одну клетку первого порядка с числом нуль на диагонали.
Из приведенных примеров следует, что понятие матрицы широко используется в экономике. Кроме того, можно подчеркнуть, что планирование производства должно основываться на надлежащим образом упорядоченной системе информации, записанной в виде матрицы, с помощью которой просто и сжато описываются зависимости, имеющие место в материальном производстве. Так, например, планирование на предприятии основывают, пользуясь нормами как системой информации. Если на предприятии производится четыре продукта и для их производства используются материалы , то система норм материальных затрат, которая представляет собой основу плана снабжения, может быть представлена в виде таблицы (матрицы):
где есть норма расхода i-го материала на производство единицы j-го продукта. Так норма расхода материала на производство единицы продукта соответственно равна и т.д.
Можно привести следующий пример использования матриц: два предприятия передают свою продукцию на три оптовых склада, причём расходы на перевозку единицы продукции с предприятия 1 на отдельные склады соответственно равняются 2,3,4; а с предприятия 2 они составляют 1,5,2. Тогда матрица
есть матрица удельных транспортных расходов.
Следует отметить использование матриц в межотраслевом балансе производства (матрица технологических коэффициентов производства), в определении совокупных затрат труда (матрица коэффициентов материальных затрат) и т.д.
Пример №20
Продавец мороженого решает вопрос о том, сколько пакетов мороженого ему следует закупить. К покупке пакетов мороженого он может прибегнуть один раз. Каждый пакет стоит 10 ден.ед. и может быть продан за 12 ден.ед. Пакеты мороженого, оставшиеся не распроданными, никакой стоимости не представляют. Известно, что количество пакетов мороженого, которое он сможет продать, колеблется от 1 до 5. Составим матрицу денежных сумм, выручаемых в зависимости от его решения и от результатов продажи. По строкам расположим результаты того или иного решения продавца мороженого, а по столбцам – возможный исход продаж.
Решение:
Предположим, что продавец мороженого закупает один пакет. Тогда он его продаст и получает прибыль в 2 ден.ед.
Следовательно, первая строка матрицы будет иметь вид: 2 2 2 2 2. Сели он закупит 2 пакета, то продав один, он потеряет 8 ден.ед.; продав 2 пакета, он получит прибыль 4 ден.ед. Следовательно, вторая строка примет вид: -8 4 4 4 4. Рассуждая аналогичным образом, получаем матрицу:
Арифметические операции над матрицами
Матрицы А и В считаются равными, если они одинаковой размерности и всс элементы матрицы А совпадают с соответствующими элементами матрицы В, т.е. выполняются скалярные равенства , которые равносильны равенству А=В.
Определение 3.2.1. Суммой матриц А а В размерности называется матрица S=A+B той же размерности, элементы которой Sik равны суммам соответствующих элементов матриц А и В:
Из определения следует, что складывают матрицы с одинаковыми размерами, при этом сумма будет матрицей с теми же размерами.
Например,
Определение 3.2.2. Произведением матрицы А на скаляр называется матрица той же размерности, что и А, элементы которой получены из элементов матрицы А умножением на . Например,
Матрица (-1)A записывается -А и называется матрицей, противоположной матрице А. Если все элементы матрицы равны нулю, го она называется нуль-матрицей и обозначается 0.
Введенные операции сложения матриц и умножения матрицы на скаляр обладают свойствами:
- А + В = В + А – (перемсстительный) коммутативный закон.
- (А + В) + С = А + (B + C);
- .
- .
- .
- .
Определение 3.2.3. Разностью матриц одинаковой размерности называется матрица той же размерности: , её элементы равны разностям соответствующих элементов матриц А и В: .
Например,
Как и при операции сложения, можно вычитать друг из друга только те матрицы, которые имеют одинаковую размерность.
Прежде чем вводить произведение матриц, рассмотрим произведение векторов. И для пояснения общего метода воспользуемся числовыми примерами.
Предположим, что объем различных продаж за месяц некоторого товара некоторой компании «а» составил 58, 26, 12, 25 единиц за первую, вторую, третью и четвертую недели соответственно, и что цена этого товара по неделям соответственно равна 3, 5, 10, 4 ден.ед. Следовательно, общий доход за месяц от продажи товара равен 58-3 + 26-5+ 12-10 + 25-4 = 524ден.ед. Представим данные
о продажах при помощи матрицы-строки:
а соответствующие цены с помощью матрицы-столбца:
Тогда общий доход от продажи товара, равный 524 ден.ед., представляет собой сумму произведений элементов матрицы-строки A (количество проданного товара по неделям) на соответствующие элементы матрицы-столбца В (цены по неделям на товар):
Приведенный пример помогает уяснить общую методику вычисления произведения матрицы-строки на матрицу-столбец: для этого каждый элемент матрицы-строки А нужно умножить на соответствующий элемент матрицы-столбца В и сложить полученные произведения.
Предположим теперь, что компания «а» имеет отделения в трёх различных регионах. Данные о количестве проданного товара по регионам запишем в виде матрицы С:
Цена по неделям за месяц была такой же. Доход от розничной продажи в первом регионе был вычислен; аналогичные расчёты могут быть произведены и по двум другим регионам:
Представим итоговые данные по выручке в виде матрицы-столбца:
Взглянув на вычисления, можно убедиться в том, что элементы этой матрицы-столбца получаются так же, как и описанное ранее произведение матрицы-строки А на матрицу-столбец В, причем в качестве матрицы-строки А в каждом случае взята последующая строка матрицы С. Полученный результат представляет произведение СВ:
В общем случае произведение матрицы С на матрицу-столбец В, это вектор-столбец,i-Й элемент которого представляет сумму произведений каждого из элементов i-й строки матрицы С на соответствующие элементы вектора-столбца В.
Из этого примера следует, что произведение существует только в том случае, когда число элементов в строках матрицы С (т.е. число столбцов) равно числу элементов, составляющих вектор-столбец В (т.е. числу строк). При соблюдении этого равенства, произведение образует вектор-столбец, содержащий столько элементов, сколько строк насчитывается в матрице С. Следовательно, если в матрице С содержится т строк и q столбцов и порядок матрицы-столбца В равен q, тогда произведение представляет собой матрицу-столбец порядка т, причем i-й элемент этого вектора равен
Аналогичным образом определяется произведение матрицы-строки на матрицу Р. Оно существует в том случае,
если число элементов матрицы-строки D равно числу элементов в столбцах матрицы Р (т.е. равно числу строк этой матрицы). В этом случае произведении образует матрицу-строку, содержащую столько же элементов, сколько столбцов насчитывается в матрице Р. При этом произведение равно , произведение может к не существовать, несмотря на то что, существует произведение , и наоборот.
Пример №21
Пусть матрица
характеризует переход подписчика от одной газеты к другой в зависимости от продолжительности подписки. В этой матрице перехода данные сгруппированы по строкам и столбцам в соответствии с продолжительностью подписки: до одного года, от одного года до двух лет, более двух лет и, наконец, аннулирование подписки. Элементы первой строки характеризуют состояние подписчиков газет с продолжительностью подписки до одного года; второй строки – с продолжительностью подписки от одного года до двух лет; третья строка – с продолжительностью подписки более двух лет; элементы четвертой строки характеризуют аннулирование подписки. Элементы первого столбца характеризуют возможность остаться в категории подписчиков до одного года; элементы второго столбца – возможность продолжить подписку от одного до двух лет, если подписчик имеет продолжительность подписки до одного года; элементы третьего столбца- возможность продолжить подписку более двух лет: элементы четвертого столбца – возможность аннулировать подписку.
Предположим, что известно распределение 5000 подписчиков по продолжительности подписки на газеты: 3000 имеют продолжительность подписки до одного года (категория 1), 800 – имеют продолжительность подписки от одного до двух лет (категория 2), 1200 подписчиков имеют, продолжительность подписки более двух лет (категория 3). Представим эти данные в виде матрицы-строки Q =.
Для того чтобы определить возможное количество подписчиков в каждой из этих категорий через год, умножим матрицу-строку Q на матрицу Р:
Матрица-строка, полученная в результате умножения, показывает, что из I категории через год возможно 2100 подписчиков будут принадлежать к категории II, 1720- к категории III, и 1180 возможно аннулируют подписку.
Учитывая введенные операции, умножение двух матриц А и В можно представить как многократное умножение матрицы А на матрицы-столбцы, рассматривая вторую матрицу В как набор мат-риц-столбцов. При этом произведение матриц А и В может иметь смысл только в том случае, когда j-й столбец матрицы В (а, следовательно, и все ее столбцы) насчитывают тоже число элементов, что и i-я строка матрицы А (а, следовательно, и все ее строки). Поскольку количество элементов в столбце матрицы равно числу строк в ней (а количество элементов в строке равно количеству столбцов) это означает, что в матрице В должно быть столько же строк, сколько столбцов содержит матрица А.
Таким образом, произведение матрицы определено, когда число столбцов в А равно числу строк в В. Тогда произведение содержит то же количество строк, что и матрица А, и то же количество столбцов, что и матрица В.
Если число столбцов в А равно числу строк в В, то матрицы называются согласованными для умножения А на В. При этом если А размерности т * п, а В размерность , то произведение является матрицей размерности , т. е.:
Определение 3.2.4. Произведением матрицы А размерности на матрицу В размерности называется матрица Р размерности , элементы которой определяется формулами:
, при , т.е. элемент равен сумме произведений элементов i-й строки матрицы А на соответствующие элементы j-ого столбца матрицы В.
- Заказать решение задач по высшей математике
Пример №22
Пусть Матрица А содержит три столбца, а В содержит три строки. Следовательно, матрицы А и В согласованные для умножения. Тогда
Произведение матриц, вообще говоря, не коммутативно, т.е. А В не всегда равно . Например,
Из приведенного примера следует, что, перемножая матрицы А и В, можно получить два произведения к . Если размеры матрицы A равны , то оба произведения существуют только в том случае, когда размеры матрицы В равны . Тогда произведение образует квадратную матрицу порядка m, а произведение – квадратную матрицу n. Поэтому размеры АВ могут быть равны ВА в том случае, когда m = n, т.е. когда обе матрицы квадратные и имеют один и тот же порядок равный m. При этом указанные произведения матриц могут не иметь ни одного одинакового элемента, полученного в результате суммирования произведений соотвстствующих элементов исходных матриц. Поэтому, если даже существуют оба произведения АВ и ВА и оба они имеют одинаковый порядок, вообще говоря, они не обязательно должны быть равны между собой, что и показывает приведенный выше пример.
Из сказанного не следует, что АВ и ВА всегда должны различаться между собой, в отдельных случаях они могут быть равны. Например,
В двух случаях, имеющих особо важное значение, произведение матриц обладает свойством коммутативности:
1) в случае умножения на нулевую матрицу: если представляет собой квадратную матрицу п-ого порядка, а – аналогичную матрицу, все элементы которой составляют нули, тогда
Нулевая матрица выполняет роль нуля в матричной алгебре;
2) в случае умножения на единичную матрицу: если представляет собой квадратную матрицу n-ого порядка, а – аналогичную единичную матрицу, то
Единичная матрица того же порядка служит единицей в матричной алгебре. Например,
Отметим, что произведение матрицы на скалярную величину так же коммутативно:
Матрицу А можно умножить саму на себя тогда и только тогда, когда она квадратная. Если n – натуральное число, больше единицы, то есть произведение n матриц равных А. Для действий со степенями матриц справедливы следующие правила: ,если АВ = ВА.
Значением многочлена
с числовыми коэффициентами от матрицы А или значением многочлена при х = А называется матрица
где Е- единичная матрица.
Многочленной матрицей называется прямоугольная (в частности квадратная) матрица А, элементы которой являются многочленами от одной переменной х с числовыми коэффициентами. Матричным многочленом называется выражение вида
где х- переменное и – квадратные матрицы с числовыми элементами одного и того же порядка n. Число n называется порядком многочлена F(x). Если , то число m называется степенью матричного многочлена F{x). Если матрица не вырождена, т.е. , то матричный многочлен F(x) называется регулярным.
Два матричных многочлена одинакового порядка можно складывать, вычитать и умножать аналогично обычным многочленам с числовыми коэффициентами, с той разницей, что умножение числовых матриц, а потому и матричных многочленов не обязательно коммутативно.
Операцию умножения для матриц можно ввести иначе. Пусть задана матрица размерности :
Обозначим столбцы матрицы А следующим образом:
их называют векторами-столбцами; а строки:
которые называют векторами-строками.
Пример №23
Пусть число трёх типов игрушек, которые нужно изготовить, равно соответственно 20, 30, 40. Определим число деталей каждого вида, необходимых для сборки игрушек при полном удовлетворении заказа на них.
Решение:
Составим матрицу А, в которой по строкам укажем число деталей одного вида, необходимых для производства трёх типов игрушек, а по столбцам – число деталей трех видов, необходимых для производства одной игрушки трёх типов:
Число деталей каждого вида, необходимых для сборки игрушек при полном удовлетворении заказа определим умножением матрицы А на матрицу-столбец, характеризующую число игрушек:
Зная количество деталей, необходимых для производства одной игрушки, можно определить потребность в сырье для производства одной игрушки, если известны нормы расхода сырья для производства одной детали, которые приведены в таблице 3.2.2.
Эти потребности в сырье определяются умножением матриц
Умножив результат произведения матриц на количество игрушек, определим потребности в сырье для выполнения заказа
Приведенный пример иллюстрирует простоту решения задачи при помощи умножения матриц.
Пример №24
Предположим, что затраты рабочего времени в часах на каждом рабочем месте и на каждое изделие заданы в таблице 3.2.3. Количество изделий (в штуках) в каждом заказе задано в таблице 3.2.4. Часовая заработная плата (в рублях) на каждом рабочем месте задана в таблице 3.2.5
Решение:
Рассчитаем заработную плату, приходящуюся при производстве различных изделий на каждый заказ.
Решение. Введем в рассмотрение следующие матрицы:
где А – матрица затрат, В – матрица спроса, С – матрица почасовой зарплаты.
Так как матрица С задает зависимость между величиной заработной платы и затратами рабочего времени на каждом рабочем месте, а матрица А – между затратами времени на каждом рабочем месте и выпуском изделий, то произведение АС задает линейную зависимость между выпуском одного изделия и величиной заработной платы. Поскольку матрица В определяет количество изделий в каждом заказе, то произведение В(АС) определяет выполнение каждого заказа. Поэтому, вычислив произведение В (АС):
находим заработную плату, приходящуюся на заказ равную 23920 руб., на заказ – 23640 руб. и на заказ – 24850 руб.
Блочные матрицы и действия над ними
Для упрощения действий над матрицами больших размеров выполняют переход к матрицам меньших размеров путём разбиения их на клетки горизонтальными и вертикальными прямыми, пересекающими всю матрицу.
Например, проведём в матрице А две горизонтальные и две вертикальные прямые:
Получим 9 клеток, каждая из которых будет некоторой матрицей. Введём для них обозначения:
Тогда матрицу А можно записать в виде:
Полученную матрицу называют блочной, или клеточной. Любую матрицу множеством способов можно представить в блочной форме. Особый интерес представляют блочные матрицы, имеющие квадратные диагональные клетки. Например,
В матрице В клетки – квадратные матрицы третьего, второго и первого порядка соответственно.
Если у блочных матриц число диагональных клеток одинаково, причём соответственные диагональные клетки имеют один и тот же порядок, то такие матрицы называются конформными.
Блочная матрица, у которой все клетки, кроме стоящих на главной диагонали, являются нуль-матрицами, называется квазидиагональной. Примером квазидиагональной матрицы является матрица
вида: Квазидиагональная матрица обозначается , где
– её диагональные квадратные клетки.
Если к квадратной матрице а добавить снизу матрицу-строку, справа – матрицу-столбец и в правом нижнем углу добавить элемент, то полученная блочная матрица называется окаймлённой.
Арифметические операции над блочными матрицами выражаются через операции над клетками матриц. Такое выражение возможно для конформных матриц.
1) Сложение блочных матриц производится аналогично правилу сложения обычных матриц: Подчеркнем, что можно складывать только конформные матрицы. В противном случае равенство не имеет смысла.
2) При умножении блочной матрицы на скаляр все клетки блочной матрицы умножаются на этот скаляр:
3) Произведение конформных блочных матриц формально совпадает с правилом умножения обычных матриц:
При умножении матриц соответственные диагональные клетки умножаемых матриц должны иметь одинаковый порядок. В противном случае блочные матрицы не будут конформными и их умножать нельзя.
Произведением конформных квазидиагональных матриц является квазидиагональная матрица с той же структурой, причём каждая диагональная клетка произведения является произведением соответствующих диагональных клеток сомножителей:
При транспонировании квазидиагональной матрицы получаем квазидиагональную матрицу, диагональные клетки которой являются транспонированными матрицами:
Матрица А, которую одновременной перестановкой строк и столбцов можно привести к блочному виду
где – квадратные блоки, включающие ненулевые элементы; О – блок, состоящий только из нулей; В – блок, элементы которого могут принимать любые значения, называется разложимой матрицей.
Матрица неразложима если для неё не существует таких одновременных перестановок строк и столбцов, которые приводили бы сё к разложимой форме.
Оператор суммирования и его свойства
В экономических исследованиях часто употребляются переменные, определенные на дискретных множествах
или и рассматриваются их суммы. Символом операции
суммирования служит заглавная греческая буква (сигма). Тогда,
например, сумму можно записать в видех . Числа сточщие под знаком и над ним, называются пределами суммирования и указывают наибольшие и наименьшие значения индекса суммирования, между которыми расположены его промежуточные значения.
Для оператора суммирования справедливы следующие тождества:
- 1.
- 2.
- 3. ;
- 5.
Существует также способ записи операции умножения с помощью прописной греческой буквы «пи» – П : Так, например, произ-ведение пяти множителей можно сокращенно записать:
Перестановки
Рассмотрим n целых чисел (элементов) . Их можно располагать в различном порядке. Всевозможные расположения этих чисел называются перестановками. Перестановка , в которой числа идут в порядке возрастания, называется натуральной. Например, из трех чисел можно составить 6 перестановок: (123), (132), (213), (231), (312), (321). Справедливо следующее утверждение: «Из n чисел можно составить n! перестановок». Символ n! читается юн факториал» и обозначает произведение последовательных натуральных чисел: 0!=1; 1!=1; ; ; … .
Назовем беспорядком (или инверсией) в перестановке тот факт, что большее число стоит перед меньшим. Если перестановка имеет четное число инверсий, то она называется четной, в противном случае – нечетной. Обмен местами двух элементов в перестановке называется транспозицией. Например:
Транспозиция переводит одну перестановку в другую и меняет четность перестановки.
Определение определителя
Рассмотрим квадратную матрицу размерности п и составим из ее элементов таблицу вида
или более компактно: . Каждый элемент имеет два индекса, первый из которых указывает, какой строке принадлежит элемент, а второй – какому столбцу.
Этой таблице соотнесем число, называемое определителем, вычисляемое по правилу, сформулированному в следующем определении.
Определение 3.6.1. Определителем n-го порядка называется алгебраическая сумма n! членов, каждый из которых представляет собой произведение n элементов , взятых по одному из каждой
строки и каждого столбца; при этом член определителя берется со знаком «+», если вторые индексы его элементов образуют чётную перестановку, и со знаком «—», если эта перестановка нечетная, а первые индексы образуют натуральную перестановку.
Определитель n-то порядка обозначается в виде таблицы (3.6.1), где горизонтали – строки, а вертикали – столбцы.
Введем величину:
Тогда в силу определения 3.6.1 определитель n-то порядка запишется в виде:
Суммирование распространяется на все перестановки из n чисел 1,2,…,n, что условно обозначили символом n!
В частности, определителем второго порядканазывается алгебраическая сумма двух слагаемых , каждое из которых равно произведению двух элементов. Согласно определению 3.6.1, первое слагаемое имеет знак «+», а второе – знак «-». Следовательно, для нахождения определителя второго порядка, нужно из произведения элементов, стоящих на главной диагонали вычесть произведение элементов стоящих на побочной диагонали:
Таким образом, каждой квадратной матрице А можно поставить в соответствие некоторое число, называемое определителем матрицы и обозначаемое .
Свойства определителя n-го порядка
Свойствами, сформулированными ниже, обладают определители любого порядка, в частности второго и третьего порядков.
. Величина определителя при его транспонировании (т. е. при замене его строк соответствующими столбцами) не меняется.
Доказательство. Рассмотрим определитель . Протранспонируем его; получим определитель , т. е. элементы строки и i-го столбца определителя совпадают с элементами из i-й строки и k-го столбца определителя D. Тогда по определению
В каждом слагаемом формулы (4.1) переставим сомножители таким образом, чтобы их первые индексы составили натуральную перестановку; вторые индексы образуют произвольную перестановку:
Перестановки и разные, но обладают одинаковой четностью, так как одним и тем же числом транспозиций перестановка переводится в натуральную, а перестановку получаем из натуральной. Поэтому , и равенство (3.7.1) принимает вид:
Так как то чтo и требовалось доказать.
Из свойства вытекает, что строки и столбцы определителя равноправны. Поэтому любое свойство доказанное для строк, справедливо и для столбцов.
. Если в определителе поменять местами две строки (столбца), то у него изменится только знак, а абсолютная величина останется прежней.
Доказательство. Рассмотрим определитель , в котором переставим l-ую и m-ую строки. При этом считаем, что . Получим определитель , элементы которого связаны с элементами определителя соотношениями
В силу равенств (3.7.2) преобразуем определитель
к виду
Выполним в перестановке одну транспозицию , в результате четность перестановки изменится на противоположную:
Затем поменяем местами сомножители и в произведении . Произведение при этом не изменится, а равенство (3.7.3) примет вид
В равенстве (3.7.4) первые индексы элементов образуют натуральную перестановку , т. к. , а перестановка из
вторых индексов такая же, как и в выражении . Поэтому сумма правой части формулы (3.7.4) равна определителю , т. е. . что и требовалось доказать.
. Определитель с двумя одинаковыми строками (столбцами) равен нулю.
Доказательство. Так как по условию две строки одинаковы, то их перестановка не меняет величины определителя. С другой стороны, по свойству в результате перестановки знак определителя изменится, т. с. . Следовательно, .
. Если все элементы строки (столбца) содержат общий множитель, то его можно вынести за знак определителя.
Доказательство. Пусть в определителе l-тая строка содержит общий множитель, тогда по определению его можно записать в виде:
Из (3.7.5) следует, что каждое слагаемое содержит множителем число , его можно вынести за знак суммы, т. с. преобразовать
Из свойства вытекает:
Следствие 3.7.1. Определитель с двумя пропорциональными строками (столбцами) равен нулю.
Действительно, по свойству общий множитель у одной из строк, пропорциональной другой, можно вынести за знак определителя. Получим определитель с двумя одинаковыми строками, а в силу свойства он равен нулю.
. Если все элементы строки (столбца) являются суммами из одинакового числа слагаемых, то определитель равен сумме определителей, у которых элементами этой строки (столбца) служат отдельные слагаемые.
Доказательство. Пусть все элементы i-той строки определителя являются суммами из одинакового числа слагаемых: . Тогда определитель имеет вид:
В силу определения его можно записать:
но так как
то
что и требовалось доказать.
Следствие 3.7.2. Величина определителя не изменится, если /с элементам любой его строки (столбца) прибавить соответствующие элементы другой строки (столбца), умножив их предварительно на один и тот же множитель.
Действительно, если мы рассмотрим определитель
полученный из прибавляем к элементам l строки соответствующие элементы m строки, то в силу свойства его можно представить в виде суммы двух определителей, т. е.
так как второе слагаемое равно 0 как определитель с двумя пропорциональными строками.
Миноры и алгебраические дополнения
Определение 3.8.1. Если в определителе n-го порядка вычеркнем i-ую строку и k-ый столбец, на пересечении которых находится элемент , то полученный определитель (n-1)-го порядка называется минором исходного определителя , соответствующего элементу , и обозначается . Например, если
Определение 3.8.1. Минор с определенным знаком, зависящим от четности суммы i+k номеров строки и столбца, на пересечении которых находится элемент называется алгебраическим дополнением элемента в определителе и обозначается
.
С помощью алгебраических дополнений определитель порядка п может быть выражен через определители порядка n-1. Этот факт справедлив для определителей имеющих специальную структуру, т. е. имеют место
Лемма 3.8.1. Если в определителе порядка n все элементы последней строки (столбца), кроме элемента, стоящего в правом нижнем углу, равны нулю, то определитель равен произведению этого элемента на соответствующий ему минор.
Лемма 3.8.2. Если в определителе порядка n все элементы какой-либо строки (столбца), кроме одного, равны нулю, то определитель равен произведению этого элемента на его алгебраическое дополнение.
Из сформулированных лемм вытекают следующие теоремы:
Теорема 3.8.1. (теорема разложения). Определитель порядка п равен сумме парных произведений элементов любой строки (столбца) на их алгебраические дополнения: .
Доказательство. Так как строки и столбцы равносильны, то достаточно проверить справедливость равенства:
Представим каждый элемент i-й строки определителя в виде суммы n слагаемых, из которых n-1 слагаемое равно нулю
тогда его можно представить в виде суммы определителей (по свойству ):
Определитель по лемме 2 равен произведению элемента на его алгебраическое дополнение в этом определителе. Но так как определитель отличается от лишь элементами i-й строки, го это алгебраическое дополнение совпадает с алгебраическим дополнением элемента , определителя , так как эта строка и столбец будут вычеркнуты, а все остальные элементы определителя , и совпадают.
Следовательно,.
Аналогично и поэтому (т. к.
Теорема 3.8.2. (теорема аннулирования). Сумма парных произведений элементов любой строки (столбца) определителя на алгебраические дополнения параллельной строки (столбца) равна нулю:
, где i, j – строки определителя .
Вычисление определителей
Укажем некоторые способы вычисления определителей.
1) По теореме 3.8.1 определитель любого порядка п выражается через n определителей (n-1)-го порядка. Применяя эту теорему несколько раз, можно преобразовать исходный определитель к некоторому числу определителей третьего порядка, вычисление которых не представляет труда. Однако для упрощения вычислений целесообразно предварительно преобразовать определитель так, чтобы в одном из его рядов все элементы, кроме одного, обратились в нуль. Тогда данный определитель сведется к определителю более низкого порядка, и т. д.
2) Пользуясь свойствами определителя, приводят его к треугольному виду, когда все элементы, стоящие по одну сторону от главной диагонали, равны нулю. Полученный определитель треугольного вида равен произведению элементов главной диагонали, т. е.
Если удобнее получить нули по одну сторону от побочной диагонали, то где приведен уже к треугольному виду.
3) Если определитель порядка n после разложения по строке или столбцу и после преобразования, выражается через определители того же вида, но более низких порядков, то полученное равенство называется рекуррентным. Вычисляют столько определителей данного вида начальных порядков, сколько их входит в правую часть рекуррентного соотношения. Далее вычисляют определители высших порядков, используя рекуррентные соотношения, до тех пор, пока не удастся заметить общую закономерность для получаемых выражений. Для общего случая доказывают индукцией по п эту закономерность.
Определитель квазидиагональной матрицы равен произведению определителей её диагональных клеток:
.
Определитель второго порядка, согласно определению 3.6.1 равен произведению диагональных элементов минус произведение элементов побочной диагонали. Например,
.
Определитель третьего порядка по определению 3.6.1. равен алгебраической сумме шести слагаемых. Построение этой суммы можно выполнить по правилу Саррюса. Со знаком “+” и рассматривая произведение элементов определителя, обозначенных на схеме точками
Hстример,
Определители выше третьего порядков вычисляются либо сведением к треугольному виду, либо используя теорему разложения или используя рекуррентную формулу. Например,
(последовательно умножим первую строку на 2; 4; 3 и вычтем получающиеся при этом строки из второй, третьей и четвертой строк)
(умножим третью строку на 20/34 и вычтем из четвертой строки; сомножитель четвертой строки 1/34 вынесем за знак определителя; в результате получим определитель верхнетреуголыюго вида, который равен произведению элементов, стоящих на главной диагонали) .
Матрицы и операции над матрицами
Матрицей размера называется прямоугольная таблица чисел вида состоящая из m строк и n столбцов. Числа называются элементами матрицы, где i – индекс строки, j – индекс столбца. Обозначение:
Например, элемент (читается «а три пять») в таблице будет расположен в третьей строке и пятом столбце.
Суммой двух матриц одинакового размера называется матрица того же порядка, каждый элемент которой равен сумме соответствующих элементов матриц и
Например,
Произведением матрицы на действительное число . называется такая матрица что
Например,
Если количество столбцов первой матрицы (множимой) равно количеству строк второй матрица (множителя), то матрицы называются согласованными.
Внимание! Умножаются только согласованные матрицы.
Произведением матрицы А размера (n столбцов) на матрицу В размера (n строк) называется матрица С размера каждый элемент которой равен сумме произведений элементов i-й строки матрицы А на соответствующие элементы j-ro столбца матрицы В, т.е. («i-ю строку первой матрицы умножаем на j-й столбец второй матрицы»). Число строк матрицы произведения С равно числу строк матрицы А, а число столбцов матрицы С равно числу столбцов матрицы В.
Пример:
Даны матрицы
Найти то из произведений АВ, В А, которое существует.
Решение:
Найдем произведение матриц АВ. Оно существует, т.к. количество столбцов матрицы А равно количеству строк матрицы В и равно двум.
Например, элемент произведения матриц с индексом 12 равен по определению сумме произведений элементов 1-й строки матрицы А на соответствующие элементы 2-го столбца матрицы В:
Тогда
Рассмотрим произведение матриц ВА. Число столбцов матрицы В (n=3) не совпадает с числом строк матрицы А (m=2). Произведение матриц ВА не существует.
Вывод. В общем случае произведение матриц не коммутативно, т.е. не всегда АВ=ВА.
Если АВ=ВА, то матрицы А и В называются перестановочными.
Матрица, полученная из данной заменой каждой ее строки столбцом с тем же номером, называется матрицей, транспонированной к данной. Обозначение: или
Например,
- Линейный оператор – свойства и определение
- Многочлен – виды, определение с примерами
- Квадратичные формы – определение и понятие
- Системы линейных уравнений с примерами
- Прямая – понятие, виды и её свойства
- Плоскость – определение, виды и правила
- Кривые второго порядка
- Евклидово пространство