Jacobi 迭代法:http://en.wikipedia.org/wiki/Jacobi_method
Gauss-Seidel 迭代法:http://en.wikipedia.org/wiki/Gauss%E2%80%93Seidel_method
===== 下面是我的实现 =====
依赖项:向量与矩阵类
NA::VecDP jacobiIteration ( NA::MatDP const& a, // 系数矩阵
NA::VecDP const& b, // 右端向量
double const eps, // 精度
int const M ) // 最多迭代次数
{
NA::VecDP y(0.0, b.size());
NA::VecDP x(0.0, b.size());
double tmp, maxXY;
for ( int m=0; m<M ; ++m ) {
maxXY = 0;
for ( int i=0; i<b.size(); ++i ) {
tmp = 0;
for ( int j=0; j<b.size(); ++j ) {
tmp+=x[j]*a[i][j];
}
tmp-=x[i]*a[i][i];
y[i] = (b[i]-tmp)/a[i][i];
转发至微博
转发至微博
评论