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

📄 sor.cpp

📁 VC++常用数据算法集,里面包含了大量的常用算法程序,很有用的哟!
💻 CPP
字号:
void sor(double a[12][12],double b[12][12],double c[12][12],
		 double d[12][12],double e[12][12],double f[12][12],
		 double u[12][12],int jmax,double rjac)
{
	int n,j,l;
	double maxits,eps,zero,half,qtr,one,anormf,omega,aaa,bbb;
	double resid,anorm;
    maxits = 1000;
    eps = 0.00001;
    zero = 0.0;
    half = 0.5;
    qtr = 0.25;
    one = 1.0;
    anormf = zero;
    for (j = 2; j<=jmax - 1; j++)
        for (l = 2; l<=jmax - 1; l++)
            anormf = anormf + fabs(f[j][l]);
    omega = one;
    for (n = 1; n<=maxits; n++)
	{
		anorm = zero;
		for (j = 2; j<=jmax - 1; j++)
		{
			for (l = 2; l<=jmax - 1; l++)
			{
				if (((j + l) % 2) ==( n % 2))
				{
					aaa = a[j][l]*u[j + 1][l]+b[j][l]*u[j - 1][l];
					bbb = c[j][l]*u[j][l + 1]+d[j][l]*u[j][l - 1];
					resid = aaa + bbb + e[j][l] * u[j][l]-f[j][l];
					anorm = anorm + fabs(resid);
					u[j][l] = u[j][l] - omega * resid / e[j][l];
				}
			}
		}
        if (n == 1 )
            omega = one / (one - half * rjac * rjac);
        else
            omega = one / (one - qtr * rjac * rjac* omega);
        if ((n > 1) && (anorm < eps * anormf) ) return;
    }
    cout <<" maxits exceeded"<<endl;
}

⌨️ 快捷键说明

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