⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 列主元高斯消去法算法.cpp

📁 数值分析课程必备的算法:列主元高斯消去法算法。有需要的同学下载
💻 CPP
字号:
//列主元高斯消去法算法

#include<iostream.h>
#include<math.h>
#include<stdlib.h>
void main()
{
	double A[3][3]={	{12 , -3,  3},
						{-18,  3, -1},
						{ 1 ,  1,  1}	};
	double b[3]={ 15,-15,6 };
    double x[3];
    double e,T,s;
    int i,j,k,m,n;
	cout<<"*****列主元高斯消去法算法*****"<<endl; 
	cout<<"解方程组:"<<endl;
	cout<<"( 12	-3	3  ) (x1)   ( 15 )"<<endl;
	cout<<"|-18	3	-1 | |x2| = |-15 |"<<endl;
	cout<<"( 1	1	1  ) (x3)   (  6 )"<<endl;

	cout<<"请输入容许误差e:"<<endl;
	cin>>e;

	for(k=0;k<2;k++)
	{	T=fabs(A[0][k]);
	    n=k;
	    for(m=1;m<3;m++)
		{   if(T<fabs(A[m][k]))
			{   T=fabs(A[m][k]);
			    n=m;
		    }
	    }
	    if(T<e)
		{   cout<<"求解失败!"<<endl;
		    exit(0);
	    }
	    else
		{   if(n!=k)
			{	for(i=0;i<3;i++)
				{	T=A[k][i];
					A[k][i]=A[n][i];
					A[n][i]=T;
			    }
			    T=b[k];	b[k]=b[n];	b[n]=T;
		    }
	      for(i=k+1;i<3;i++)
		  {	 T=A[i][k]/A[k][k];
		     b[i]=b[i]-b[k]*T;
		     for(j=k+1;j<3;j++)
			 {
			   A[i][j]=A[i][j]-T*A[k][j];
			 }
		  }
	    }
    }
    if(fabs(A[2][2])<=e)
	{	cout<<"求解失败!"<<endl;
	    exit(0);
    }
   else{   x[2]=b[2]/A[2][2];
	       for(i=1;i>=0;i--)
		   {  s=0;
		      for(j=i+1;j<3;j++)
			  {
			    s+=A[i][j]*x[j];
			  }
		      x[i]=(b[i]-s)/A[i][i];
			}
	  }
	cout<<"该方程组的解为: "<<endl;
    for(i=0;i<3;i++)
	{
	    cout<<"x"<<i+1<<" = "<<x[i]<<"	";
    }
    cout<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -