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.