PyTorch – 如何計算方陣的行列式?


要計算方陣的行列式,我們可以使用 **torch.linalg.det()** 方法。它返回一個包含計算出的行列式的新張量。它接受一個方陣、一批方陣以及方陣的批次。它支援 **float、double、cfloat** 和 **cdouble** 資料型別的矩陣。

我們也可以使用 **torch.det()** 方法來計算行列式。它是 **torch.linalg.det()** 方法的別名。

語法

torch.linalg.det(mat)
torch.det(mat)

其中 **mat** 是一個方陣或方陣的批次/批次。矩陣是一個二維的 torch 張量。

步驟

我們可以使用以下步驟來計算方陣的行列式:

  • 匯入所需的庫。在以下所有示例中,所需的 Python 庫為 **torch**。確保您已安裝它。

import torch
  • 定義一個方陣。這裡,我們定義了一個隨機數的方陣(大小為 3×3 的二維張量)。

tensor = torch.randn(3,3)
  • 使用 **torch.linalg.det(mat)** 或 **torch.det(mat)** 計算方陣的行列式。mat 是一個方陣或方陣的批次/批次。可以選擇將此值賦給一個新的變數。

det_mat = torch.linalg.det(mat)
  • 列印計算出的矩陣行列式。

print("Determinant:", det_mat)

示例 1

在這個示例中,我們計算了一個大小為 3×3 的方陣的行列式。

# import required library
import torch

# create a 3x3 square matrix
mat = torch.randn(3,3)

# print the above created matrix
print("Matrix:
", mat) # computet the determinant of the matrix det_mat = torch.linalg.det(mat) print("Determinant:
", det_mat)

輸出

它將產生以下輸出:

Matrix:
tensor([[ 0.1485, -1.5094, 1.4318],
    [-0.0838, -1.5691, 0.0387],
    [-2.1576, 1.6148, -0.9745]])
Determinant:
   tensor(-4.5740)

示例 2

在這個程式中,我們計算了兩批方陣的行列式。

# Python program to determine the determinant of
# a batch of square matrices
# import torch library
import torch

# create a batch of two 3x3 square matrices
mat = torch.randn(2,3,3)

# print the above created batch of matrices
print("Batch of Matrices:
", mat) # compute the determinants of the batch of matrices d = torch.linalg.det(mat) # print the computed determinants print("Determinants:
", d)

輸出

它將產生以下輸出:

Batch of Matrices:
   tensor([[[-0.1068, -1.2593, 0.6575],
      [ 1.3248, 0.3064, 0.2736],
      [-1.4946, -0.5549, -0.6089]],

      [[ 0.6121, -0.1686, 2.3977],
      [-0.4527, 1.1430, 1.6656],
      [ 0.9752, -1.6121, -0.1512]]])
Determinants:
   tensor([-0.6795, 0.3528])

請注意,行列式張量中的元素數量與批次中的矩陣數量相同。

更新於: 2022年1月7日

863 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.