1
回答
Cholesky分解法,求指点一下!
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

//-------------------------------------------------------------------
// Cholesky
分解法 ,谁能帮我讲讲这个程序,谢谢
//-------------------------------------------------------------------
template <class T>
int cholesky(Matrix<T>& mat, double epsilon=EPSILON) {
size_t i, j, k;
for (i=0; i<mat.Rows(); ++i) {
//
计算第 i 轮主元

for (k=0; k<i; ++k) mat[i][i] -= mat[k][i]*mat[k][i];
mat[i][i] = sqrt(mat[i][i]);
//
计算第 i 轮主元结束

if (fabs(mat[i][i])<epsilon) break;
//
计算第 i

// for (j=i+1; j<mat.Rows(); ++j) {
// for (k=0; k<i; ++k) mat[j][i] -= mat[j][k]*mat[i][k];
// }
//
计算第 i 列结束

//
计算第 i

for (j=i+1; j<mat.Cols(); ++j) {
for (k=0; k<i; ++k) mat[i][j] -= mat[k][i]*mat[k][j];
mat[i][j] /= mat[i][i];
}
//
计算第 i 行结束

}
return (i==mat.Rows());
}

 

函数中double epsilon=EPSILON,指的是啥?如何调用该函数!谢谢

 

举报
MichaelZgh
发帖于5年前 1回/209阅
顶部