Matlab 如何找到矩阵的cholesky?
我有n个矩阵,我想找到每个矩阵的平方根。但是我的算法需要cholesky。我得到的误差是矩阵不是正定的。我把对角元素转换成实元素。我仍然得到同样的误差。还有其他方法可以找到矩阵的cholesky吗?如果你的矩阵离正定还有很长的路要走,你就无能为力了——cholesky分解是基于它是正定的假设 通常情况下,矩阵基本上是正定的,但由于一些小的数值问题,它是非常轻微的非对称的。如果这是您遇到的问题,您可以通过说Matlab 如何找到矩阵的cholesky?,matlab,Matlab,我有n个矩阵,我想找到每个矩阵的平方根。但是我的算法需要cholesky。我得到的误差是矩阵不是正定的。我把对角元素转换成实元素。我仍然得到同样的误差。还有其他方法可以找到矩阵的cholesky吗?如果你的矩阵离正定还有很长的路要走,你就无能为力了——cholesky分解是基于它是正定的假设 通常情况下,矩阵基本上是正定的,但由于一些小的数值问题,它是非常轻微的非对称的。如果这是您遇到的问题,您可以通过说x=(x+x')/2来强制它(假设它被称为x)对称 希望有帮助 如果矩阵不是正定矩阵,则不能
x=(x+x')/2来强制它(假设它被称为x
)对称
希望有帮助 如果矩阵不是正定矩阵,则不能使用Cholesky分解(根据定义)。使用另一种分解(特征值、LU、QR等)。