线性代数——矩阵及其运算

矩阵的基本概念

A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋮ a m 1 a m 2 ⋯ a m n ] A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\\ \vdots & \vdots & & \vdots\\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} A=a11a21am1a12a22am2a1na2namn

  • 矩阵:m行n列的数表,aij代表第i行第j列的元素。
  • 方阵:m=n的矩阵。
  • 行向量:m=1的矩阵。 ( a 1 a 2 ⋯ a n ) \begin{pmatrix} a_1 & a_2 & \cdots & a_n \end{pmatrix} (a1a2an)
  • 列向量:n=1的矩阵。 [ a 1 a 2 ⋮ a m ] \begin{bmatrix} a_1\\ a_2\\ \vdots\\ a_m \end{bmatrix} a1a2am
  • 矩阵相等:形状相同,对应元素相等。
  • 零矩阵:所有元素都是0的矩阵。
  • 单位矩阵:对角线元素为1,其余元素为0的矩阵,通常用E或I表示。单位矩阵一定是方阵。
  • 对角矩阵:除对角线外其余元素都是0,记为 d i a g ( λ 1 λ 2 ⋯ λ n ) diag\begin{pmatrix} \lambda_1 & \lambda_2 & \cdots & \lambda_n \end{pmatrix} diag(λ1λ2λn)

矩阵的意义

  • 矩阵是一种阵列的表示,如图像、线性变换等。
  • 图像可以用矩阵表示,每个像素是0到255的数字,对应矩阵的一个元素。
  • { y 1 = a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n y 2 = a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n ⋯ ⋯ y m = a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n \begin{cases} y_1=a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n\\ y_2=a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n\\ \cdots\cdots\\ y_m=a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n \end{cases} y1=a11x1+a12x2++a1nxny2=a21x1+a22x2++a2nxnym=am1x1+am2x2++amnxn表示一个从变量x1,x2,…,xm到变量y1,y2,…,ym的线性变换,系数aij构成矩阵。

矩阵的基本运算(加,减,乘)

矩阵加(减)法

  • 条件:同型矩阵
  • 规则:对应元素相加(减),cij = aij + bij
  • 性质:
    交换律:A + B = B + A
    结合律:A + B + C = A + (B + C)

矩阵数乘

  • 数λ与矩阵A的乘积,记作λA或Aλ。
  • 规则:λ与每个元素相乘,cij = λaij
  • 性质(λ与μ是数,A与B是同型矩阵):
    λA = Aλ
    (λμ)A = λ(μA)
    (λ + μ)A = λA + μA
    λ(A + B) = λA + λB

矩阵乘法

  • 条件:Am×s,Bs×n
  • 规则: c i j = a i 1 b 1 j + a i 2 b 2 j + ⋯ + a i s b s j = ∑ k = 1 s a i k b k j c_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j}+\cdots+a_{is}b_{sj}=\sum _{k=1}^sa_{ik}b_{kj} cij=ai1b1j+ai2b2j++aisbsj=k=1saikbkj,乘积C是m×n矩阵。
  • 性质:
    不满足交换律,即AB ≠ BA
    (AB)C = A(BC)
    λ(AB) = (λA)B = A(λB),λ为数
    A(B + C) = AB + AC
    (B + C)A = BA + CA
    EA = AE = A,即单位矩阵在矩阵乘法中的作用类似于数1。

矩阵的迹(方阵)

  • t r ( A ) = ∑ a i i tr(A) = \sum a_{ii} tr(A)=aii,即矩阵的迹等于对角线元素的和。
  • tr(AB) = tr(BA),其中,Am×n,Bn×m
    证明:
    t r ( A B ) = t r ( C ) = ∑ i = 1 m c i i = ∑ i = 1 m ∑ j = 1 n a i j b j i tr(AB)=tr(C)=\sum_{i=1}^mc_{ii}=\sum_{i=1}^m\sum_{j=1}^na_{ij}b_{ji} tr(AB)=tr(C)=i=1mcii=i=1mj=1naijbji
    t r ( B A ) = t r ( C ˉ ) = ∑ i = 1 n c ˉ i i = ∑ i = 1 n ∑ j = 1 m b i j a j i = ∑ j = 1 n ∑ i = 1 m b j i a i j = ∑ i = 1 m ∑ j = 1 n a i j b j i = t r ( A B ) tr(BA)=tr(\bar{C})=\sum_{i=1}^n\bar{c}_{ii}=\sum_{i=1}^n\sum_{j=1}^mb_{ij}a_{ji}=\sum_{j=1}^n\sum_{i=1}^mb_{ji}a_{ij}=\sum_{i=1}^m\sum_{j=1}^na_{ij}b_{ji}=tr(AB) tr(BA)=tr(Cˉ)=i=1ncˉii=i=1nj=1mbijaji=j=1ni=1mbjiaij=i=1mj=1naijbji=tr(AB)

