线性代数 —— 矩阵与矩阵运算

【矩阵】

1.定义

n*m 个数 a_{ij } 排成的 n 行 m 列的数称为 n 行 m 列矩阵记作:A=\begin{bmatrix}a_{11} &a_{12} &... &a_{1m} \\ a_{21} & a_{22} &... &a_{2m} \\... & ... & ... & ...\\ a_{n1} &a_{n2} &... & a_{nm} \end{bmatrix}

其中,n*m 个数称为矩阵 A 的元素,数 a_{ij } 位于矩阵的第 i 行第 j 列,称为矩阵 A 的 (i,j) 元

2.常见矩阵

  • 实矩阵:元素是实数的矩阵
  • 复矩阵:元素是复数的矩阵
  • n 阶方阵:行数列数相等且为 n 的矩阵,其中 i=j 的元素 a_{ij } 组成的斜线称为主对角线
  • 对角矩阵:除主对角线外的元素皆为 0
  • 上三角矩阵:主对角线左下方元素全为 0
  • 下三角矩阵:主对角线右上方元素全为 0
  • 对称矩阵:转置矩阵与自身相等的方阵,即 A=A^T
  • 反对称矩阵:转置矩阵与自身取负后相等的方阵,即A=-A^T
  • 单位矩阵:主对角线元素全为 1,其余元素全为 0,记为 E
  • 正交矩阵:满足 AA^T=E 的矩阵 A,其 |A|=\pm 1
  • 逆矩阵:在 n 阶方阵中,可逆矩阵(所有行向量线性无关) A 存在唯一逆元 A^{-1},使得 AA^{-1}=A^{-1}A=E

3.N 阶方阵性质

基本变化规律:

  • 垂直对称:f'(i,j)=f(i,n+1-j)
  • 水平对称:f'(i,j)=f(n+1-i,j)
  • 主对角线对称:f'(i,j)=f(j,i)
  • 辅对角线对称:f'(i,j)=f(n+1-i,n+1-i)

对称旋转规律:

  • 中心对称:水平变换与垂直变换合并,即 f'(i,j)=f(n+1-i,n+1-j )
  • 顺时针旋转 90 度:水平对称与对角线对称合并,即 f'(i,j)=f(n+1-j,i)
  • 逆时针旋转 90 度:垂直对称与对角线对称合并,即 f'(i,j)=f(j,n+1-i)

【矩阵的基本运算】

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 的行换为同序数的列所得到的新矩阵,其满足以下运算律:

  • (A^T)^T=A
  • (\lambda A)^T=\lambda A^T
  • (AB)^T=B^TA^T

例如:

\begin{bmatrix}2 &3 &4 \\ 0&-2 &8 \end{bmatrix}^T=\begin{bmatrix} 2 &0 \\3 &-2 \\4 &8 \end{bmatrix}

4.共轭

对于复矩阵,共轭矩阵定义为: A_{ij}=\overline{A}_{i,j}

例如:

A=\begin{bmatrix}2+i &4 \\ 2-2i&-2 \end{bmatrix},\:\:\bar{A}=\begin{bmatrix} 2-i &4 \\2+2i &-2 \end{bmatrix}

5.共轭转置

对于复矩阵,共轭转置矩阵定义为:A^*_{ij}=\bar{A}_{ji},即:A^*=(\overline{A})^T=\overline{A^T}

例如:

A=\begin{bmatrix}2+i &4 &i\\ 2-2i&-2 &9\end{bmatrix},\:\:A^*=\begin{bmatrix} 2-i &2+2i \\4 &-2\\-i&9 \end{bmatrix}

【矩阵的乘法】

只有当第一个矩阵 A 的列数与第二个 B 矩阵的行数相等时才能定义。

A 是 m×n  矩阵,B 是 n×p 矩阵,他们的乘积 C=AB 是一个 m×p 矩阵,其第 i 行第 j 列的元素值为 A 的第 i 行与 B 的第 j 列的乘积

即:c_{ij}=a_{i1}b_{1j}+a_{i2}b_{2j}+...+a_{in}b_{nj}=\sum_{r=1}^na_{ir}b_{r,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;
}

 

posted @   老程序员111  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示