Действия над матрицами матрица: Операции над матрицами и их свойства

1.1. Матрицы. Действия над матрицами

Матрицей размерности называется прямоугольная таблица, состоящая изэлементов, расположенных вm строках и n столбцах.

Элементы матрицы (первый индексi − номер строки, второй индекс j − номер столбца) могут быть числами, функциями и т. п. Матрицы обозначают заглавными буквами латинского алфавита.

Матрица называется квадратной, если у нее число строк равно числу столбцов (m = n). В этом случае число n называется порядком матрицы, а сама матрица называется матрицей n-го порядка.

Элементы с одинаковыми индексами образуютглавную диагональ квадратной матрицы, а элементы (т.е. имеющие сумму индексов, равнуюn+1) − побочную диагональ.

Единичной матрицей называется квадратная матрица, все элементы главной диагонали которой равны 1, а остальные элементы равны 0.

Она обозначается буквой Е.

Нулевая матрица − это матрица, все элементы которой равны 0. Нулевая матрица может быть любого размера.

К числу линейных операций над матрицами относятся:

1) сложение матриц;

2) умножение матриц на число.

Операция сложения матриц определена только для матриц одинаковой размерности.

Суммой двух матриц А и В называется матрица С, все элементы которой равны суммам соответствующих элементов матриц А и В:

.

Произведением матрицы

А на число k называется матрица В, все элементы которой равны соответствующим элементам данной матрицы А, умноженным на число k:

.

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

Произведением матрицы А размерности на матрицу В размерности называется матрицаС размерности , элементi-ой строки и j-го столбца которой равен сумме произведений элементов

i-ой строки матрицы А на соответствующие элементы j-го столбца матрицы В:

.

Произведение матриц (в отличие от произведения действительных чисел) не подчиняется переместительному закону, т.е. в общем случае А В В А.

Понятие определителя вводится только для квадратных матриц.

Определителем матрицы 2-го порядка называется число, вычисляемое по следующему правилу

.

Определителем матрицы 3-го порядка называется число, вычисляемое по следующему правилу:

Первое из слагаемых со знаком «+» представляет собой произведение элементов, расположенных на главной диагонали матрицы (). Остальные два содержат элементы, расположенные в вершинах треугольников с основанием, параллельным главной диагонали (и). Со знаком «-» входят произведения элементов побочной диагонали () и элементов, образующих треугольники с основаниями, параллельными этой диагонали (и).

Это правило вычисления определителя 3-го порядка называется правилом треугольников (или правилом Саррюса).

Свойства определителей

рассмотрим на примере определителей 3-го порядка.

1. При замене всех строк определителя на столбцы с теми же номерами, что и строки, определитель своего значения не меняет, т.е. строки и столбцы определителя равноправны

.

2. При перестановке двух строк (столбцов) определитель меняет свой знак.

3. Если все элементы некоторой строки (столбца) нули, то определитель равен 0.

4. Общий множитель всех элементов строки (столбца) можно вынести за знак определителя.

5. Определитель, содержащий две одинаковые строки (столбца), равен 0.

6. Определитель, содержащий две пропорциональные строки (столбца), равен нулю.

7. Если каждый элемент некоторого столбца (строки) определителя представляет сумму двух слагаемых, то определитель равен сумме двух определителей, в одном из которых в том же столбце (строке) стоят первые слагаемые, а в другом − вторые. Остальные элементы у обоих определителей одинаковые. Так,

.

8. Определитель не изменится, если к элементам какого-либо его столбца (строки) прибавить соответствующие элементы другого столбца (строки), умноженные на одно и то же число.

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

Минором элемента определителя называется определитель, полученный из данного вычеркиванием той строки и того столбца, на пересечении которых этот элемент расположен.

Например, минором элемента определителя называется определитель .

Алгебраическим дополнением элементаопределителя называется его минор, умноженный на, гдеi − номер строки, j − номер столбца, на пересечении которых находится элемент . Алгебраическое дополнение обычно обозначается. Для элементаопределителя 3-го порядка алгебраическое дополнение

