线性代数 —— 矩阵与矩阵运算
【矩阵】
1.定义
个数
排成的 n 行 m 列的数称为 n 行 m 列矩阵记作:
其中, 个数称为矩阵 A 的元素,数
位于矩阵的第 i 行第 j 列,称为矩阵 A 的 (i,j) 元
2.常见矩阵
- 实矩阵:元素是实数的矩阵
- 复矩阵:元素是复数的矩阵
- n 阶方阵:行数列数相等且为 n 的矩阵,其中 i=j 的元素
组成的斜线称为主对角线
- 对角矩阵:除主对角线外的元素皆为 0
- 上三角矩阵:主对角线左下方元素全为 0
- 下三角矩阵:主对角线右上方元素全为 0
- 对称矩阵:转置矩阵与自身相等的方阵,即
- 反对称矩阵:转置矩阵与自身取负后相等的方阵,即
- 单位矩阵:主对角线元素全为 1,其余元素全为 0,记为 E
- 正交矩阵:满足
的矩阵 A,其
- 逆矩阵:在 n 阶方阵中,可逆矩阵(所有行向量线性无关) A 存在唯一逆元
,使得
3.N 阶方阵性质
基本变化规律:
- 垂直对称:
- 水平对称:
- 主对角线对称:
- 辅对角线对称:
对称旋转规律:
- 中心对称:水平变换与垂直变换合并,即
- 顺时针旋转 90 度:水平对称与对角线对称合并,即
- 逆时针旋转 90 度:垂直对称与对角线对称合并,即
【矩阵的基本运算】
1.加减法
对于两个同型矩阵(两个矩阵的行列数相同),加减法就是将对应的 (i,j) 元做加减运算,其满足交换律和结合律:
- A+B=B+A
- (A+B)+C=A+(B+C)
struct Matrix{
int s[N][N];
};
Matrix add(Matrix A,Matrix B,int n){ //矩阵加法,n代表A、B两个矩阵是n阶方阵
Matrix temp;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
temp.s[i][j]=A.s[i][j]+B.s[i][j];
return temp;
}
Matrix sub(Matrix A,Matrix B,int n){ //矩阵减法,n代表A、B两个矩阵是n阶方阵
Matrix temp;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
temp.s[i][j]=A.s[i][j]-B.s[i][j];
return temp;
}
2.数乘
一个数乘以一个矩阵,只要将这个数乘到矩阵的每一个 (i,j) 元上,其满足结合律与分配律:
- (λμ)A=λ(μA)
- (λ+μ)A=λA+μA
- λ(A+B)=λA+λB
3.转置
将 A 的行换为同序数的列所得到的新矩阵,其满足以下运算律:
例如:
4.共轭
对于复矩阵,共轭矩阵定义为:
例如:
5.共轭转置
对于复矩阵,共轭转置矩阵定义为:,即:
例如:
【矩阵的乘法】
只有当第一个矩阵 A 的列数与第二个 B 矩阵的行数相等时才能定义。
A 是 m×n 矩阵,B 是 n×p 矩阵,他们的乘积 C=AB 是一个 m×p 矩阵,其第 i 行第 j 列的元素值为 A 的第 i 行与 B 的第 j 列的乘积
即:
矩阵的乘法满足结合律、分配律:
- (AB)C=A(BC)
- (A+B)C=AC+BC
- C(A+B)=CA+CB
struct Matrix{
int s[N][N];
};
Matrix mul(Matrix A,Matrix B,int n){//矩阵乘法,n代表A、B两个矩阵是n阶方阵
Matrix temp;//临时矩阵,存放A*B结果
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
temp.s[i][j]=0;
for(int k=1;k<=n;k++)
temp.s[i][j]=temp.s[i][j]+A.s[i][k]*B.s[k][j];
}
}
return temp;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验