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

📄 gs_seidel.cpp

📁 该程序为经典的Gauss迭代算法!!!!欢迎大家下载学习
💻 CPP
字号:
// Gs_Seidel.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream.h"
#include "math.h"
#include "iomanip.h"
#define max 100

int main(int argc, char* argv[])
{
	int i,a,b,j;
	float A[max][max],B[max][max],x,c,m,h,hh;

	cout <<"请输入方程组的行数和列数元素:";
	cin >>a;
	cin >>b;	
	cout <<endl;	  
	
	for(i=0;i<=a;i++)//初始化矩阵全为0
	{
		for(j=0;j<=b;j++)
			A[i][j]=0;
	}
	for(i=0;i<=a;i++)//初始化矩阵全为0
	{
		for(j=0;j<=b;j++)
			B[i][j]=0;
	}
/*	for(i=1;i<=a;i++)
	{
		for(j=1;j<=b;j++)
			cout <<A[i][j]<<" ";
		cout <<endl;
	}*/
	cout <<"请输入方程组的系数和常数项:"<<endl;
	for(i=1;i<=a;i++)
	{
		for(j=1;j<=b;j++)
		{
			cin >>c;
		    if(a==-10000)
				break;
			A[i][j]=c;
		}
		
	}

	cout <<endl;    
    cout <<"请输出方程组的系数和常数项:"<<endl;
	for(i=1;i<=a;i++)
	{
		for(j=1;j<=b;j++)
			cout <<setw(5)<<A[i][j]<<" ";
		cout <<endl;
	}
	cout <<endl;

	for(i=1;i<=a;i++)
	{
		for(j=1;j<=b;j++)
		{
			m=A[i][i];
			if(j!=i)
				A[i][j]=A[i][j]/m;			
		}
	}
	for(i=1;i<=a;i++)
	{
		A[i][i]=0;
		
	}
	for(i=1;i<=a;i++)
	{
		for(j=1;j<=b;j++)
			cout <<"     "<<A[i][j]<<" ";
		cout <<endl;
	}
	cout <<endl;
	cout <<"请输入方程组解的初始值:";
	for(i=1;i<=a;i++)
	{
		cin >>x;
		A[i][0]=x;
	}
	cout <<endl;
	for(i=1;i<=a;i++)
		{
		
			cout <<"     "<<A[i][0]<<" ";
			cout <<endl;}

   
A:	for(i=1;i<=a;i++)
	{
		h=0.0;
		h=A[i][0];
		A[i][0]=0;
		for(j=1;j<=a;j++)
		{
			
			A[i][0]+=((-A[i][j])*A[j][0]);
			
		}
		A[i][0]+=A[i][b];
		B[i][0]=A[i][0]-h;
	}
					
	
//	for(i=1;i<=a;i++)
//	{
//		
//		cout <<"     "<<A[i][0]<<" "<<endl;
//	}
//	for(i=1;i<=a;i++)
//	{
//		
//		cout <<"     "<<B[i][0]<<" "<<endl;
//	}
	for(j=1;j<2;j++)
	{
		hh=0.0;

		hh=B[1][0];
		for(i=1;i<=a;i++)
		{
			if(B[i][0]>hh)
			{
				hh=B[i][0];
				B[1][0]=hh;
			}

		}
	//	for(i=1;i<=a;i++)
	//	{
		
	//		cout <<"     "<<B[i][0]<<" ";
	//	cout	<<endl;}
	//	cout <<endl;
	}
	
	if(fabs(B[1][0])<0.01)
	{
		for(i=1;i<=a;i++)
		{
		
			cout <<"     "<<A[i][0]<<" ";
		cout <<endl;
		}
	}
	else 
			goto A;
	
/*	for(i=1;i<=a;i++)
		{
		
			cout <<"     "<<A[i][0]<<" ";
			cout <<endl;}*/
	

	
		
	


    


	
	return 0;
}

⌨️ 快捷键说明

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