如何使用 Python 中的 numpy 計算矩陣或 ndArray 的行列式?


在這篇文章中,我們將學習如何使用 Python 中的 numpy 庫來計算矩陣的行列式。矩陣的行列式是一個標量值,可以以緊湊的形式表示矩陣。它是線性代數中一個有用的量,在物理學、工程學和計算機科學等各個領域都有多種應用。

在這篇文章中,我們將首先考察行列式的定義和性質。然後,我們將學習如何使用 numpy 計算矩陣的行列式,並檢視一些示例,看看它在實踐中是如何工作的。

行列式的定義和性質

矩陣的行列式是一個標量值,可以用來以緊湊的形式描述矩陣的性質。它通常用 |A| 或 det(A) 表示,其中 A 是矩陣。行列式是線性代數中的一個基本概念,它具有一些重要的性質,使其成為數學計算中一個強大的工具。

  • 行列式最顯著的性質之一是它等於矩陣的特徵值的乘積。特徵值是一組特殊的標量值,表示矩陣如何作用於某些向量,它們線上性代數的許多應用中起著至關重要的作用。

  • 行列式的另一個重要性質是它等於上三角或下三角矩陣的對角線的乘積。三角矩陣是一個在對角線下方或上方具有零的矩陣,此性質在計算大型矩陣的行列式時很有用。

  • 行列式也可以透過取任何一行或一列的元素與相應符號的乘積之和來計算。此性質提供了一種計算行列式的替代方法,在矩陣不是三角形的情況下很有幫助。

  • 此外,行列式可以透過取矩陣主對角線上元素的乘積,再除以輔因子、子式或伴隨矩陣的行列式來計算。這些矩陣是從原始矩陣派生出來的,並且具有獨特的屬性,使它們有助於計算行列式。

使用 numpy 計算矩陣的行列式

要使用 numpy 計算矩陣的行列式,我們可以使用 linalg.det() 函式。此函式以矩陣作為輸入,並返回矩陣的行列式。讓我們看一個例子 -

import numpy as np
# create a 2x2 matrix
matrix = np.array([[5, 6], [7, 8]])
# calculate the determinant of the matrix
determinant = np.linalg.det(matrix)
print(determinant)

輸出

-2.000000000000005

程式碼解釋

如您所見,linalg.det() 函式計算矩陣的行列式並將其作為標量值返回。在本例中,矩陣的行列式為 -2.0。

計算高維矩陣的行列式

要計算高維矩陣的行列式,我們可以使用相同的 linalg.det() 函式。讓我們看一個例子 -

import numpy as np
# create a 3x3 singular matrix
matrix = np.array([[20, 21, 22], [23, 24, 25], [26, 27, 28]])
# calculate the determinant of the matrix
determinant = np.linalg.det(matrix)
print(determinant)

輸出

2.131628207280298e-14

程式碼解釋

如您所見,linalg.det() 函式也可用於計算高維矩陣的行列式。在本例中,矩陣的行列式為 0.0。

計算奇異矩陣的行列式

奇異矩陣是一個沒有逆矩陣的矩陣。奇異矩陣的行列式為 0,這意味著它不可逆。讓我們看一個例子 -

示例 1

在下面的示例中,linalg.det() 函式對奇異矩陣返回 0,這表明它不可逆。

import numpy as np
# create a 3x3 matrix
matrix = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])
# calculate the determinant of the matrix
determinant = np.linalg.det(matrix)
print(determinant)

輸出

0.0

示例 2

linalg.slogdet() 函式返回矩陣行列式的符號和對數。行列式是使用 LU 分解方法計算的,該方法比 linalg.det() 函式使用的方法更穩定、更準確。

使用 linalg.slogdet() 函式的一個優點是,它比 linalg.det() 函式更穩定、更準確,尤其是在大型矩陣中。但是,請記住,它返回行列式的對數,因此您需要取結果的指數才能獲得實際的行列式。

import numpy as np
# create a 3x3 matrix
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# calculate the determinant of the matrix using the linalg.slogdet() function
sign, determinant = np.linalg.slogdet(matrix)
print(determinant)

輸出

-inf

結論

本文教我們如何使用 Python numpy 計算矩陣的行列式。我們查看了行列式的定義和性質,並瞭解瞭如何使用 linalg.det() 函式計算矩陣的行列式。我們還查看了一些示例,看看它在實踐中是如何工作的。我們還學習瞭如何在 Python 中使用 numpy 計算矩陣的行列式。

行列式是一個標量值,可以用來以緊湊的形式表示矩陣,它在各個領域都有許多應用。要使用 numpy 計算矩陣的行列式,我們可以使用 linalg.det() 函式,該函式以矩陣作為輸入並返回行列式。或者,我們可以使用 linalg.slogdet() 函式,該函式使用 LU 分解方法返回行列式的符號和對數。這兩個函式都允許我們輕鬆地在 Python 中計算矩陣的行列式,並且它們是任何在科學和工程應用中使用矩陣的人的有用工具。

更新於: 2023-07-26

3K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

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