线性代数

线性代数

矩阵四则运算

矩阵

  • 矩阵:就是高维数组
  • 向量:一维数组,通常用列向量表示,即这个数组的形状是 \(n\times1\)​ 的
  • 矩阵的四则运算包括加法、减法、乘法和数乘,它们遵循特定的规则

矩阵加法

  • 需要两个相同(指维度相同,即行数和列数)的矩阵

  • 矩阵加法是对应元素相加

    \(A\)\(P\times M\) 的矩阵, \(B\)\(P\times M\) 的矩阵,设矩阵 \(C\) 中的第 \(i\) 行第 \(j\) 列元素可以表示为:

    \(C_{i,j}=A_{i,j}+B_{i,j}\)

    例如: \(A=[[1,2],[3,4]]\)\(B=[[5,6],[7,8]]\)

    \(A+B=[[1+5,5+6],[1+7,4+8]]=[[6,8],[10,12]]\)

矩阵减法

  • 与加法类似,矩阵减法也要求两个矩阵具有相同的维度,然后进行对应元素相减

矩阵乘法

矩阵乘法的基本规则

  • 矩阵乘法并不像加减法那样简单对应元素相乘,而是有更严格的规则

  • 设矩阵 \(A(P\times M)\) 和矩阵 \(B(M\times Q)\) ,要计算 \(A*B\) ,其结果矩阵 \(C(P\times Q)\) 中的每个元素 \(C_{i,j}\) 是由矩阵 \(A\) 的第 \(i\) 行和矩阵 \(B\) 的第 \(j\) 列对应元素按顺序相乘再求和得到的

    \(A\)\(P\times M\) 的矩阵, \(B\)\(M\times Q\) 的矩阵,设矩阵 \(C\) 中的第 \(i\) 行第 \(j\) 列元素可以表示为:

    \(C_{i,j}=\sum^{M}_{k=1}A_{i,k}B_{k,j}\)

    例如: \(A=[[1,2],[3,4]]\)\(B=[[5,6],[7,8]]\)

    \(A*B=[[15+27,16+28],[35+47,36+48]]=[[19,22],[43,56]]\)

#include<algorithm>
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<string>
#include<vector>
#include<math.h>
#include<stack>
#include<queue>
#include<set>
#include<map>
using namespace std;
const int N=1e3+10;
int read(){
	int s=0,f=1;
	char _z=getchar();
	while(_z<'0'||_z>'9'){
		if(_z=='-')
		break;
		_z=getchar();
	}
	if(_z=='-'){
		f=-1;
		_z=getchar();
	}
	while(_z>='0'&&_z<='9'){
		s=(s<<3)+(s<<1)+(_z-'0');
		_z=getchar();
	}
	return s*f;
}
void print(int x){
	if(x<0){
		print(-x);
		return;
	}
	if(x>9)
	print(x/10);
	putchar(x%10+'0');
	return;
}
int a[N][N],b[N][N],c[N][N];
int main(){
	int p=read(),m=read(),q=read();
	for(int i=1;i<=p;i++)
	for(int j=1;j<=m;j++)
	a[i][j]=read();
	for(int i=1;i<=m;i++)
	for(int j=1;j<=q;j++)
	b[i][j]=read();
	for(int i=1;i<=p;i++)
	for(int j=1;j<=q;j++)
	for(int k=1;k<=m;k++)
	c[i][j]+=a[i][k]*b[k][j];
	for(int i=1;i<=p;i++){
		for(int j=1;j<=q;j++)
		print(c[i][j]),putchar(' ');
		puts("");
	}
	return 0;
}

矩阵乘法的性质

  • 结合律: \(A*B*C=A*(B*C)\)

  • 不满足交换律: \(A*B\ne B*A(通常情况下)\)

    例如: \(A\) 的形状为 \(n\times1\)\(B\) 的形状为 \(1\times n\) 时, \(A*B\) 的形状为 \(n\times n\) ,而 \(B*A\) 的形状为 \(1\times1\)

  • 单位矩阵 \(E=diag(1)\)

数乘(标量乘法)

  • 一个标量(实数) \(k\) 与矩阵 \(A\) 相乘,就是将矩阵 \(A\) 的所有元素都乘以这个标量

    \(A\)\(P\times M\) 的矩阵, \(k\) 为标量,设矩阵 \(C\) 中的第 \(i\) 行第 \(j\) 列元素可以表示为:

    \(C_{i,j}=A_{i,j}\times k\)

    例如: \(A=[[1,2],[3,4]]\)\(k=5\)

    \(A*k=[[1\times5,2\times5],[3\times5,4\times5]]=[[5,10],[15,20]]\)

以上就是在数学中矩阵的基本四则运算规则。

posted @ 2024-02-20 15:09  liuqichen121  阅读(132)  评论(0)    收藏  举报