使用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 ]]]

更新於:2023年8月7日

瀏覽量:93

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.