y0() , y1() , yn ()-第二类 Bessel 函数
标准
标准/扩展 | C 或 C++ | 依赖关系 |
---|---|---|
SAA
XPG4 XPG4.2 单一 UNIX 规范版本 3 |
两个 |
格式
SAA:
#include <math.h>
double y0(double x);
double y1(double x);
double yn(int n, double x);
此函数必须与 运行时库扩展 配合使用,或者在 基于 SAA 的语言构造下使用。
一般描述
贝塞尔函数是特定类型微分方程的解。
y0() , y1() 和 yn () 函数是 第二类的 Bessel 函数,分别用于阶数 0 , 1 和 n。 自变量 x 必须为正数。 自变量 n 应该大于或等于零。 如果 n 小于零,那么结果中将为负指数。
注: 此函数同时适用于 IEEE 二进制浮点和十六进制浮点格式。 有关 IEEE 二进制浮点的更多信息,请参阅 IEEE 二进制浮点 。
返回值
如果成功,该函数将返回计算值。
对于 y0() , y1() 或 yn () ,如果 x 为负数,那么该函数会将 errno 设置为 EDOM 并返回 -HUGE_VAL。
对于 y0() , y1() 或 yn () ,如果 x 导致溢出,那么该函数会将 errno 设置为 ERANGE 并返回 -HUGE_VAL。
IEEE 的特殊行为: 如果 x 为负数,那么 y0() , y1() 和 yn () 将返回值 NaNQ。 如果 x 为 0 ,那么 y0() , y1() 和 yn () 将返回值 -HUGE_VAL。 在所有情况下, errno 保持不变。
示例
CELEBY01
/* CELEBY01
This example computes y to be the order 0 Bessel function of the first
kind for x and z to be the order 3 Bessel function of the second kind for x.
*/
#include <math.h>
#include <stdio.h>
int main(void)
{
double x, y, z;
x = 4.27;
y = y0(x); /* y = -0.3660 is the order 0 bessel */
/* function of the first kind for x */
z = yn(3,x); /* z = -0.0875 is the order 3 bessel */
/* function of the second kind for x */
printf("x = %f\n y = %f\n z = %f\n", x, y, z);
}