酷炫数字魔法阵——基本操作

话不多说,先上定义:

【我给的定义】 矩阵就是一个数表,是一种很酷炫的数据类型,具有神奇的魔法

矩阵跟行列式是有本质区别的,行列式是一个表达式,而矩阵是一种数据类型。

有一些特殊的矩阵,这里总结一下:

  1. 方阵($A_{n \times n}$)
  2. 对角阵($\begin{bmatrix}a_{11}&\cdots&0\\\vdots&\ddots&\vdots\\0&\cdots&a_{nn}\end{bmatrix}$)
  3. 上三角阵、下三角阵($\begin{bmatrix} a_{11}&\cdots&a_{1n}\\ \vdots&\ddots&\vdots\\ 0&\cdots&a_{nn} \end{bmatrix}$、$\begin{bmatrix} a_{11}&\cdots&0\\ \vdots&\ddots&\vdots\\ a_{n1}&\cdots&a_{nn} \end{bmatrix}$)
  4. 单位阵$E_n=\begin{bmatrix} 1&\cdots&0\\ \vdots&\ddots&\vdots\\ 0&\cdots&1 \end{bmatrix}$
  5. 对于矩阵$A_{m \times n}$,当$m=1$时称为行向量($A_{1 \times n}$);当$n=1$时称为列向量($A_{m \times 1}$)
  6. 标量矩阵($\begin{bmatrix} k&\cdots&0\\ \vdots&\ddots&\vdots\\ 0&\cdots&k \end{bmatrix}$)
  7. 零矩阵($0_{m \times n}=\begin{bmatrix} 0&\cdots&0\\ \vdots&\ddots&\vdots\\ 0&\cdots&0 \end{bmatrix}$)
  8. 实矩阵:元素都是实数
  9. 复矩阵:元素都是复数~~(我高考复数选择错了呜啊)~~

矩阵的常规加减、数乘、阵乘运算么,公式太不直观了,还是代码来得直观~~(滑稽)~~

【加法】

Mat operator +(const Mat tmp)const//矩阵加法 
{
	Mat ans=Mat(m,n);
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
			ans.M[i][j]=M[i][j]+tmp.M[i][j];
	return ans;
}

【减法】

Mat operator -(const Mat tmp)const//矩阵减法 
{
	Mat ans=Mat(m,n);
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
			ans.M[i][j]=M[i][j]-tmp.M[i][j];
	return ans;
} 

【数乘】(矩阵乘数)

Mat operator *(const double tmp)const//矩阵乘数 
{
	Mat ans=Mat(m,n);
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
			ans.M[i][j]=M[i][j]*tmp;
	return ans;
}

【矩阵乘法】

Mat operator *(const Mat tmp)const//矩阵乘法 
{
	Mat ans=Mat(m,tmp.n);
	for(int i=1;i<=m;i++)
		for(int j=1;j<=tmp.n;j++)
			for(int k=1;k<=n;k++)
				ans.M[i][j]+=M[i][k]*tmp.M[k][j];
	return ans;
}

好了,我们可以看到加法、减法、数乘还是和我们的想法很接近的,可是矩阵乘法确实如此诡异,这是为什么捏?正所谓万物的存在都有它的原因,阵乘之所以如此诡异,是为了考试出题难完成一些非阵乘不可的任务。

柿子捡软的捏,先分析加法减法数乘的性质

用张超老师的话说,取名字是为了让你们好记

【加减法】

  1. $A \pm B=B \pm A$(加减交换律)
  2. $(A \pm B) \pm C=A \pm (B \pm C)$(加减结合律)
  3. $A \pm 0_{m \times n}=A$
  4. $A+(-A)=A-A=0_{m \times n}$

【数乘】

  1. $(kl)A=k(lA)$(数乘结合律)
  2. $(k+l)A=kA+lA$(阵·分配律)
  3. $k(A+B)=kA+kB$(数·分配律)
  4. $1A=A$

所谓世有非常之人,然后有非常之事。有非常之阵乘,然后有非常之性质。如此诡异的乘法规则,当然会有一些奇葩的性质等你去背啦~~(就多一条而已嘛)~~

  1. $(AB)C=A(BC)$(结合律)
  2. $A(B+C)=AB+AC,(A+B)C=AB+BC$(左右分配律)
  3. $k(AB)=(kA)B=A(kB)$(数·结合律)
  4. $E_mA_{m \times n}=A_{m \times n}E_n=A_{m \times n}$
  5. $0_{p \times m}A_{m \times n}=0_{p \times n},A_{m \times n}0_{n \times q}=0_{m \times q}$

与常数乘法比较,矩阵乘法具有许多特殊性,主要有:

  1. 矩阵乘法不满足交换律,即$AB\neq BA$
  2. 矩阵乘法不满足消去律,即由$AB=AC$不能推出$B=C$
  3. 矩阵乘法有零因子,即存在矩阵$A \neq 0,B\neq 0,s.t.AB=0$,故不能由$AB=0$推出$A=0$或$B=0$

有乘法就有乘幂,由于只有“前列等于后行”的矩阵才能相乘,于是只有方阵才能乘幂也就不奇怪了

方阵乘幂的性质:

  1. $A^kA^l=A^{l+k}$
  2. $(A^l)^k=A^{lk}$

当然,由于矩阵乘法具有结合律,方阵的幂可以由快速幂来求($O(logn)$)这个性质可以应用于求递推数列(如斐波那契数列),这种用矩阵快速幂来快速求解递推数列的方法称为矩阵加速

另外,作为乘法不满足交换律的自然结果,一般说来$(AB)^k \neq A^kB^k$

以上就是酷炫数字魔法阵的基本运算~~(还有高级运算以后再说)~~,还算很简单吧

下面介绍方阵的行列式行列式的乘法公式

其实也没啥好介绍的,矩阵是个数表吧,把方阵当成行列式就行了。。。

【我给的定义】 把方阵$A$旁边的括号偷偷换成竖线得到的行列式叫做方阵$A$的行列式,记作$det A$或$|A|$

【很重要的定理】 $|kA|=k^n|A|$

【行列式乘法公式】 $|AB|=|A||B|$

下面来介绍一下行列式的一个简单操作“转置”,我们把矩阵$A$的转置记作$A^T$或$A'$

emmm,还是直接上代码来的痛快

Mat T()//转置矩阵 
{
	Mat ans=Mat(n,m);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			ans.M[i][j]=M[j][i];
	return ans;
}

好了,看完代码基本就明白了,那么这个操作的性质:

  1. $(A^T)^T=A$(显而易见)
  2. $(A+B)^T=A^T+B^T$
  3. $(kA) ^T=kA^T$
  4. $(AB)^T=B^TA^T$
  5. $|A^T|=|A|$

如果一个矩阵$A$满足$A^T=A(A^T=-A)$,我们就称它为对称矩阵反称矩阵

如果一个矩阵$A$是复矩阵,那么由其所有元素的共轭复数组成的矩阵叫这个矩阵的共轭矩阵,记为$\overline{A}$

那么又共轭又转置的矩阵叫啥呢?共轭转置矩阵$(\overline{A})^T$!真聪明。。。

共轭矩阵满足:

  1. $\overline{A+B}=\overline{A}+\overline{B}$
  2. $\overline{kA}=\overline{k}\cdot \overline{A}$
  3. $\overline{AB}=\overline{A}\cdot \overline{B}$
  4. $|\overline{A}|=\overline{|A|}$

好了,矩阵的基本操作就这些了,再往后就开始难了

0%