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

📄 列主高斯消去法.cpp

📁 定步长辛普森公式计算.二分法.列主高斯消去法.龙贝格.牛顿迭代法.弦截法.逐次超松弛迭代法.
💻 CPP
字号:
#include "stdio.h"
#include "math.h"

void GS2(int n,double a[3][3],double b[3])
{
	int i,j,k,l;
	double c,t;
	for(k=1;k<=n;k++)
	{
		c=0.0;
		for(i=k;i<=n;i++)
			if(fabs(a[i-1][k-1])>fabs(c))
			{
				c=a[i-1][k-1];
				l=i;
			}
			if(l!=k)
			{
				for(j=k;j<=n;j++)
				{
					t=a[k-1][j-1];
					a[k-1][j-1]=a[l-1][j-1];
					a[l-1][j-1]=t;
				}
				t=b[k-1];
				b[k-1]=b[l-1];
				b[l-1]=t;
			}
			c=1/c;
			for(j=k+1;j<=n;j++)
				a[k-1][j-1]=a[k-1][j-1]*c;
			b[k-1]*=c;
			for(i=k+1;i<=n;i++)
			{
				for(j=k+1;j<=n;j++)
					a[i-1][j-1]-=a[i-1][k-1]*a[k-1][j-1];
				b[i-1]-=b[k-1]*a[i-1][k-1];
			}				
	}
	for(i=n;i>=1;i--)
		for(j=i+1;j<=n;j++)
			b[i-1]-=a[i-1][j-1]*b[j-1];
}

void main()
{
	int n;
	double a[3][3],b[3];
	n=3;
	a[0][0]=1;a[0][1]=-1;a[0][2]=1;b[0]=-4;
	a[1][0]=5;a[1][1]=-4;a[1][2]=3;b[1]=-12;
	a[2][0]=2;a[2][1]=1;a[2][2]=1;b[2]=11;
	GS2(n,a,b);
	for(int i=0;i<n;i++)
		printf("%f\n",b[i]);
}

				



⌨️ 快捷键说明

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