Функция linalg.eigvals
Функция linalg.eigvals вычисляет собственные значения для квадратной матрицы или пакета матриц. Она возвращает одномерный тензор, содержащий собственные значения, отсортированные в порядке убывания их абсолютных значений. Первым параметром функция принимает квадратную матрицу или пакет матриц. Вторым параметром можно передать имя устройства, на котором будут выполняться вычисления.
Синтаксис
torch.linalg.eigvals(input, *, out=None)
Пример
Давайте вычислим собственные значения для матрицы размером 2×2:
import torch
t = torch.tensor([[1, 2], [3, 4]], dtype=torch.float)
res = torch.linalg.eigvals(t)
print(res)
Результат выполнения кода:
tensor([-0.3723, 5.3723])
Пример
Давайте вычислим собственные значения для пакета матриц:
import torch
t = torch.tensor([
[[1, 2], [3, 4]],
[[5, 6], [7, 8]]
], dtype=torch.float)
res = torch.linalg.eigvals(t)
print(res)
Результат выполнения кода:
tensor([[-0.3723, 5.3723],
[-0.3723, 13.3723]])
Пример
Давайте вычислим собственные значения для комплексной матрицы:
import torch
t = torch.tensor([[1, -1], [1, 1]], dtype=torch.complex64)
res = torch.linalg.eigvals(t)
print(res)
Результат выполнения кода:
tensor([1.+1.j, 1.-1.j])
Пример
Давайте вычислим собственные значения для матрицы с действительными числами и получим комплексные значения:
import torch
t = torch.tensor([[0, -1], [1, 0]], dtype=torch.float)
res = torch.linalg.eigvals(t)
print(res)
Результат выполнения кода:
tensor([0.+1.j, 0.-1.j])