当前位置: 代码迷 >> 综合 >> 【线性代数】1.1矩阵及其运算合集
  详细解决方案

【线性代数】1.1矩阵及其运算合集

热度:90   发布时间:2023-09-22 07:29:35.0

矩阵及其运算合集

  • 1.矩阵的基本概念以及意义
    • 矩阵定义
    • 零矩阵
    • 单位矩阵
    • 对角矩阵
    • 两个矩阵相等
    • 行向量
    • 列向量
  • 2.矩阵的基本运算
    • 加法(减法)
    • 数乘
    • 乘法
  • 3.矩阵的迹
  • 4.矩阵的转置
  • 5.对称矩阵
  • 作业

1.矩阵的基本概念以及意义

矩阵定义

??m×nm\times nm×n个数排成如下mm\;mnn\;n列的一个表格

A=(a11a12?a1na21a22?a2n????am1am2?amn)\boldsymbol A=\begin{pmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{m1}&a_{m2}&\cdots&a_{mn}\end{pmatrix} A=??????a11?a21??am1??a12?a22??am2???????a1n?a2n??amn????????
称为是一个m×nm\times nm×n矩阵。当m=nm=nm=n时,称矩阵A为n阶矩阵或n阶方阵

零矩阵

??如果一个矩阵的所有元素都是0,即
A=(00?000?0????00?0)\boldsymbol A=\begin{pmatrix}0&0&\cdots&0\\0&0&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&0\end{pmatrix} A=??????00?0?00?0??????00?0???????
则称这个矩阵式零矩阵,可简记为O

单位矩阵

单位矩阵E:对角线上都为1,其他位置都为0的方阵
E=(10?001?0????00?1)\boldsymbol E=\begin{pmatrix}1&0&\cdots&0\\0&1&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1\end{pmatrix} E=??????10?0?01?0??????00?1???????

对角矩阵

对角矩阵:是一个主对角线之外的元素皆为0的方阵,diag(λ1,λ2,?,λn)diag(\lambda_1,\lambda_2,\cdots,\lambda_n)diag(λ1?,λ2?,?,λn?)
∧=(λ10?00λ2?0????00?λn)\boldsymbol\wedge=\begin{pmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n\end{pmatrix} =??????λ1?0?0?0λ2??0??????00?λn????????

两个矩阵相等

??两个m×nm\times nm×n型矩阵A=[aij],B=[bij]\boldsymbol A=\left[a_{ij}\right],\boldsymbol B=\left[b_{ij}\right]A=[aij?],B=[bij?],如果元素对应都相等,即aij=bija_{ij}=b_{ij}aij?=bij?(i=1,2,?,m;j=1,2,?,n)\left(i=1,2,\cdots,m;j=1,2,\cdots,n\right)(i=1,2,?,m;j=1,2,?,n),则称矩阵AB相等,记作A=B

行向量

α=[a1,a2,?,an]\alpha=\lbrack a_1,a_2,\cdots,a_n\rbrackα=[a1?,a2?,?,an?],1×n1\times n1×n型矩阵,即1行n列的矩阵。

列向量

α=[a1,a2,?,an]T\alpha={\lbrack a_1,a_2,\cdots,a_n\rbrack}^Tα=[a1?,a2?,?,an?]T,n×1n\times 1n×1型矩阵,即n行1列的矩阵。

2.矩阵的基本运算

加法(减法)

A=[aij],B=[bij]\boldsymbol A=\left[a_{ij}\right],\boldsymbol B=\left[b_{ij}\right]A=[aij?],B=[bij?]是两个m×nm\times nm×n,则m×nm\times nm×n矩阵C=[cij]=[aij+bij]\boldsymbol C=\left[c_{ij}\right]=\left[a_{ij}+b_{ij}\right]C=[cij?]=[aij?+bij?]称为矩阵A和矩阵B的和,记为A+B=C\boldsymbol A\boldsymbol+\boldsymbol B\boldsymbol=\boldsymbol CA+B=C.

要求:同型矩阵

数乘

A=[aij]\boldsymbol A=\left[a_{ij}\right]A=[aij?]m×nm\times nm×n矩阵,k是一个常数,则m×nm\times nm×n矩阵[kaij]\left[ka_{ij}\right][kaij?]称为k与矩阵A的数乘,记为kA.

运算律:

(1)A+B=B+A;(2)(A+B)+C=A+(B+C);(3)A+O=A;(4)A+(?A)=O;(5)1A=A;(6)λ(μA)=(λμ)A;(7)λ(A+B)=λA+λB;(8)(λ+μ)A=λA+μA;(1)A+B=B+A;\\(2)(A+B)+C=A+(B+C);\\(3)A+O=A;\\(4)A+(-A)=O;\\(5)1A=A;\\(6)\lambda(\mu A)=(\lambda\mu)A;\\(7)\lambda(A+B)=\lambda A+\lambda B;\\(8)(\lambda+\mu)A=\lambda A+\mu A;(1)A+B=B+A;(2)(A+B)+C=A+(B+C);(3)A+O=A;(4)A+(?A)=O;(5)1A=A;(6)λ(μA)=(λμ)A;(7)λ(A+B)=λA+λB;(8)(λ+μ)A=λA+μA;

乘法

A=[aij]\boldsymbol A=\left[a_{ij}\right]A=[aij?]m×nm\times nm×n矩阵,B=[bij]\boldsymbol B=\left[b_{ij}\right]B=[bij?]n×sn\times sn×s矩阵,那么m×sm\times sm×s矩阵C=[cij]\boldsymbol C=\left[c_{ij}\right]C=[cij?],其中cij=ai1b1j+ai2b2j+?+ainbnj=∑k=1naikbkjc_{ij}=a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots+a_{in}b_{nj}=\sum_{k=1}^na_{ik}b_{kj}cij?=ai1?b1j?+ai2?b2j?+?+ain?bnj?=k=1n?aik?bkj?,称为AB的乘积,记为C=AB

法则:
(1) A(BC)=(AB)CA(BC)=(AB)CA(BC)=(AB)C
(2) A(B+C)=AB+BC;(A+B)C=AC+BCA(B+C)=AB+BC;(A+B)C=AC+BCA(B+C)=AB+BC;(A+B)C=AC+BC
(3) (μA)(λB)=μλAB(\mu A)(\lambda B)=\mu\lambda AB(μA)(λB)=μλAB
(4) AE=EA=AAE=EA=AAE=EA=A
(5) OA=AO=OOA=AO=OOA=AO=O

注意

  • A的列数和B的行数相等;
  • 矩阵乘法不满足交换律,一般AB≠BAAB\neq BAAB?=BA;
  • AB=0AB=0AB=0不能得到A=OA=OA=OB=OB=OB=O;

3.矩阵的迹

  • 矩阵(方阵)A的迹:tr(A)=∑iaiitr(A)=\sum_ia_{ii}tr(A)=i?aii?,即矩阵主对角线元素之和 .
  • AB≠BAAB\neq BAAB?=BA,但是tr(AB)=tr(BA)tr(AB)=tr(BA)tr(AB)=tr(BA)

4.矩阵的转置

将矩阵A中元素的行序和列序交换顺序得到的新矩阵,称为A的转置矩阵。
公式
(AT)T=A;(A+B)T=AT+BT;(kA)T=kAT;(AB)T=BTAT.\left(A^T\right)^T=A;\\\left(A+B\right)^T=A^T+B^T;\\{(kA)}^T=kA^T;\\\left(AB\right)^T=B^TA^T.(AT)T=A;(A+B)T=AT+BT;(kA)T=kAT;(AB)T=BTAT.

5.对称矩阵

对称矩阵是一个方阵,其转置矩阵和自身相等,即AT=AA^T=AAT=Aaij=ajia_{ij}=a_{ji}aij?=aji?。对称阵特点:它的元素以主对角线为对称轴对应相等。

补充
如果x,y均为n维列向量,xT=[x1,x2,?,xn],yT=[y1,y2,?,yn]x^T=\left[x_1,x_2,\cdots,x_n\right],y^T=\left[y_1,y_2,\cdots,y_n\right]xT=[x1?,x2?,?,xn?],yT=[y1?,y2?,?,yn?],即:

x=[x1x2?xn],y=[y1y2?yn]x\;=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix},y=\begin{bmatrix}y_1\\y_2\\\vdots\\y_n\end{bmatrix}x=??????x1?x2??xn????????,y=??????y1?y2??yn????????

  • xTy=yTxx^Ty=y^TxxTy=yTx的结果是两个向量的点积
  • xyTxy^TxyTyxTyx^TyxT的结果是一个矩阵

xTy=yTx=x1y1+x2y2+?+xnynx^Ty=y^Tx=x_1y_1+x_2y_2+\cdots+x_ny_nxTy=yTx=x1?y1?+x2?y2?+?+xn?yn?

xTy=[x1,x2,?,xn][y1y2?yn]=x1y1+x2y2+?+xnynyTx=[y1,y2,?,yn][x1x2?xn]=x1y1+x2y2+?+xnynx^Ty=\left[x_1,x_2,\cdots,x_n\right]\begin{bmatrix}y_1\\y_2\\\vdots\\y_n\end{bmatrix}=x_1y_1+x_2y_2+\cdots+x_ny_n\\y^Tx=\left[y_1,y_2,\cdots,y_n\right]\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}=x_1y_1+x_2y_2+\cdots+x_ny_nxTy=[x1?,x2?,?,xn?]??????y1?y2??yn????????=x1?y1?+x2?y2?+?+xn?yn?yTx=[y1?,y2?,?,yn?]??????x1?x2??xn????????=x1?y1?+x2?y2?+?+xn?yn?

