return ;
}
if(x==-1) // Gauss_Colum_Main_Element返回-1,为任意解
{
cout<<"方程组为任意解"<<endl;
return ;
}
cout<<"所求方程组的根为:(x1,x2,x3)=( ";
for(int i=0;i<N;i++)
{
cout<<X[i][0]<<" ,";
}
cout<<"\b)."<<endl<<endl;
}
//高斯列主元消去法的主调函数
int Gauss_Colum_Main_Element(
int N, //方程阶数
double **A, //系数矩阵
double**B, //
double e) //精度控制
{
cout<<endl<<"Ax=B的增广矩阵为:"<<endl;
Show_Matrix(A_B,N,N+1);
cout<<"解方程Ax=B的过程如下:"<<endl;
for(int i=0;i<N;i++)
{
int row=Choose_Colum_Main_Element(N,A_B,i);
if(Main_Element<=e) goto A_0;
Exchange(A_B,N+1,row,i);
Elimination(N,A_B,i);
cout<<"选取列主元后第"<<i+1<<"次消元:"<<endl;
Show_Matrix(A_B,N,N+1);
}
Unitization(N,A_B);
cout<<"单位化之后的结果:"<<endl;
Show_Matrix(A_B,N,N+1);
for(int i=0;i<N;i++)
{
X[i][0]=A_B[i][N];
}
return 1;
A_0: //如果出现增广矩阵中|A|~0 的情况处理如下
f
or(int i=0;i<N;i++)
{
//增广矩阵中|B|!~0
if(abs(A_B[i][N])>e) return 0;
}
//增广矩阵中|B|~0,即方程解为任意解的情况
return -1;
}
//选取主
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科列主元高斯消去法C++源文件(3)全文阅读和word下载服务。