9. Определитель равен сумме произведений элементов какой-либо строки (столбца) на соответствующие им алгебраические дополнения.

Например, определитель можно разложить по элементам первой строки

,

или второго столбца

.

Свойства определителей применяются для их вычисления.

Глава 02. Действия над матрицами

1. Сложение матриц.

Пусть

; .

(1. 2.1)

Суммой двух матриц A и B одинаковой размерности называется матрица C = A + B той же размерности, элементы которой равны сумме соответствующих элементов матриц A и B, т. е.

(I= 1, 2, …, N; K= 1, 2, …, M).

(1.2.2)

Пример

, , .

2. Умножение матрицы на число.

Произведением матрицы A на число l называется матрица C = lA, элементы которой равны элементам матрицы A, умноженным на число l, т. е. 

, (I= 1, 2, …, N; K= 1, 2, …, M).

(1.2.3)

Матрица –A = (–1)×A называется противоположной матрице A. Очевидно, что A + (–A) = 0, где 0 – нулевая матрица той же размерности, что и матрица A.

Легко проверить, что операции сложения матриц и умножения матрицы на число, называющиеся линейными операциями, обладают следующими свойствами:

(1.2.4)

3. Вычитание матриц.

Разностью матриц A и B одинаковой размерности называется такая матрица C = AB, сумма которой с матрицей B равна матрице A

(1.2.5)

Чтобы получить матрицу C = AB, достаточно из элементов матрицы A вычесть соответствующие элементы матрицы B: 

(i= 1, 2, …, n; k= 1, 2, …, m).

(1.2.7)

4. Умножение матриц.

Произведением двух матриц A и B, заданных в указанном порядке, называется такая матрица С = A×B, каждый элемент которой Cik равен сумме произведений элементов

I–ой строки матрицы A на соответствующие элементы K–го столбца матрицы B.

Матрицы A и B можно перемножить, если количество элементов в строке матрицы A равно количеству элементов в столбце матрицы B

Пример

; . Найти A×B.

Решение

Замечание

Произведение матриц BA рассмотренных в приведенном выше примере, не существует, т. к. число столбцов (2) матрицы B (первого множителя) не равно числу строк (3) матрицы A (второго множителя).

Пример

Найти A×B и B×A.

Решение

, .

Как видим из примера, A×B ¹ B×A, т. е. произведение матриц не обладает коммутативным свойством.

Свойства произведения матриц: 

(1.2.8)

< Предыдущая   Следующая >

матричных операций | 12 Матричные операции для глубокого обучения

Эта статья была опубликована в рамках блога Data Science Blogathon

Введение

Если вы начнете изучать глубокое обучение, первое, с чем вы познакомитесь, — это концепции линейной алгебры, которые помогут вам лучше понять, как на самом деле работают алгоритмы, что позволит вам принимать более обоснованные решения. В глубоком обучении нейронная сеть с прямой связью — самая простая и очень полезная сеть. Под капотом нейронная сеть с прямой связью — это просто составная функция, которая перемножает некоторые матрицы и векторы.

Источник изображения: Ссылка

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

  • Скаляры,
  • Векторов,
  • Матрицы
  • и
  • Тензоры.

Матричные операции используются в описании многих алгоритмов глубокого обучения.

Источник изображения: Ссылка

Итак, если вы действительно хотите стать профессионалом в области глубокого обучения, вам не избежать освоения некоторых из этих концепций. Итак, в этой статье мы обсудим важные матричные операции линейной алгебры, которые используются при описании методов глубокого обучения.

Содержание

