1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
// 此模板只能解决有解的情况, // 但是可以通过定义解决无穷解与无解的情况 // c[][]储存的是系数矩阵 // b[]储存的是尾数矩阵 // 最终a[][]是一个对角线矩阵 void Gauss() { for(int i=1; i<=n; i++) { for(int j=i; j<=n; j++) { if(fabs(c[j][i])>eps) { for(int k=1; k<=n; k++) { swap(c[i][k], c[j][k]); } swap(b[i], b[j]); } } for(int j=1; j<=n; j++) { if(i==j) continue; double rate = c[j][i]/c[i][i]; for(int k=i; k<=n; k++) c[j][k] -= c[i][k]*rate; b[j] -= b[i]*rate; } }
for(int i=1; i<n; i++) printf("%.3lf ", b[i]/c[i][i]); printf("%.3lfn", b[n]/c[n][n]); }
|
近期评论