使用 NumPy 的 inv() 函数计算矩阵的逆矩阵

numpyserver side programmingprogramming

逆矩阵是与原矩阵相乘时给出乘法恒等式的矩阵。它用 A-1 表示。可以计算 n x n 大小的方阵的逆矩阵。

计算逆矩阵的数学公式如下。

A-1 . A = A . A-1 = I

其中,

  • A为原矩阵。

  • A-1为原矩阵A的逆矩阵。

  • I为单位矩阵。

设原矩阵为A,大小为2x2,元素为,则A-1的计算公式如下。

A-1 = 1/ (ad - bc) * [[d, -b], [-c, a]]

其中,

  • a, b, c, d为矩阵A中的元素矩阵

  • A-1 是原矩阵 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("输入数组:",a)
inverse = np.linalg.inv(a)
print("给定输入矩阵的逆:", inverse)

输出

输入数组:[[22 1]
[14 5]]
给定输入矩阵的逆:[[ 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("输入数组:",a)
inverse = np.linalg.inv(a)
print("给定输入矩阵的逆:", 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-d 数组的逆。以下是供参考的代码。

import numpy as np
a = np.array([[[34,23],[90,34]],[[43,23],[10,34]]])
print("输入数组:",a)
inverse = np.linalg.inv(a)
print("给定数组的逆:",inverse)

输出

输入数组: [[[34 23]
  [90 34]][[43 23]
  [10 34]]]
给定数组的逆: [[[-0.03719912  0.02516411]
  [ 0.09846827 -0.03719912]][[ 0.0275974  -0.01866883]
  [-0.00811688  0.0349026 ]]]


相关文章