В этой статье мы обсудим следующие темы:

  • Что такое матрицы?
  • Как складывать и вычитать разные матрицы?
  • Как найти форму и размер заданной матрицы?
  • Как преобразовать плотную матрицу в разреженную?
  • Как найти транспонирование матрицы?
  • Как найти среднее значение, дисперсию и стандартное отклонение матрицы?
  • Как найти след матрицы?
  • Как извлечь минимальный и максимальный элементы из матрицы?
  • Как найти определитель матрицы?
  • Как умножить данные матрицы?
  • Как применить конкретную операцию к каждому элементу матрицы?
  • Как найти обратную матрицу?
  • Как изменить форму матрицы на другой размер?

Что такое матрицы?

Матрицы представляют собой прямоугольные массивы, состоящие из чисел, и их можно рассматривать как 2 тензора -го и -го порядка. Если m и n – положительные целые числа, то есть m, n ∈ ℕ, то матрица m × n содержит m * n элементов с m количеством строк и n количеством столбцов.

Графическое представление матрицы размера m×n показано ниже:

Источник изображения: Ссылка

Иногда вместо полного описания компонентов матрицы мы используем следующую аббревиатуру матрицы:

Например-

В этом примере с помощью библиотеки numpy мы создадим матрицу. А также проверить размерность сформированной матрицы.

Сложение и вычитание матриц


Источник изображения: Ссылка

В этом разделе мы будем выполнять сложение и вычитание матриц, используя методы сложения и вычитания. Эти методы принимают два аргумента и возвращают сумму и разность этих матриц соответственно. Если форма матриц не одинакова, выдается ошибка о том, что сложение или вычитание невозможно.

 matrix_1 = np.array([[45,34],[67,58]])
matrix_2 = np.массив([[35,24],[57,48]])
# Складываем две матрицы
print("Результат после сложения матрицы 1 и матрицы 2 равен n" , np.add(matrix_1, matrix_2))
# Вычесть одну матрицу из других матриц
print("Результат после вычитания матрицы 1 из матрицы 2 равен n" , np.subtract(matrix_1, matrix_2))
print("Результат после вычитания матрицы 2 из матрицы 1 равен n" , np.subtract(matrix_2, matrix_1)) 

Вывод:

 Результат после сложения матрицы 1 и матрицы 2 определяется выражением
 [[ 80 58]
 [124 106]]
Результат после вычитания матрицы 1 из матрицы 2 определяется выражением
 [[10 10]
 [10 10]]
Результат после вычитания матрицы 2 из матрицы 1 определяется выражением
 [[-10 -10]
 [-10 -10]] 

Форма и размер матрицы

 В этом разделе мы найдем форму, т. е. количество строк и столбцов в данной матрице, и размер, т. е. количество элементов в матрице данной матрицы.

 матрица = np. array([[45,34,75],[67,58,89]])
# Находим количество строк и столбцов в матрице
print("Количество строк и столбцов в данной матрице равно " + str(matrix.shape[0]) + " и " + str(matrix.shape[1]) + " соответственно")
# Количество элементов в матрице
print("Размер данной матрицы равен" , matrix.size) 

Вывод:

 Количество строк и столбцов в данной матрице равно 2 и 3 соответственно
Размер данной матрицы 6 

Преобразование заданной плотной матрицы в разреженную

Давайте сначала разберемся, что именно имеется в виду под разреженной и плотной матрицей.

Разреженная матрица — это матрица, состоящая в основном из нулевых значений. А разреженные матрицы отличаются от матриц с в основном ненулевыми значениями, которые известны как плотные матрицы.

                                                     Источник изображения: Ссылка

 из scipy import sparse
# Создаем плотную матрицу
плотная_матрица = np. массив([[0,0],[0,17],[78,0]])
# Преобразование плотной матрицы в разреженную матрицу
разреженная_матрица = разреженная.csr_matrix(плотная_матрица)
print("Разреженная матрица, соответствующая данной плотной матрице, равна n", sparse_matrix) 

Вывод:

 Разреженная матрица, соответствующая данной плотной матрице, имеет вид
   (1, 1) 17
  (2, 0) 78 

 

Транспонирование матрицы

В Matrix Transpose мы можем преобразовать вектор-строку в вектор-столбец и наоборот, т. е. строка становится столбцом, а столбец — строкой.

