math - 半正定矩阵和数值稳定性?

标签 math matrix numerical-methods numerical-stability

我正在尝试对共现矩阵 (C) 进行因子分析,该矩阵从术语文档矩阵 (TD) 计算如下:
C=TD*TD'

理论上 C 应该是半正定的,但事实并非如此,因此因子分析算法无法使用它。由于速度原因,我无法更改算法)。

我查了一下,可能是数值稳定性问题:
A simple algorithm for generating positive-semidefinite matrices
- 回答 2。

在这里进行的好方法是什么?

最佳答案

我会做矩阵的特征分解:

C=Q D Q^-1

如果您的矩阵确实是半正定的,那么所有特征值(D 对角线上的条目)都应该是非负的。 (这可能也是您的因子分析算法正在执行的测试,以查看矩阵是否为半正定矩阵。)

如果您遇到数字问题,某些特征值可能几乎不小于零。尝试将这些条目设置为零,计算 Q D Q^-1得到一个新的、更正的 C,然后将它提交给你的因子分析算法。

另一方面,如果你发现你的矩阵 C 有真正的负特征值,那么你就知道你在构造 C 的某个地方出错了。

关于math - 半正定矩阵和数值稳定性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2115880/

相关文章:

math - 从一对浮子到单个浮子的近似可逆函数?

math - 使用 SVG 渐变为三角形 "naturally"着色

matrix - 使用 Julia 中的理解创建矩阵

r - 给定 n 个 4x4 矩阵的列表,我如何将它们组合起来,使它们连续跟随在一个 4nx4 矩阵中

c - 数值微分

python - 定义用于从数据文件求解方程的函数

java - 距离 出租车几何形状

c++ - OpenGL 旋转在 90 到 270 度之间表现怪异

python - 如何使 numpy.cumsum 在第一个值之后开始

java - Java中+=和++的区别