moment.cpp

来自「工程算法 这是一个很有用的工程数值算法集锦」· C++ 代码 · 共 44 行

CPP
44
字号
void moment(double data[], int n, double& ave, double& adev,
			double& sdev, double& var, double& skew, double& curt)
{
	int j;
    if (n <= 1)
	{
		cout<<" n must be at least 2";
		return;
    }
    double p,s = 0.0;
    for (j = 1; j<=n; j++)
	{
        s = s + data[j];
    }
    ave = s / n;
    adev = 0;
    var = 0;
    skew = 0;
    curt = 0;
    for (j = 1; j<=n; j++)
	{
        s = data[j] - ave;
        adev = adev + fabs(s);
        p = s * s;
        var = var + p;
        p = p * s;
        skew = skew + p;
        p = p * s;
        curt = curt + p;
    }
    adev = adev / n;
    var = var / (n - 1);
    sdev = sqrt(var);
    if (var != 0.0) 
	{
        skew = skew / (n * pow(sdev , 3));
        curt = curt / (n * var * var) - 3.0;
	}
    else
	{
        cout<<" no skew or kurtosis when zero variance"<<endl;
    }
}

⌨️ 快捷键说明

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