РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
245 of 541 menu

Функция linalg.eig

Функция linalg.eig вычисляет собственные значения и собственные векторы квадратной матрицы. Первым параметром функция принимает квадратную матрицу или массив, который можно интерпретировать как матрицу. Возвращает кортеж из двух элементов: массив собственных значений и массив собственных векторов, где каждый столбец соответствует собственному вектору.

Синтаксис

np.linalg.eig(a)

Пример

Вычислим собственные значения и векторы для матрицы 2x2:

import numpy as np arr = np.array([[1, 2], [3, 4]]) eigenvalues, eigenvectors = np.linalg.eig(arr) print("eigenvalues:", eigenvalues) print("eigenvectors:") print(eigenvectors)

Результат выполнения кода:

eigenvalues: [-0.37228132 5.37228132] eigenvectors: [[-0.82456484 -0.41597356] [ 0.56576746 -0.90937671]]

Пример

Используем функцию для проверки соотношения A·v = λ·v для первого собственного вектора:

import numpy as np arr = np.array([[1, 2], [3, 4]]) eigenvalues, eigenvectors = np.linalg.eig(arr) v = eigenvectors[:, 0] lambda_ = eigenvalues[0] res = np.dot(arr, v) expected = lambda_ * v print("A * v:", res) print("lambda * v:", expected) print("difference:", np.allclose(res, expected))

Результат выполнения кода:

A * v: [0.30697009 -0.21062466] lambda * v: [0.30697009 -0.21062466] difference: True

Пример

Рассмотрим случай вырожденной матрицы с кратными собственными значениями:

import numpy as np arr = np.array([[2, 1], [0, 2]]) eigenvalues, eigenvectors = np.linalg.eig(arr) print("eigenvalues:", eigenvalues) print("eigenvectors:") print(eigenvectors)

Результат выполнения кода:

eigenvalues: [2. 2.] eigenvectors: [[1. 0.] [0. 1.]]

Пример

Работа с комплексными собственными значениями для вещественной матрицы:

import numpy as np arr = np.array([[0, -1], [1, 0]]) eigenvalues, eigenvectors = np.linalg.eig(arr) print("eigenvalues:", eigenvalues) print("eigenvectors:") print(eigenvectors)

Результат выполнения кода:

eigenvalues: [0.+1.j 0.-1.j] eigenvectors: [[0.70710678+0.j 0.70710678-0.j ] [0. -0.70710678j 0. +0.70710678j]]

Смотрите также

  • функцию eigh,
    которая вычисляет собственные значения и векторы для эрмитовых и симметричных матриц
  • функцию eigvals,
    которая вычисляет только собственные значения без векторов
  • функцию eigvalsh,
    которая вычисляет собственные значения для эрмитовых матриц
  • функцию svd,
    которая выполняет сингулярное разложение матрицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить