📜  矩阵乘法(1)

📅  最后修改于: 2023-12-03 15:27:17.685000             🧑  作者: Mango

矩阵乘法简介

在数学中,矩阵乘法是一种将两个矩阵相乘得到另一个矩阵的运算。矩阵乘法在计算机科学、物理学、工程学等领域中都有广泛的应用。

矩阵乘法的定义

设 $A$ 是一个 $n\times m$ 的矩阵,$B$ 是一个 $m\times p$ 的矩阵,则称由 $A$ 和 $B$ 相乘所得到的 $n\times p$ 的矩阵 $C$ 为 $A$ 和 $B$ 的乘积。

$$ C_{ij}=\sum_{k=1}^mA_{ik}B_{kj}\qquad(i=1,2,\cdots,n;j=1,2,\cdots,p) $$

其中,$C_{ij}$ 是矩阵 $C$ 的第 $i$ 行第 $j$ 列的元素,$A_{ik}$ 是矩阵 $A$ 的第 $i$ 行第 $k$ 列的元素,$B_{kj}$ 是矩阵 $B$ 的第 $k$ 行第 $j$ 列的元素。

矩阵乘法的实现

我们可以用编程语言来实现矩阵乘法。这里以 Python 语言为例,展示两种实现矩阵乘法的方式。

方式一:嵌套循环
def matrix_mult(A, B):
    n, m, p = len(A), len(A[0]), len(B[0])
    C = [[0] * p for _ in range(n)]
    for i in range(n):
        for j in range(p):
            for k in range(m):
                C[i][j] += A[i][k] * B[k][j]
    return C

嵌套循环的方法比较简单也比较直观,但是时间复杂度为 $O(n^3)$,当 $n$ 很大时,性能较差。

方式二:numpy 库
import numpy as np

def matrix_mult(A, B):
    A = np.array(A)
    B = np.array(B)
    C = np.dot(A, B)
    return C.tolist()

numpy 库是 Python 中用于科学计算的常用库之一,它提供了高效的矩阵计算工具。这种方法使用 numpy 库的 dot() 函数,时间复杂度为 $O(n^2)$,性能相对更好。

总结

矩阵乘法是一种重要的数学运算,在计算机科学、物理学、工程学等领域中都有广泛的应用。我们可以用编程语言来实现矩阵乘法,通常有两种方式:嵌套循环和使用 numpy 库,两种方式各有优缺点,可以根据实际情况选择使用。