矩阵的转置

  • A的转置记作AT
  • aTij = aji
  • 性质:
    (AT)T = A
    (A + B)T = AT + BT
    (λA)T = λAT
    (AB)T = BTAT
  • 若X是n维行向量,Y是n维列向量,则XTY = YTX
    证明:
    X T Y = ( x 1 x 2 ⋯ x n ) [ y 1 y 2 ⋮ y n ] = x 1 y 1 + x 2 y 2 + ⋯ + x n y n = k , ( k 是 一 个 数 ) X^TY = \begin{pmatrix} x_1 & x_2 & \cdots & x_n \end{pmatrix} \begin{bmatrix}y_1\\ y_2\\ \vdots\\ y_n\end{bmatrix}=x_1y_1+x_2y_2+\cdots+x_ny_n=k,(k是一个数) XTY=(x1x2xn)y1y2yn=x1y1+x2y2++xnyn=k,(k)
    Y T X = ( Y T X ) T = X T Y Y^TX =(Y^TX)^T=X^TY YTX=(YTX)T=XTY

对称矩阵(方阵)

  • A为n阶方阵,若AT = A,即aij = aji,则A为对称矩阵。
  • 特点:元素以对角线为对称轴,对应相等。
  • 【例1】设列向量X = (x1,x2,…,xn)T,满足XTX = 1,E为n阶单位阵,H = E - 2XXT,证明H是对称阵,且HHT = E.
    证:
    H T = ( E − 2 X X T ) T = E T − ( 2 X X T ) T = E − 2 ( X X T ) T = E − 2 X X T = H H^T=(E-2XX^T)^T=E^T-(2XX^T)^T=E-2(XX^T)^T=E-2XX^T=H HT=(E2XXT)T=ET(2XXT)T=E2(XXT)T=E2XXT=H
    H H T = H H = ( E − 2 X X T ) ( E − 2 X X T ) = E ⋅ E − 2 X X T − 2 X X T + 4 X X T X X T = E − 4 X X T + 4 X ( X T X ) X T = E − 4 X X T + 4 X X T = E HH^T=HH=(E-2XX^T)(E-2XX^T)=E\cdot E-2XX^T-2XX^T+4XX^TXX^T=E-4XX^T+4X(X^TX)X^T=E-4XX^T+4XX^T=E HHT=HH=(E2XXT)(E2XXT)=EE2XXT2XXT+4XXTXXT=E4XXT+4X(XTX)XT=E4XXT+4XXT=E

Numpy实现矩阵运算

  • 与ndarray的操作基本相同

Numpy构造矩阵 np.mat

import numpy as np

m1 = np.mat([[1, 2, 3],
             [4, 5, 6],
             [7, 8, 9]])
a = np.diag([1, 2, 3])    # 对角阵
m2 = np.mat(a)  # 是映像,不是副本
m2[0, 0] = 100  # 不能用m2[0][0]
print(m1)
print(m2)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[100   0   0]
 [  0   2   0]
 [  0   0   3]]

Numpy实现矩阵加(减)法

  • 对应元素相加
print(m1 + m2)
[[101   2   3]
 [  4   7   6]
 [  7   8  12]]

Numpy实现矩阵乘法

矩阵数乘

print(2*m1)
[[ 2  4  6]
 [ 8 10 12]
 [14 16 18]]

对应元素相乘 np.multiply

print(np.multiply(m1, m2))
[[100   0   0]
 [  0  10   0]
 [  0   0  27]]

矩阵乘法 *

print(m1 * m2)    # *对矩阵执行矩阵乘法运算,对ndarray执行对应位置相乘
[[100   4   9]
 [400  10  18]
 [700  16  27]]

numpy实现矩阵转置 m.T

print(m1.T)
[[1 4 7]
 [2 5 8]
 [3 6 9]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值