高斯消元模板


int Gauss() { for(int k = 0, col = 0; k < equ && col < var; k++, col++) { int max_r = k; for(int i = k + 1; i < equ; i++) if(fabs(a[i][col]) > fabs(a[max_r][col])) max_r = i; if(fabs(a[max_r][col]) < EPS) return 0; if(k != max_r) { for(int j = col ; j < var; j++) swap(a[k][j], a[max_r][j]); swap(x[k], x[max_r]); } x[k] /= a[k][col]; for(int j = col + 1; j < var; j++) a[k][j] /= a[k][col]; a[k][col] = 1; for(int i = 0; i < equ; i++) if(i != k) { x[i] -= x[k]*a[i][k]; for(int j = col + 1; j < var; j++) a[i][j] -= a[k][j]*a[i][col]; a[i][col] = 0; } } return 1; }

  

posted @ 2017-11-16 04:21  RUSH_D_CAT  阅读(201)  评论(0编辑  收藏  举报