bessi0.cpp

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

CPP
31
字号
double bessi0(double x)
{
	double p1,p2,p3,p4,p5,p6,p7,q1,q2,q3,q4,q5,q6,q7,q8,q9;
	double y,aaa,bbb,ax,temp;
    p1 = 1.0;              p2 = 3.5156229;
    p3 = 3.0899424;        p4 = 1.2067492;
    p5 = 0.2659732;        p6 = 0.0360768;
    p7 = 0.0045813;
    q1 = 0.39894228;       q2 = 0.01328592;
    q3 = 0.00225319;       q4 = -0.00157565;
    q5 = 0.00916281;       q6 = -0.02057706;
    q7 = 0.02635537;       q8 = -0.01647633;
    q9 = 0.00392377;
    if( fabs(x) < 3.75)
	{
        y = (x / 3.75)*(x / 3.75);
        aaa = y * (p5 + y * (p6 + y * p7));
        temp = p1 + y * (p2 + y * (p3 + y * (p4 + aaa)));
	}
    else
	{
        ax = fabs(x);
        y = 3.75 / ax;
        aaa = exp(ax) / sqrt(ax);
        bbb = q4 + y * (q5 + y * (q6 + y * (q7 + y * (q8 + y * q9))));
        temp = aaa * (q1 + y * (q2 + y * (q3 + y * bbb)));
	}
	return temp;
}

⌨️ 快捷键说明

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