c_cpp 计算Cholesky分解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 计算Cholesky分解相关的知识,希望对你有一定的参考价值。
void calcCholesky( int nP, double * fCov, double* fCovSqrt ){
double *C = fCovSqrt;
double *V = fCov;
// calculate sqrt(V) as lower diagonal matrix
for( int i = 0; i < nP; ++i ) {
for( int j = 0; j < nP; ++j ) {
C[i*nP+j] = 0;
}
}
for( int j = 0; j < nP; ++j ) {
// diagonal terms first
double Ck = 0;
for( int k = 0; k < j; ++k ) {
Ck += C[j*nP+k] * C[j*nP+k];
} // k
C[j*nP+j] = sqrt( fabs( V[j*nP+j] - Ck ) );
// off-diagonal terms
for( int i = j+1; i < nP; ++i ) {
Ck = 0;
for( int k = 0; k < j; ++k ) {
Ck += C[i*nP+k] * C[j*nP+k];
} //k
if( C[ j * nP + j ] != 0 )
C[ i * nP + j ] = ( V[ i * nP + j ] - Ck ) / C[ j * nP + j ];
else
C[ i * nP + j ] = 0;
}// i
} // j
} // calcCholesky
以上是关于c_cpp 计算Cholesky分解的主要内容,如果未能解决你的问题,请参考以下文章
使用 OpenMP 进行 Cholesky 分解
Cholesky 分解的 Matlab Mex C 实现
三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组矩阵逆的应用
三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组矩阵逆的应用
矩阵分解----Cholesky分解
高等工程数学 矩阵的三角分解 (LU分解,LDR分解,Cholesky分解)