矩阵系列知识摘记

矩阵系列知识摘记单位矩阵是一个特殊的方阵 其主对角线上的元素全为 1 而其他元素全为 0

大家好,欢迎来到IT知识分享网。

矩阵基本运算

1、单位矩阵

单位矩阵是一个特殊的方阵,其主对角线上的元素全为1,而其他元素全为0。单位矩阵通常用符号 I 或 E 表示。
单位矩阵在矩阵运算中类似于数字1 在乘法中的作用,即任何矩阵与单位矩阵相乘,都等于原矩阵。
I n = [ 1 0 0 . . . 0 0 1 0 . . . 0 0 0 1 . . . 0 . . . . . . . . . . . . 0 0 0 0 . . . 1 ] I_{n} = \left[ \begin{matrix} {1} & {0} & {0} & … & {0}\\ {0} & {1} & {0} & … & {0}\\ {0} & {0} & {1} & … & {0}\\ … & … &… & … & 0 \\ {0} & {0} & {0} & … & {1} \end{matrix} \right] In=
10000100001000001

在这里插入图片描述
方阵:当矩阵的行数和列数目相等时,可以称之为方阵。方阵是一种特殊的矩阵。



2、矩阵的加法和减法

两个同型(行数和列数相同)的矩阵可以进行加法和减法运算,其结果是一个同型矩阵,它的每个元素的值等于前面两个矩阵对应位置的元素的和或者差。

加法公式
[ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . a m 1 a b m 2 . . . a m n ] + [ b 11 b 12 . . . b 1 n b 21 b 22 . . . b 2 n . . . b m 1 b m 2 . . . b m n ] = [ a 11 + b 11 a 12 + b 12 . . . a 1 n + b 1 n a 21 + b 21 a 22 + b 22 . . . a 2 n + b 2 n . . . a m 1 + b m 1 a m 2 + b m 2 . . . a m n + b m n ] \left[ \begin{matrix} a_{11} & a_{12} & … & a_{1n}\\ a_{21} & a_{22} & … & a_{2n}\\ …\\ a_{m1} &ab_{m2} & … & a_{mn} \end{matrix} \right] + \left[ \begin{matrix} b_{11} & b_{12} & … & b_{1n}\\ b_{21} & b_{22} & … & b_{2n}\\ …\\ b_{m1} & b_{m2} & … & b_{mn} \end{matrix} \right] = \left[ \begin{matrix} a_{11}+b_{11} & a_{12}+b_{12} & … & a_{1n}+b_{1n}\\ a_{21}+ b_{21} & a_{22}+b_{22} & … & a_{2n}+b_{2n}\\ …\\ a_{m1}+b_{m1} & a_{m2}+b_{m2} & … & a_{mn}+b_{mn} \end{matrix} \right]
a11a21am1a12a22abm2a1na2namn
+

b11b21bm1b12b22bm2b1nb2nbmn
=

a11+b11a21+b21am1+bm1a12+b12a22+b22am2+bm2a1n+b1na2n+b2namn+bmn

减法公式
[ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . a m 1 a m 2 . . . a m n ] − [ b 11 b 12 . . . b 1 n b 21 b 22 . . . b 2 n . . . b m 1 b m 2 . . . b m n ] = [ a 11 − b 11 a 12 − b 12 . . . a 1 n − b 1 n a 21 − b 21 a 22 − b 22 . . . a 2 n − b 2 n . . . a m 1 − b m 1 a m 2 − b m 2 . . . a m n − b m n ] \left[ \begin{matrix} a_{11} & a_{12} & … & a_{1n}\\ a_{21} & a_{22} & … & a_{2n}\\ …\\ a_{m1} &a_{m2} & … & a_{mn} \end{matrix} \right] – \left[ \begin{matrix} b_{11} & b_{12} & … & b_{1n}\\ b_{21} & b_{22} & … & b_{2n}\\ …\\ b_{m1} & b_{m2} & … & b_{mn} \end{matrix} \right] = \left[ \begin{matrix} a_{11}-b_{11} & a_{12}-b_{12} & … & a_{1n}-b_{1n}\\ a_{21}- b_{21} & a_{22}-b_{22} & … & a_{2n}-b_{2n}\\ …\\ a_{m1}-b_{m1} & a_{m2}-b_{m2} & … & a_{mn}-b_{mn} \end{matrix} \right]
a11a21am1a12a22am2a1na2namn

b11b21bm1b12b22bm2b1nb2nbmn
=

a11b11a21b21am1bm1a12b12a22b22am2bm2a1nb1na2nb2namnbmn

在numpy中的计算如下:

a = np.array([[1, 2], [3, 4]]) print(a) 输出如下 [[1 2] [3 4]] b = np.eye(2, 2, dtype=np.int16) print(b) 输出如下 [[1 0] [0 1]] print(a + b) [[2 2] [3 5]] print(a-b) [[0 2] [3 3]] 

