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

📄 gauss.cpp

📁 高斯消元
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define e 0.000000001

double liezhuyuan(double A[3509][3509],double b[3509],double x[3509])
{
	int k,i,j,i_1,n=3509;
	double max,sum,m;


	/* 消元过程 */
	for(k=0;k<n;k++)
	{
		/* 选主元*/
		max=fabs(A[k][k]);       
		i_1=k;
		for(i=k;i<n;i++)
			if( fabs(A[i][k]) > max ) 
			{ 
				max=fabs(A[i][k]); 
				i_1=i; 
			}
			if( i_1 != k )
			{
				for(j=k;j<n;j++)
				{ 
					max=A[k][j];
					A[k][j]=A[i_1][j];
					A[i_1][j]=max;
				}
				max=b[k];
				b[k]=b[i_1];
				b[i_1]=max;
			}
			if( fabs(A[k][k]) < e ) 
				return(1);
			for(i=k+1;i<n;i++)
			{
				m=A[i][k]/A[k][k];
				for(j=k;j<n;j++) 
					A[i][j]=A[i][j]-m*A[k][j];
				b[i]=b[i]-m*b[k];  
			}

	}
	/* 回带过程 */
	x[n-1]=b[n-1]/A[n-1][n-1];
	for(i=n-2;i>=0;i--)
	{   
		for(sum=0.0,j=i+1;j<n;j++) 
			sum=sum+A[i][j]*x[j];
		x[i]=b[i]-sum;
		x[i]=x[i]/A[i][i];
	}
/*	for(i=0;i<3509;i++)
	{
		for(j=0;j<3509;j++)
		{
			printf("%f ",A[i][j]);
		}
		printf("\n");
	}*/
	
}

⌨️ 快捷键说明

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