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

📄 逐次超松弛迭代法.cpp

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

void SOR(double w,double a[3][3],double b[3],double x[3],double esp)
{
	double t[3];
	int flag=0;
	int n=0;
	while(!flag)
	{
		flag=1;n++;
		t[0]=x[0];t[1]=x[1];t[2]=x[2];
		for(int i=0;i<3;i++)
		{
			double m=b[i];
			for(int j=0;j<3;j++)
			{
				m-=(a[i][j]*x[j]);
			}
			x[i]=x[i]+w*m/a[i][i];
		}
		for(i=0;i<3;i++)
		{
			if(fabs(x[i]-t[i])>=esp)
			{
				flag=0;
				break;
			}
		}
	}
	printf("%d\n",n);
}

void main()
{
	double a[3][3];
	double b[3];
	double x[3];
	double w,esp;
	a[0][0]=5;a[0][1]=2;a[0][2]=1;
	a[1][0]=-1;a[1][1]=4;a[1][2]=2;
	a[2][0]=2;a[2][1]=-3;a[2][2]=10;
	b[0]=-12;b[1]=20;b[2]=3;
	x[0]=x[1]=x[2]=0;
	w=0.9;esp=0.0001;
	SOR(w,a,b,x,esp);
	for(int i=0;i<3;i++)
		printf("%f\n",x[i]);

}
		

⌨️ 快捷键说明

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