3、矩阵的数乘

与向量类似,一个数(标量)也可以跟一个矩阵相乘,其结果是一个矩阵,其中各个元素的值等于该数乘以原来矩阵中对应位置的值。

k ∗ [ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . a m 1 a m 2 . . . a m n ] = [ k ∗ a 11 k ∗ a 12 . . . k ∗ a 1 n k ∗ a 21 k ∗ a 22 . . . k ∗ a 2 n . . . k ∗ a m 1 k ∗ a m 2 . . . k ∗ a m n ] k * \left[ \begin{matrix} a_{11} & a_{12} & … & a_{1n}\\ a_{21} & a_{22} & … & a_{2n}\\ …\\ a_{m1} &a_{m2} & … & a_{mn} \end{matrix} \right] = \left[ \begin{matrix} k*a_{11} & k*a_{12} & … & k* a_{1n}\\ k*a_{21} & k*a_{22} & … & k* a_{2n}\\ …\\ k* a_{m1} & k*a_{m2} & … & k*a_{mn} \end{matrix} \right] k
a11a21am1a12a22am2a1na2namn
=

ka11ka21kam1ka12ka22kam2ka1nka2nkamn

在numpy中的计算如下:

a = np.array([[1, 2], [3, 4]]) print(a) 输出如下 [[1 2] [3 4]] b = np.eye(2, 2, dtype=np.int16) print(b) 输出如下 [[1 0] [0 1]] print(10 * a) [[10 20] [30 40]] 

4、矩阵的点乘

矩阵的点乘也称之为矩阵的相乘。 

两个矩阵,当第一个矩阵的列数与第二个矩阵的行数相等时,可以用第一个矩阵点乘第二个矩阵,其结果是一个新的矩阵,它的行数是第一个矩阵的行数,列数是第二个矩阵的列数。它的位与第 i 行第 j 列的元素,等于第一个矩阵的第 i 行(它是一个向量)与第二个矩阵的第 j 列(它也是一个向量)这两个向量的内积。

向量内积(点乘/点积/数量积):两个向量对应元素相乘之后求和

a = [ a 1 , a 2 , . . . , a n ] b = [ b 1 , b 2 , . . . , b n ] a ∗ b = a 1 ∗ b 1 + a 2 ∗ b 2 + . . . + a n ∗ b n a = [a_{1},a_{2},…,a_{n}] \\ b = [b_{1},b_{2},…,b_{n}] \\ \\ a * b = a_{1}*b_{1} + a_{2}*b_{2} + … + a_{n}*b_{n} a=[a1,a2,,an]b=[b1,b2,,bn]ab=a1b1+a2b2++anbn

矩阵可以看成是多维的向量,即单个向量的叠加。

矩阵点乘的意义:

矩阵点乘的意义有很多,此处仅简述矩阵在人工智能领域的意义。矩阵点乘最大的意义在于计算两个矩阵的相似度。 

余弦相似度 c o s θ = A 、 B 矩阵相乘 A 向量长度 ∗ B 向量长度 余弦相似度 cos\theta = \frac{A、B矩阵相乘}{A向量长度*B向量长度} 余弦相似度cosθ=A向量长度B向量长度AB矩阵相乘
c o s θ cos\theta cosθ 越大,说明A、B两个矩阵越相似
A、B矩阵相乘 = A向量长度 x B向量长度 x c o s θ cos\theta cosθ = A向量长度 x B向量在A向量上的投影长度

[ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . a m 1 a m 2 . . . a m n ] ∗ [ b 11 b 12 . . . b 1 n b 21 b 22 . . . b 2 n . . . b m 1 b m 2 . . . b m n ] = [ c 11 c 12 . . . c 1 n c 21 c 22 . . . c 2 n . . . c m 1 c m 2 . . . c m n ] \left[ \begin{matrix} a_{11} & a_{12} & … & a_{1n}\\ a_{21} & a_{22} & … & a_{2n}\\ …\\ a_{m1} & a_{m2} & … & a_{mn} \end{matrix} \right] * \left[ \begin{matrix} b_{11} & b_{12} & … & b_{1n}\\ b_{21} & b_{22} & … & b_{2n}\\ …\\ b_{m1} & b_{m2} & … & b_{mn} \end{matrix} \right] = \left[ \begin{matrix} c_{11} & c_{12} & … & c_{1n}\\ c_{21} & c_{22} & … & c_{2n}\\ …\\ c_{m1} & c_{m2} & … & c_{mn} \end{matrix} \right]
a11a21am1a12a22am2a1na2namn

b11b21bm1b12b22bm2b1nb2nbmn
=

c11c21cm1c12c22cm2c1nc2ncmn

