chodcm.cpp

来自「Visual C++常用数值算法集的源代码」· C++ 代码 · 共 35 行

CPP
35
字号
void chodcm(double a[], int n, double d[], double t[])
{
	int i,j,k;
	double sum;
    for (i = 1; i<=n; i++)
	{
        sum = a[(i-1)*n+i];
        for (j = 1; j<=i - 1; j++)
		{
            t[j] = a[(j-1)*n+i];
            for (k = 1; k<=j - 1; k++)
			{
                t[j] = t[j] - t[k] * a[(j-1)*n+k];
            }
            if (d[j] == 0.0)
			{
                if (t[j] != 0.0)
				{
                    cout<<"no cholesky decomposition"<<endl;
				}
                else
				{
                    a[(i-1)*n+j] = 1.0;
                }
			}
            else
			{
                a[(i-1)*n+j] = t[j] / d[j];
            }
            sum = sum - t[j] * a[(i-1)*n+j];
        }
        d[i] = sum;
    }
}

⌨️ 快捷键说明

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