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

📄 seidel.cpp

📁 此代码可有于计算方法中的各种数学计算,如解线性方程组,求积分等,很方便!
💻 CPP
字号:
#define N 4        //方程个数

#include <math.h>
#include <iostream>
using namespace std;

int main()
{
	float a[N][N],b[N],x1[N],x2[N];
	int i,j,count=1;

	//输入方程组的系数矩阵
	cout<<"请输入方程组的系数矩阵:"<<endl;
	for(i=0;i<N;i++)
		for(j=0;j<N;j++)	
			cin>>a[i][j];
	//输入方程组右边的值
	cout<<"请输入方程组右边的值:"<<endl;
	for(i=0;i<N;i++)
		cin>>b[i];
	//输入迭代初值
	cout<<"请输入X的初始值:"<<endl;
	for(i=0;i<N;i++)
		cin>>x1[i];
	
	while(1)
	{
		float st;
		for(i=0;i<N;i++)
		{
			float st1=0,st2=0;
			for(j=0;j<i;j++)
				st1+=a[i][j]*x2[j];//Jacobi法时st1+=a[i][j]*x1[j];
			for(j=i+1;j<N;j++)
				st2+=a[i][j]*x1[j];
			x2[i]=(b[i]-st1-st2)/a[i][i];
		}
		
		st=fabs(x1[0]-x2[0]);
		
		if(st<0.0001)
			break;	
		for(i=0;i<N;i++)
			x1[i]=x2[i];
		count++;
	}
	cout<<"迭代成功,GuassSeidel迭代次数为:"<<count<<endl;//Jacobi时将此行注释
	cout<<"方程组的解为:";
	for(i=0;i<N;i++)
		cout<<"X"<<i+1<<"="<<x1[i]<<"  ";;
	cout<<endl;
	
	return 1;
}

⌨️ 快捷键说明

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