矩阵

矩阵: 长为n,宽为m,里面包含nm个元素。


矩阵数乘: kA,即为kA[i][j]

矩阵加法: C=A+B ,即为C[i][j]=A[i][j]+B[i][j]

类似的我们定义减法A+B为A+(-1)B


零矩阵:所有元素都为0的矩阵

向量: n或m为1的矩阵,n为1则为行向量,m为1则为列向量

矩阵可以看成若干个向量的结合体

向量点积: A=(x1,x2,……xn),B=(y1,y2,……yn),则AB向量点积为

A·B=x1y1+x2y2+……xn*yn

单位矩阵:对角线元素为1,其他元素都为0的矩阵,记为 I


矩阵运算律:

  • 加法结合律:A+(B+C)=(A+B)+C
  • 加法交换律:A+B=B+A
  • 数乘结合律:r(A+B)=rA+rB,(r+s)A=rA+sA
  • 单位元:IA=A

矩阵乘法:对于A[a,b]和B[b,c]的两矩阵相乘:

C=AB --> C[i][j]=A[i][1]B[1][j]+A[i][2]B[2][j]+……+A[i][b]B[b][j]

void mul(int M[maxn][maxn],int a[maxn][maxn],int b[maxn][maxn])
{
 rep(i,1,ax)
  rep(j,1,by)
  {
   M[i][j]=0;
   rep(k,1,ay) M[i][j]+=a[i][k]*b[k][j];
  }
}

矩阵乘法存在复杂度为O(nlog7)的算法,但太过繁琐,实际中O(n3)已足够

矩阵与列向量相乘可以看成是列向量的变换。

矩阵的幂可以用倍增优化。


矩阵的逆:对于矩阵A,满足AB=I的B称为A的逆矩阵。

对于2x2的矩阵,它的行列式为 det A=(a[1][1]a[2][2]-a[1][2]a[2][1])

一个2x2的矩阵式可逆的当且仅当它的行列式不为0

则它的逆矩阵为 1/(ad-bc) [d -b][-c a]

posted @ 2016-07-20 19:57  Krew  阅读(273)  评论(0)    收藏  举报