SciPy - Linalg
-
简述
SciPy 是使用优化的ATLAS LAPACK和BLAS图书馆。它具有非常快速的线性代数能力。所有这些线性代数例程都需要一个可以转换为二维数组的对象。这些例程的输出也是一个二维数组。SciPy.linalg 与 NumPy.linalg
scipy.linalg 包含 numpy.linalg 中的所有函数。此外,scipy.linalg 还具有其他一些 numpy.linalg 中没有的高级功能。与 numpy.linalg 相比,使用 scipy.linalg 的另一个优点是它始终使用 BLAS/LAPACK 支持进行编译,而对于 NumPy,这是可选的。因此,根据 NumPy 的安装方式,SciPy 版本可能会更快。 -
线性方程组
这scipy.linalg.solve特征求解线性方程 a * x + b * y = Z,对于未知的 x,y 值。例如,假设需要求解以下联立方程。x + 3y + 5z = 102x + 5y + z = 82x + 3y + 8z = 3为了求解上述方程的 x、y、z 值,我们可以使用矩阵求逆来找到解向量,如下所示。但是,最好使用linalg.solve命令,它可以更快且在数值上更稳定。求解函数接受两个输入“a”和“b”,其中“a”代表系数,“b”代表各自右侧的值,并返回解数组。让我们考虑下面的例子。上述程序将生成以下输出。 -
寻找行列式
方阵 A 的行列式通常表示为 |A| 是线性代数中常用的一个量。在 SciPy 中,这是使用det()功能。它接受一个矩阵作为输入并返回一个标量值。让我们考虑下面的例子。上述程序将生成以下输出。 -
特征值和特征向量
特征值-特征向量问题是最常用的线性代数运算之一。通过考虑以下关系,我们可以找到方阵 (A) 的特征值 (λ) 和相应的特征向量 (v) -Av = λvscipy.linalg.eig根据普通或广义特征值问题计算特征值. 此函数返回特征值和特征向量。让我们考虑下面的例子。上述程序将生成以下输出。 -
奇异值分解
奇异值分解 (SVD) 可以被认为是特征值问题对非正方形矩阵的扩展。这scipy.linalg.svd将矩阵“a”分解为两个酉矩阵“U”和“Vh”以及奇异值(实数,非负)的一维数组“s”,使得 a == U*S*Vh,其中 'S ' 是具有主对角线 's' 的适当形状的零矩阵。让我们考虑下面的例子。上述程序将生成以下输出。