Исследование собственных векторов в Python: полное руководство по методам и примерам кода

Собственные векторы — это важное понятие в линейной алгебре, широко используемое в различных областях, таких как наука о данных, машинное обучение и физика. В этой статье мы углубимся в собственные векторы и рассмотрим несколько методов их вычисления с помощью Python. Мы предоставим примеры кода с использованием популярных библиотек, таких как NumPy, что позволит вам применить эти методы в ваших собственных проектах.

  1. Метод разложения по собственным значениям:
    Метод разложения по собственным значениям является одним из фундаментальных методов поиска собственных векторов. В Python мы можем использовать функцию numpy.linalg.eigдля вычисления собственных значений и собственных векторов данной матрицы. Вот пример:
import numpy as np
# Create a matrix
matrix = np.array([[3, 1], [1, 2]])
# Compute eigenvalues and eigenvectors
eigenvalues, eigenvectors = np.linalg.eig(matrix)
# Print the eigenvectors
for i in range(len(eigenvectors)):
    print("Eigenvector {}: {}".format(i+1, eigenvectors[:, i]))
  1. Метод степенной итерации:
    Метод степенной итерации представляет собой итерационный алгоритм для поиска доминирующего собственного вектора матрицы. Вот пример реализации:
import numpy as np
def power_iteration(matrix, num_iterations):
    # Initialize a random vector
    vector = np.random.rand(matrix.shape[0], 1)
    for _ in range(num_iterations):
        # Compute matrix-vector multiplication
        vector = matrix.dot(vector)
        # Normalize the vector
        vector /= np.linalg.norm(vector)
    return vector
# Create a matrix
matrix = np.array([[3, 1], [1, 2]])
# Compute the dominant eigenvector
dominant_eigenvector = power_iteration(matrix, 100)
print("Dominant Eigenvector:", dominant_eigenvector.flatten())
  1. Метод итерации QR:
    Метод итерации QR — это еще один итерационный подход, который находит все собственные векторы матрицы. Вот пример реализации:
import numpy as np
def qr_iteration(matrix, num_iterations):
    for _ in range(num_iterations):
        # Compute QR decomposition
        Q, R = np.linalg.qr(matrix)
        # Update the matrix
        matrix = R.dot(Q)
    return np.diag(matrix)
# Create a matrix
matrix = np.array([[3, 1], [1, 2]])
# Compute the eigenvalues
eigenvalues = qr_iteration(matrix, 100)
print("Eigenvalues:", eigenvalues)

В этой статье мы рассмотрели различные методы вычисления собственных векторов в Python. Мы рассмотрели метод разложения по собственным значениям, метод степенной итерации и метод итерации QR, предоставив примеры кода для каждого из них. Поняв и применив эти методы, вы сможете использовать возможности собственных векторов в своих проектах по анализу данных и машинному обучению.