使用NumPy的inv()函数计算矩阵的逆
逆矩阵是一个与原矩阵相乘得到单位矩阵的矩阵。它表示为A⁻¹。只有n x n大小的方阵才能计算逆矩阵。
计算逆矩阵的数学公式如下所示。
A-1 . A = A . A-1 = I
其中,
A是原矩阵。
A⁻¹是原矩阵A的逆。
I是单位矩阵。
让我们将原矩阵设为大小为2 x 2的矩阵A,其元素为,则计算A⁻¹的公式如下。
A-1 = 1/ (ad - bc) * [[d, -b], [-c, a]]
其中,
a、b、c、d是矩阵中的元素
A⁻¹是原矩阵A的逆。
计算矩阵逆的最通用公式如下所示。
A^-1 = (1/det(A)) * adj(A)
其中,
det(A)是矩阵A的行列式。
adj(A)是A的伴随矩阵,它是矩阵辅因子的转置。
NumPy中的inv()函数
在Python中,NumPy有一个名为linalg的模块,其中包含一个名为inv()的函数,用于计算给定矩阵的逆。
语法
以下是将inv()函数应用于数组以计算矩阵逆的语法。
import numpy as np np.linalg.inv(arr)
其中,
arr是输入数组。
示例
要计算给定数组的逆,我们必须将其作为参数传递给inv()函数,如下例所示:
import numpy as np
a = np.array([[22,1],[14,5]])
print("The input array:",a)
inverse = np.linalg.inv(a)
print("The Inverse of the given input matrix:", inverse)
输出
The input array: [[22 1] [14 5]] The Inverse of the given input matrix: [[ 0.05208333 -0.01041667] [-0.14583333 0.22916667]]
示例
inv()函数只接受方阵,例如2 x 2、3 x 3等。让我们来看一个例子,我们将大小为3 x 2的数组传递给函数,则输出将是一个错误,因为该函数只接受方阵。
import numpy as np
a = np.array([[22,1,7],[14,5,2]])
print("The input array:",a)
inverse = np.linalg.inv(a)
print("The Inverse of the given input matrix:”, inverse)
错误
File "/home/cg/root/19762/main.py", line 5
print("The Inverse of the given input matrix:”, inverse)
^
SyntaxError: unterminated string literal (detected at line 5)
示例
让我们再来看一个例子,了解inv()函数如何计算n x n大小的3维数组的逆。以下代码供参考。
import numpy as np
a = np.array([[[34,23],[90,34]],[[43,23],[10,34]]])
print("The input array:",a)
inverse = np.linalg.inv(a)
print("The inverse of the given array:",inverse)
输出
The input array: [[[34 23] [90 34]][[43 23] [10 34]]] The inverse of the given array: [[[-0.03719912 0.02516411] [ 0.09846827 -0.03719912]][[ 0.0275974 -0.01866883] [-0.00811688 0.0349026 ]]]
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP