Cholesky decomposition error when matrix is regularized.

15 ビュー (過去 30 日間)
Jorey
Jorey 2017 年 1 月 3 日
コメント済み: Jorey 2017 年 1 月 4 日
I want to perform cholesky facterization to a covariance matrix using chol. As my data matrix has more columns than rows, thus the covariance matrix should be probably positive semi-definite. I added a regularized term to the diagonal of covariance matrix to make sure that it is positive definite, which should be safely facterized by chol. However, the error "Matrix must be positive definite" still occurs. What's the point if I want to use a regularization parameter to make the covariance matrix suitable for using chol?
My regularization term is 0.01*eye(c), where c is the size of covariance matrix.
Thanks.

採用された回答

Walter Roberson
Walter Roberson 2017 年 1 月 3 日
Your covariance matrix probably is not exactly symmetric. Consider forcing it to be symmetric by using
A = (A+A.')/2;
  7 件のコメント
Walter Roberson
Walter Roberson 2017 年 1 月 3 日
-min(eig(C), 0) to get to at least 0
However, there might still be round-off problems with this.
Jorey
Jorey 2017 年 1 月 4 日
Thanks, it works if I used 'lambda' as max(abs(eig(C))), i.e., C+max(abs(eig(C)))*eye(c), where C is my covariance matrix and c is the size of C.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by