Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何找到矩阵的cholesky?_Matlab - Fatal编程技术网

Matlab 如何找到矩阵的cholesky?

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

我有n个矩阵,我想找到每个矩阵的平方根。但是我的算法需要cholesky。我得到的误差是矩阵不是正定的。我把对角元素转换成实元素。我仍然得到同样的误差。还有其他方法可以找到矩阵的cholesky吗?

如果你的矩阵离正定还有很长的路要走,你就无能为力了——cholesky分解是基于它是正定的假设

通常情况下,矩阵基本上是正定的,但由于一些小的数值问题,它是非常轻微的非对称的。如果这是您遇到的问题,您可以通过说
x=(x+x')/2来强制它(假设它被称为
x
)对称


希望有帮助

如果矩阵不是正定矩阵,则不能使用Cholesky分解(根据定义)。使用另一种分解(特征值、LU、QR等)。