Cholesky分解法,求指点一下!

发布于 2021-11-15 03:37:04 字数 975 浏览 856 评论 1

//-------------------------------------------------------------------
// 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,指的是啥?如何调用该函数!谢谢

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伪装你 2021-11-15 06:23:56

大概是 函数参数默认值 , 

就是调用的时候可以不加这个参数

EPSILON  

http://technet.microsoft.com/zh-cn/library/system.double.epsilon(v=vs.90).aspx

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文