bessk0.cpp

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

CPP
30
字号
double bessk0(double x)
{
	double p1,p2,p3,p4,p5,p6,p7,q1,q2,q3,q4,q5,q6,q7;
	double y,aaa,bbb,temp;
    p1 = -0.57721566;      p2 = 0.4227842;
    p3 = 0.23069756;       p4 = 0.0348859;
    p5 = 0.00262698;       p6 = 0.0001075;
    p7 = 0.0000074;
    q1 = 1.25331414;       q2 = -0.07832358;
    q3 = 0.02189568;       q4 = -0.01062446;
    q5 = 0.00587872;       q6 = -0.0025154;
    q7 = 0.00053208;
    if( x <= 2.0)
	{
        y = x * x / 4.0;
        bbb = y * (p5 + y * (p6 + y * p7));
        aaa= p1 + y * (p2 + y * (p3 + y * (p4 + bbb)));
        temp = (-log(x / 2.0) * bessi0(x)) + aaa;
	}
    else
	{
        y = (2.0 / x);
        bbb = y * (q5 + y * (q6 + y * q7));
        aaa = q1 + y * (q2 + y * (q3 + y * (q4 + bbb)));
        temp = (exp(-x) / sqrt(x)) * aaa;
	}
	return temp;
}

⌨️ 快捷键说明

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