(matnew1)的特征值和(matnew2)的特征值的集合 (matnew2)应该给出(mat)的特征值集的平方。。 但在这段代码中,我得到了matnew1和 matnew2。。你知道吗
首先是平方根(abs(特征值_new1))和 平方根(abs(特征值2))不同于 矩阵(mat)至少在一个值的情况下。你知道吗
import numpy as np
import random
import cmath
import math
for i in np.arange(1,2,1):
MS = random.uniform(0.001,100)
MD = random.uniform(1e-5,0.1)
alpha = 0.5*((MD**2)/(MS**2))
if(alpha < 0.01):
mu = 1e-10
MR = 1e+5
mat = np.array([[0,0,MD],[0,mu,MS],[MD,MS,MR]])
#print(mat)
eigenvalues, eigenvectors = np.linalg.eig(mat)
matDag = np.conjugate(np.transpose(mat))
matnew1 = np.matmul(mat, matDag)
matnew2 = np.matmul(mat,mat)
#print(matnew1)
#print(matnew2)
eigenvalues_new1, eigenvectors_new1 = np.linalg.eig(matnew1)
eigenvalues_new2, eigenvectors_new2 = np.linalg.eig(matnew2)
print(eigenvalues[0],eigenvalues[1],eigenvalues[2])
print(eigenvalues_new1[0],eigenvalues_new1[1],eigenvalues_new1[2])
print(eigenvalues_new2[0],eigenvalues_new2[1],eigenvalues_new2[2])
当我运行这个(你应该显示这个输出)时,我得到:
第二行和第三行非常接近第一行的正方形:
负数条目位于中间列,大约为
-4e-14
。因为在第一行你有7e-17
,第二行和第三行应该是它的平方。然而,我将7e-17
视为零或全舍入误差:实际上,特征值接近于零。同样地,-4e-14
应该被视为零。你知道吗你的矩阵有这样的结构和行列式:
因为行列式是特征值的乘积,而且
mu
非常小,所以特征值的乘积必须很小。这意味着你的大埃涅瓦卢必须由另一个非常小的平衡。总的来说,这意味着你的矩阵有一个糟糕的条件数,你不能指望准确地计算较小的特征值。你知道吗相关问题 更多 >
编程相关推荐