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

📄 高斯-赛德尔迭代法.cpp

📁 拉格郎日插值多项式,高斯-赛德尔迭代法,改进欧拉法(C++)
💻 CPP
字号:
#include<iostream.h>
#include<math.h>
#define N 100

void main()
{
	int i;
	float *x;
	float c[12]={8.0,-3.0,2.0,20.0,
				 4.0,11.0,-1.0,33.0,
				 6.0,3.0,12.0,36.0};	//here must be modifed
	float *GauseSeidel(float *,int);
	x=GauseSeidel(c,3);
	for( i=0;i<=2;i++ )
		cout<<"x["<<i<<"]="<<x[i]<<endl;
}


float *GauseSeidel(float *a,int n)
{
	
	int	  i,j,nu=0;
	float *x,dx;
	x =new	float[n*sizeof(float)];
	for( i=0;i<=n-1;i++ )
		x[i]=0.0;
	do
	{	
		for( i=0;i<=n-1;i++ )
		{
			dx=0.0;
			for( j=0;j<=n-1;j++ )					
				dx+=*(a+i*(n+1)+j)*x[j];			
			dx=(*(a+i*(n+1)+n)-dx)/(*(a+i*(n+1)+i));
			x[i]+=dx;
		}		
		if( nu>N )
		{
			cout<<"迭代发散\n";
			return 0;
		}
		nu++;
	}
	while(fabs(dx)>1e-6);
	return x;
}

⌨️ 快捷键说明

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