Как проверить, что определитель (A * lambda * I) = 0 матрицы в python? - PullRequest
0 голосов
/ 01 ноября 2019

Для этой задачи я создал массив 8x8 в python и нашел собственные значения и собственные частоты, используя инструмент ninaly linalg. Однако теперь мне нужно проверить правильность этих собственных значений, проверив, что det (A-lambda * I) = 0, где A - массив 8x8, I - единичная матрица, а затем лямбда. Как бы я решил эту проблему в python? Есть ли в numpy инструмент, который позволил бы мне сделать это легко? Я включил свой код до поиска идентификационной матрицы.

#Defining an 8x8 matrix using random numbers
A = np.zeros((8, 8), dtype=complex)
A[1::2,::2] = 1
A[::2,1::2] = 1

eig_vals, eig_vecs = np.linalg.eig(A)

print("The resulting eigenvalues of the 8x8 matrix is:", eig_vals)
print("The resulting eigenvectors of the 8x8 matrix is:", eig_vecs)


I = np.identity(8)

1 Ответ

0 голосов
/ 01 ноября 2019

Как насчет просто:

for i in range(len(eig_vals)):
    print(np.linalg.det(A - eig_vals[i]*I))

?

Конечно, необходимо учитывать числовую ошибку - они не являются точными нулями, но выглядят достаточно близко :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...