Собственные векторы Python

#python #eigenvector

#python #собственный вектор

Вопрос:

 eigenvalues, eigenvectors = linalg.eig(K)
  

Как я могу напечатать только собственные векторы len(K) . Итак, если есть K матрица 2×2, я получаю 4 собственных вектора, как я могу напечатать только 2 из них, если есть len(K)=2 ….

Большое спасибо

Комментарии:

1. почему бы и нет print eigenvectors[:len(K)] ?

2. Эта матрица K не всегда 2×2….it это случайные значения 4×4,….

3. Также я могу добавить, выведите собственные векторы [:len(K)] , это не сработает, если есть только матрица 2×2, она печатает 4 элемента, а не только 2….

4. @такинг, притормози, ковбой. Вы не понимаете собственных векторов. Вернитесь к своим учебникам по математике, прежде чем продолжить.

5. Хорошо, похоже, я этого не понял. Я подумал, что вам следует написать print eigenvectors[: eigenvalues.index(<index of first almost zero eigenvalue>)]

Ответ №1:

Вы получаете два вектора длиной два, а не четыре вектора. Например:

 In [1]: import numpy as np

In [2]: K=np.random.normal(size=(2,2))

In [3]: eigenvalues, eigenvectors = np.linalg.eig(K)

In [4]: eigenvectors
Out[4]: 
array([[ 0.83022467 0.j        ,  0.83022467 0.j        ],
       [ 0.09133956 0.54989461j,  0.09133956-0.54989461j]])

In [5]: eigenvectors.shape
Out[5]: (2, 2)
  

Первый вектор равен eigenvectors[:,0] , второй равен eigenvectors[:,1] .

Комментарии:

1. Да, но как напечатать только 1 вектор?

2. Спасибо, я кое-что неправильно понял в своем коде, поэтому был немного сбит с толку, спасибо.

3. собственные векторы — это столбцы, а не строки;

Ответ №2:

Из руководства:

Нормализованный собственный вектор, соответствующий собственному значению, w[i] является столбцом v[:,i] .