线性方程组的各种解法 题目: 用三种不同的方法计算线性方程组Ax=b,输入方程组的阶数n,矩阵A 的元素和常向量b 的元素,输出方程组的解。 一. 高斯列主元法 1.方法原理:. 高斯消去法包括两过程:先把方程组化为同解的上三角方程组,再按相反顺序求解上三角方程组。前者称消去或消元过程,后者称回代过程。 消去过程实际上是对增广矩阵作初等变换。对一般的n 阶方程组,消去过程分n-1 步:第一步消去a[1][1]下方元素,第二部消去a[2][2]下方元素,······,第n-1 步消去a[n-1][n-1]下方元素。第k 步将第k 行的适当倍数加于其后各行,也可说是从 k+1~n 行减去第行的适当倍数,使它们的第k 列元素变为0,而 k+1~n+1 列元素减去第k 行对应列元素的倍数。 为了避免出现小主元,可在第k 步的第k 列的元素a[k][k],a[k+1][k],···,a[n][k]中选主元,即在其中找出绝对值最大的元素a[p][k],然后交换第k 和第p 行,继续进行消去过程。交换行相当于改变方程顺序,不会影响原方程组的解。这种方法称为列主元消去法。 2. 源代码: void Gaosi(float a[15][15],int n,float b[15],float x[15]) /*高斯列主元法的函数*/ { int i,j,k; for(k=1;k<=n-1;k++) { float max=fabs(a[k][k]); int p_max=k; for(int p=k;p<=n;p++) /*列主元的选主元*/ if(max=1;k--) { float sum=0; for(j=k+1;j<=n;j++) { sum+=(a[k][j]*x[j]); } x[k]=(b[k]-sum)/a[k][k]; } cout<<"============================"; cout<<"用高斯消去法解方程组:"<