c 11 = a 11 ∗ b 11 + a 12 ∗ b 21 + . . + a 1 n ∗ b m 1 c 12 = a 11 ∗ b 12 + a 12 ∗ b 22 + . . + a 1 n ∗ b m 2 . . . c 1 n = a 11 ∗ b 1 n + a 12 ∗ b 2 n + . . + a 1 n ∗ b m n 其他以此类推 c_{11} = a_{11}*b_{11} +a_{12}*b_{21} + .. +a_{1n}*b_{m1} \\ c_{12} = a_{11}*b_{12} +a_{12}*b_{22} + .. +a_{1n}*b_{m2} \\ …\\ c_{1n} = a_{11}*b_{1n} +a_{12}*b_{2n} + .. +a_{1n}*b_{mn} \\ \\ 其他以此类推 c11=a11b11+a12b21+..+a1nbm1c12=a11b12+a12b22+..+a1nbm2c1n=a11b1n+a12b2n+..+a1nbmn其他以此类推

举例如下:

[ 1 2 3 4 ] ∗ [ 5 6 7 8 ] = [ 19 22 43 50 ] \left[ \begin{matrix} 1 & 2\\ 3 & 4\\ \end{matrix} \right] * \left[ \begin{matrix} 5 & 6\\ 7 & 8\\ \end{matrix} \right] = \left[ \begin{matrix} 19 & 22\\ 43 & 50\\ \end{matrix} \right] [1324][5768]=[19432250]

19 = 1*5 + 2*7 22 = 1*6 + 2*8 43 = 3*5 + 4*7 50 = 3*6 + 4*8 

在numpy中的计算如下:

# a · b = a[0] * b[0] + a[1] * b[1] + ... + a[n] * b[n] # 一维矩阵相乘 a = [1, 2, 3] b = [1, 0, 2] print(np.dot(a, b)) # 7 # 二维矩阵相乘 a = [[1, 0], [0, 1]] b = [[4, 1], [2, 2]] print(np.dot(a, b)) # [[4 1] # [2 2]] 

5、矩阵的转置

矩阵的转置是一个矩阵,它的第 i 行 第 j 列的值等于原矩阵的第 j 行第 i 列的值。矩阵A的转置用 A T A^T AT表示。
[ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . a m 1 a b m 2 . . . a m n ] T = [ a 11 a 21 . . . a m 1 a 12 a 22 . . . a m 2 . . . a 1 n a b 2 n . . . a m n ] \left[ \begin{matrix} a_{11} & a_{12} & … & a_{1n}\\ a_{21} & a_{22} & … & a_{2n}\\ …\\ a_{m1} &ab_{m2} & … & a_{mn} \end{matrix} \right] ^T = \left[ \begin{matrix} a_{11} & a_{21} & … & a_{m1}\\ a_{12} & a_{22} & … & a_{m2}\\ …\\ a_{1n} &ab_{2n} & … & a_{mn} \end{matrix} \right]
a11a21am1a12a22abm2a1na2namn
T
=

a11a12a1na21a22ab2nam1am2amn

在numpy中的计算如下:

数组转置是一个常见的线性代数操作,它指的是将数组的行变为列,列变为行。在编程中,特别是在处理矩阵或二维数组时,这个操作非常有用

ndarray.T

arr = np.array([[1, 3, 5], [2, 4, 6]]) print(arr) # [[1 3 5] # [2 4 6]] print(arr.T) # [[1 2] # [3 4] # [5 6]] 

6、矩阵的逆

矩阵的逆类似于数的倒数,矩阵A的逆用 A − 1 A^{-1} A1表示。
如果一个n阶方阵A,存在另一个n阶方阵B,使得 A * B = B * A = E,则称方针B为矩阵A的逆,或者称矩阵B为矩阵A的逆矩阵。如果矩阵A的逆矩阵存在,则称矩阵A是可逆矩阵

矩阵A的逆矩阵的转置等于矩阵A的转置的逆,即 ( A − 1 ) T (A^{-1})^T (A1)T = ( A T ) − 1 (A^T)^{-1} (AT)1

矩阵的逆的意义:
解决“矩阵除法”问题:由于矩阵本身没有除法的概念,但有时需要在矩阵运算中进行类似除法的操作。矩阵的逆就是用来解决这种“矩阵除法”问题的。例如,如果我们要计算 (X \times A = B),并且 (A) 是可逆的,那么可以通过左乘 A − 1 A^{-1} A1 来得到 (X = B \times A − 1 A^{-1} A1)。

在numpy中的计算如下:

# 定义一个矩阵 matrix = np.array([[1, 2], [3, 4]]) print(matrix) # [[1 2] # [3 4]] # 求矩阵的逆 inverse_matrix = np.linalg.inv(matrix) print(inverse_matrix) # [[-2. 1. ] # [ 1.5 -0.5]] 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118975.html

(0)
上一篇 2025-11-08 22:26
下一篇 2025-11-08 22:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信