Собственные векторы — это важное понятие в линейной алгебре, широко используемое в различных областях, таких как наука о данных, машинное обучение и физика. В этой статье мы углубимся в собственные векторы и рассмотрим несколько методов их вычисления с помощью Python. Мы предоставим примеры кода с использованием популярных библиотек, таких как NumPy, что позволит вам применить эти методы в ваших собственных проектах.
- Метод разложения по собственным значениям:
Метод разложения по собственным значениям является одним из фундаментальных методов поиска собственных векторов. В 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]))
- Метод степенной итерации:
Метод степенной итерации представляет собой итерационный алгоритм для поиска доминирующего собственного вектора матрицы. Вот пример реализации:
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())
- Метод итерации 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, предоставив примеры кода для каждого из них. Поняв и применив эти методы, вы сможете использовать возможности собственных векторов в своих проектах по анализу данных и машинному обучению.