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

📄 312.cpp

📁 高斯消元法解方程
💻 CPP
字号:
#include <math.h>
#include <iostream.h> 
#define n 3

void main()
{
  int i,j,k,r,s,p;
  double t,max,sum;
  double a[3][3]={{2.0,2.0,3.0},{4.0,7.0,7.0},{-2.0,4.0,5.0}};
  double x[3],b[3]={3.0,1.0,-7.0};
  int P[3]={0,1,2};

   for(s=0;s<n;s++)
  {for(p=0;p<n;p++)
   cout<<a[s][p]<<'\t';
   cout<< "b"<<s+1<<"="<<b[s]<<endl;}
   cout<<endl;

  for(k=0;k<n;k++)
  { r=k;
    max=fabs(a[k][k]);
	  for(i=k;i<n;i++)
  { if(max<fabs(a[i][k]))  
	{max=fabs(a[i][k]);
	r=i;}}
    if(max==0) 
		{cout<<"方程奇异";break;}
    if(k!=r)
    {for(s=k;s<n;s++)
    {t=a[P[r]][s];	a[P[r]][s]=a[P[k]][s];	a[P[k]][s]=t;}
	t=b[P[r]]; b[P[r]]=b[P[k]]; b[P[k]]=t;}
	 for(i=0;i<n;i++) 
	 {for(j=0;j<n;j++) cout<<a[i][j]<<'\t';
	 cout<<"b"<<i+1<<"="<<b[i]<<endl;}
	cout<<endl;
    for(i=k+1;i<n;i++)
    {a[P[i]][k]=(a[P[i]][k]/a[P[k]][k]);
     for(j=k+1;j<n;j++) 
		{a[P[i]][j]=a[P[i]][j]-a[P[i]][k]*a[P[k]][j];
	    cout<<a[P[i]][j]<<'\t';}
     b[P[i]]=b[P[i]]-a[P[i]][k]*b[P[k]];
	 cout<< "b"<<P[i]+1<<"="<<b[P[i]]<<endl; }
     cout<<endl;
  }

 x[n-1]=b[P[n-1]]/a[P[n-1]][n-1];
  for(i=n-2;i>=0;i--)
  {sum=0.0;
  for(j=i+1;j<n;j++)  
  sum=sum+a[P[i]][j]*x[j];
  x[i]=(b[P[i]]-sum)/a[P[i]][i];}

  for(i=0;i<n;i++)
     cout<<"X"<<i+1<<"="<<x[i]<<endl;
}

⌨️ 快捷键说明

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