美文网首页
高维矩阵求特征根的精度问题

高维矩阵求特征根的精度问题

作者: vlnk2012 | 来源:发表于2019-08-20 15:49 被阅读0次

    如何求解矩阵的平方根?

    矩阵分解后,将对角矩阵中对角元素进行平方,再复原

    # 求负数的平方根: sqrt(as.complex(c(4,9,-4,-9,16)))# 2+0i 3+0i 0+2i 0+3i 4+0i 

    下面可证明matlab,R,python中计算高维协方差矩阵的特征根时,会因为计算精度导致特征根出现负值这一错误计算结果

    例如:

    rm(list=ls())

    N=500;L=1000;Q=L/N #Q>1

    aw <- matrix(round(rnorm(5000,0,0.35)),N,L)+matrix(round(rnorm(5000,0,1.355))*1.34,N,L);

    # hist(aw)

    round(aw[1:5,1:15],2)

    aw <- t(apply(aw,1,scale))

    cr.1 <- (aw)%*%t(aw)/(L-1)

    round(cr.1[1:5,1:5],2)

    # hist(cr.1)

    # a.seig=eigen(cr.1);

    # round(a.seig$values,4)

    # a.seig$values[496:500]

    # # rm(cr.1)#相关系数矩阵的特征值和特征向量

    # which(a.seig$values<0)

    看到没有,有很多近似与0的负特征根

    如果使用python模拟的话,甚至还可能会出现复数特征根这一现象

    相关文章

      网友评论

          本文标题:高维矩阵求特征根的精度问题

          本文链接:https://www.haomeiwen.com/subject/aazusctx.html