R条件数改变

时间:2016-01-25 14:17:45

标签: r

我有两个向量:

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)

1 个答案:

答案 0 :(得分:0)

感谢WaltS我理解问题出在非正交特征向量中。