Если у нас есть матрица A = [a ij ] mxn , то транспонирование этой матрицы равно A T = [a ji ] н×м

Источник изображения: Ссылка  

 импортировать numpy как np
матрица = np.массив([[45,34],[67,58]])
print("Исходная матрица задана n", матрица)
print("Транспонированная матрица данной матрицы равна n" , matrix. T) 

Вывод:

 Исходная матрица определяется выражением
 [[45 34]
 [67 58]]
Транспонированная матрица данной матрицы равна
 [[45 67]
 [34 58]] 

 

Среднее значение, дисперсия и стандартное отклонение матрицы

В этом разделе мы попытаемся найти некоторые статистические вещи, связанные с матрицей. Здесь мы вычисляем среднее значение, дисперсию и стандартное отклонение матрицы, используя функции numpy.

 импортировать numpy как np
матрица = np.массив([[45,34],[67,58], [23,89]])
# Нахождение среднего значения элементов матрицы
print("Среднее значение элементов матрицы равно", np.mean(matrix))
# Нахождение дисперсии элементов матрицы
print("Дисперсия элементов матрицы равна", np.var(matrix))
# Нахождение стандартного отклонения элементов матрицы
print("Стандартное отклонение элементов матрицы равно", np.std(matrix))
print("Стандартное отклонение элементов матрицы равно", np.sqrt(np.var(matrix))) 

Вывод:

 Среднее значение элементов матрицы равно 52,666666666666664
Дисперсия элементов матрицы равна 473,5555555555555. 
Стандартное отклонение элементов матрицы равно 21,761331658599286.
Стандартное отклонение элементов матрицы равно 21,761331658599286 

 

След матрицы


                                                          Источник изображения: Ссылка

В этом разделе мы попытаемся найти след матрицы, т. е. сумму всех диагональных элементов, присутствующих в данной матрице.

 импортировать numpy как np
матрица = np.массив([[1,2,3],[4,5,6], [7,8,9]])
# Получить диагональные элементы матрицы
print("Диагональные элементы данной матрицы равны n", matrix.diagonal())
# Находим след матрицы
print("След данной матрицы равен", matrix.diagonal().sum()) 

Вывод:

 Диагональные элементы данной матрицы равны
 [1 5 9]
След данной матрицы равен 15 

Нахождение минимального и максимального элементов матрицы

В этом разделе мы попытаемся найти минимальный и максимальный элементы матрицы, т. е. элемент с наибольшим и наименьшим значением среди всех элементов.

 импортировать numpy как np
матрица = np.массив([[1,2,3],[4,5,6], [7,8,9]])
# Находим минимальный элемент матрицы
print("Минимальный элемент в данной матрице равен", np.min(matrix))
# Находим максимальный элемент матрицы
print("Максимальный элемент в данной матрице равен", np.max(matrix)) 

Вывод:

 Минимальный элемент в данной матрице равен 1
Максимальный элемент в данной матрице равен 9 
.

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


                                                      Источник изображения: Ссылка

В этом разделе мы попытаемся найти определитель матрицы. Здесь для вычисления определителя мы используем модуль линейной алгебры, присутствующий в пакете Numpy.

 импортировать numpy как np
матрица = np.массив([[1,2,4],[3,4,6], [7,8,5]])
# Найдите определитель матрицы
print("Определитель данной матрицы равен", np. linalg.det(matrix)) 

Вывод:

 Определитель данной матрицы равен 9,999999999999993 

Умножение матриц

Матрица формы (m x n) и матрица B формы (n x p), умноженные, дают C формы (m x p). Помните при умножении матриц, что количество столбцов в первой матрице совпадает с количеством строк во второй матрице, чтобы выполнить умножение без ошибок.

                                                  Источник изображения: Ссылка

В этом разделе мы попытаемся найти произведение двух матриц.

 импортировать numpy как np
