我有两个向量:
val
- 包含特征值
vec
- 包含特征向量
使用它们我计算一个方阵(见下面的代码):
val=c(8.4632323330381958, 0.83430218022179237, 0.22373186168113263)
vec=c(-0.40468599875813305, -2.2807177284758566, -0.57101165517074848,
-0.57101165517074848, -12.892899321073903, -29.43965303897123,
0.62945422198403489, 0.37595876464123751, 0.86002662343913638)
newMat<-matrix(vec, ncol=3)%*%diag(val)%*%t(matrix(vec, ncol=3))
现在注意条件数 8.46 / 0.22 = 37.8
然后我使用R命令kappa(newMat)
来计算条件数,结果是 14984,这比实际情况要大得多!
另外,当我使用eigen(newMat)
来获得特征向量和特征值时,我收到了绝对不同的(来自上面提到的)特征值和特征向量,这种差异无法通过标准化等来解释。
请帮助我理解这种结果的原因是什么。
因此,引入问题的完整代码是:
val=c(8.4632323330381958, 0.83430218022179237, 0.22373186168113263)
vec=c(-0.40468599875813305, -2.2807177284758566, -0.57101165517074848,
-0.57101165517074848, -12.892899321073903, -29.43965303897123,
0.62945422198403489, 0.37595876464123751, 0.86002662343913638)
newMat<-matrix(vec, ncol=3)%*%diag(val)%*%t(matrix(vec, ncol=3))
max(val)/min(val)
kappa(newMat)
eigen(newMat)
答案 0 :(得分:0)
感谢WaltS我理解问题出在非正交特征向量中。