xyT=[x1x2?xn][y1,y2,?,yn]yxT=[y1y2?yn][x1,x2,?,xn]xy^T=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}\left[y_1,y_2,\cdots,y_n\right]\\yx^T=\begin{bmatrix}y_1\\y_2\\\vdots\\y_n\end{bmatrix}\left[x_1,x_2,\cdots,x_n\right]\\ xyT=??????x1?x2??xn????????[y1?,y2?,?,yn?]yxT=??????y1?y2??yn????????[x1?,x2?,?,xn?]

作业

1、
【线性代数】1.1矩阵及其运算合集
2、请自己独立证明tr(AB)=tr(BA)
3、编程实现函数求两个矩阵的乘法
4、学习Numpy中如何构造矩阵,以及两个矩阵如何做加减乘,如何求转置

1.证:(BTAB)T=BTATB=BTAB{(B^TAB)}^T=B^TA^TB=B^TAB(BTAB)T=BTATB=BTAB
2.证:
Am×n,Bn×m∵tr(AB)=∑i=1n(AB)ii=∑i=1m(∑j=1naijbij)∵tr(BA)=∑i=1n∑j=1m(BA)=∑i=1n(∑j=1mbijaji)∴tr(AB)=tr(BA)A_{m\times n},B_{n\times m}\\\because tr(AB)={\sum_{i=1}^n{(AB)}_{ii}}=\sum_{i=1}^m(\sum_{j=1}^na_{ij}b_{ij})\\\because tr(BA)=\sum_{i=1}^n\sum_{j=1}^m(BA)=\sum_{i=1}^n(\sum_{j=1}^mb_{ij}a_{ji})\\\therefore tr(AB)=tr(BA)Am×n?,Bn×m?tr(AB)=i=1n?(AB)ii?=i=1m?(j=1n?aij?bij?)tr(BA)=i=1n?j=1m?(BA)=i=1n?(j=1m?bij?aji?)tr(AB)=tr(BA)
证毕。
3.

def pro():res = [[0] * len(B[0]) for i in range(len(A))]for i in range(len(A)):for j in range(len(B[0])):for k in range(len(B)):res[i][j] += A[i][k] * B[k][j]return res
In [1]: import numpy as npIn [2]: A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])In [3]: B = np.array([[3, 4, 8], [5, 2, 1], [4, 5, 9]])In [4]: A+B
Out[4]:
array([[ 4,  6, 11],[ 9,  7,  7],[11, 13, 18]])In [5]: A-B
Out[5]:
array([[-2, -2, -5],[-1,  3,  5],[ 3,  3,  0]])In [6]: A*B
Out[6]:
array([[ 3,  8, 24],[20, 10,  6],[28, 40, 81]])In [7]: A.dot(B)
Out[7]:
array([[ 25,  23,  37],[ 61,  56,  91],[ 97,  89, 145]])In [8]: A.T
Out[8]:
array([[1, 4, 7],[2, 5, 8],[3, 6, 9]])
  相关解决方案