matrix_1 = np.массив([[45,34],[67,58]])
matrix_2 = np.массив([[35,24],[57,48]])
print("Матричное умножение данных двух матриц равно n", np.matmul(matrix_1, matrix_2)) 

Вывод:

 Матричное умножение данных двух матриц определяется выражением
 [[3513 2712]
 [5651 4392]] 

Поэлементные операции с использованием встроенной функции (лямбда)

В этом примере мы попытаемся добавить определенное значение к каждому из элементов матрицы.

 импортировать numpy как np
матрица = np.массив([[1,2,4],[3,4,6], [7,8,5]])
сложение = лямбда i:i+5
add_5_vec = np.vectorize (дополнение)
print("Матрица после добавления 5 ко всем ее элементам равна n", add_5_vec(matrix)) 

Вывод:

 Матрица после добавления 5 ко всем ее элементам
 [[ 6 7 9]
 [ 8 9 11 ]
 [12 13 10]] 

Обратная матрица

В этом разделе мы попытаемся найти обратную матрицу.

 импортировать numpy как np
матрица = np.массив([[1,2,4],[3,4,6], [7,8,5]])
# Нахождение обратной матрицы
print("Обратная матрица данной матрицы равна n", np.linalg.inv(matrix)) 

Вывод:

 Обратная матрица заданной матрицы равна
 [[-2,8 2,2 -0,4]
 [ 2,7 -2,3 0,6]
 [-0,4 0,6 -0,2]] 

Изменение заданной матрицы

В этом разделе мы попытаемся изменить заданную матрицу, т. е. изменить форму заданной матрицы. Но здесь мы должны отметить, что размер остается постоянным после изменения формы матрицы, т. е. количество элементов остается прежним.

 импортировать numpy как np
матрица = np.массив([[1,2,4],[3,4,6],[7,8,5],[9,2,1]])
print("Измененная матрица задается n", matrix.reshape(6,2)) 

Вывод:

 Измененная матрица определяется как
 [[1 2]
 [4 3]
 [4 6]
 [7 8]
 [5 9]
 [2 1]] 

Другие записи в моем блоге

Вы также можете проверить мои предыдущие сообщения в блоге.

Предыдущие записи блога Data Science.

LinkedIn

Вот мой профиль Linkedin на случай, если вы захотите связаться со мной. Я буду счастлив быть связанным с вами.

Электронная почта

По любым вопросам вы можете написать мне на Gmail .

Конечные примечания

Спасибо за внимание!

Надеюсь, вам понравилась статья. Если вам это нравится, поделитесь им с друзьями тоже. Что-то не упомянуто или хотите поделиться своими мыслями? Не стесняйтесь комментировать ниже, и я свяжусь с вами. 😉

Медиафайлы, показанные в этой статье, не принадлежат Analytics Vidhya и используются по усмотрению Автора.

Операции с матрицами в R

Операции с матрицами в R

Многомерные статистические методы


Матричные операции в R

R — это пакет статистического программирования с открытым исходным кодом, богатый векторными и матричными операторами. Есть версии версии R, доступной для Windows, Mac OS и Unix, которую можно бесплатно загрузить через Интернет.

Матрица
  # матричная функция
# R хочет, чтобы данные вводились по столбцам, начиная с первого столбца
# 1-й аргумент: c(2,3,-2,1,2,2) значения элементов, заполняющих столбцы
# 2-й аргумент: 3 количество строк
# 3-й аргумент: 2 количество столбцов

> А

     [1] [2]
[1,] 2 1
[2,] 3 2
[3,] -2 2  
Является чем-то матрицей
  > is.matrix(A) 

[1] ИСТИНА

  > is. vector(A) 

[1] ЛОЖЬ 
Умножение на скаляр
  > с

     [1] [2]
[1,] 6 3
[2,] 9 6
[3,] -6 6  
Матричное сложение и вычитание
  > Б

     [1] [2]
[1,] 1 1
[2,] 4 2
[3,] -2 1

  > С

     [1] [2]
[1,] 3 2
[2,] 7 4
[3,] -4 3

  > Д

     [1] [2]
[1,] 1 0
[2,] -1 0
[3,] 0 1    
Умножение матриц
  > Д

     [1] [2] [3]
[1,] 2 1 3
[2,] -2 2 1

  > С

     [1] [2]
[1,] 1 10
[2,] 0 4

  > С

     [1] [2] [3]
[1,] 2 4 7
[2,] 2 7 11
[3,] -8 2 -4

  > Д

     [1] [2] [3]
[1,] 2 1 3

  > С

     [1] [2]
[1,] 1 10

  > С

Ошибка в A %*% D: несоответствующие аргументы       
Транспонирование матрицы
  > В

     [1] [2] [3]
[1,] 2 3 -2
[2,] 1 2 2

  > АТТ

     [1] [2]
[1,] 2 1
[2,] 3 2
[3,] -2 2   

Общие векторы

Единичный вектор

  > У

     [1]
[1,] 1
[2,] 1
[3,] 1  

Нулевой вектор

  > Я

     [1]
[1,] 0
[2,] 0
[3,] 0  

Общие матрицы

Матрица единиц измерения

  > У

     [1] [2]
[1,] 1 1
[2,] 1 1
[3,] 1 1  

Нулевая матрица

  > Я

     [1] [2]
[1,] 0 0
[2,] 0 0
[3,] 0 0  

Диагональная матрица

  > С

     [1] [2] [3]
[1,] 2 1 4
[2,] 3 2 2
[3,] -2 2 3

  > Д

[1] 2 2 3

  > Д

     [1] [2] [3]
[1,] 2 0 0
[2,] 0 2 0
[3,] 0 0 3    

Матрица идентичности

  > я

     [1] [2] [3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1  

Симметричная матрица

  > С

     [1] [2] [3]
[1,] 2 1 5
[2,] 1 3 4
[3,] 5 4 -2

  > КТ

     [1] [2] [3]
[1,] 2 1 5
[2,] 1 3 4
[3,] 5 4 -2   
Обратная матрица
  > А

     [1] [2] [3]
[1,] 4 2 2
[2,] 4 6 8
[3,] -2 2 4


  > ИИ

     [1] [2] [3]
[1,] 1,0 -0,5 0,5
[2,] -4,0 2,5 -3,0
[3,] 2,5 -1,5 2,0

  > А %*% AI 

     [1] [2] [3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1

  > АИ %*% А 

     [1] [2] [3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1   
Обратная и определитель матрицы
  > С

     [1] [2] [3]
[1,] 2 1 6
[2,] 1 3 4
[3,] 6 4 -2

  > КИ

           [1] [2] [3]
[1,] 0,2156863 -0,254 0,13725490
[2,] -0,2549020 0,39215686 0,01960784
[3,] 0,1372549 0,01960784 -0,041

  > д

[1] -102    
Ранг матрицыM/h5>
  > А

     [1] [2] [3]
[1,] 2 1 4
[2,] 3 2 7
[3,] -2 2 0

  > матА

[1] 3

  > А

     [1] [2] [3]
[1,] 2 1 4
[2,] 3 2 6
[3,] -2 2 -4

  > матА

[1] 2

# обратите внимание, столбец 3 в 2 раза больше столбца 1     
Количество строк и столбцов
  > Х

     [1] [2]
[1,] 3 2
[2,] 2 -2
[3,] 4 6
[4,] 3 1

  > тусклый (X) 

[1] 4 2

  > г

[1] 4

  > с

[1] 2    
Вычисление суммы столбцов и строк
  # обратите внимание на заглавную S

> А

     [1] [2]
[1,] 2 1
[2,] 3 2
[3,] -2 2

  > с

[1] 3 5

  > г

[1] 3 5 0

  > а

[1] 8     
Вычислительные средства столбцов и строк
  # обратите внимание на заглавную М  > см  [1] 1. 

Оставить комментарий