베셀 함수
형식
#include <math.h>
double j0(double x);
double j1(double x);
double jn(int n, double x);
double y0(double x);
double y1(double x);
double yn(int n, double x);
언어 레벨
ILE C 확장
스레드세이프
예
설명
베셀 함수는 일정 유형의 미분 방정식을 풉니다. j0(), j1(), jn() 함수는 각각 순서 0, 1, n에 대한 제1종 베셀 함수입니다. y0(), y1(), yn() 함수는 각각 순서 0, 1, n에 대한 제2종 베셀 함수입니다.
인수 x는 양수여야 합니다. 인수 n은 0보다 크거나 같아야 합니다. n이 0보다 작으면 음의 지수입니다.
리턴값
j0(), j1(), y0() 또는 y1()의 경우, x의 절대값이 너무 크면 함수는 errno를 ERANGE로 설정하고 0을 리턴합니다. y0(), y1() 또는 yn()의 경우, x가 음수이면 함수는 errno를 EDOM으로 설정하고 -HUGE_VAL 값을 리턴합니다. y0, y1() 또는 yn()의 경우, x로 인해 오버플로가 발생하면 함수는 errno를 ERANGE로 설정하고 -HUGE_VAL 값을 리턴합니다.
예
이 예는 y를 x에 대한 제1종 베셀 함수인 순서 0으로 계산합니다. 또한
z를 x에 대한 제2종 베셀 함수인 순서 3으로 계산합니다.
#include <math.h>
#include <stdio.h>
int main(void)
{
double x, y, z;
x = 4.27;
y = j0(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("y = %lf\n", y);
printf("z = %lf\n", z);
}
/***************** Output should be similar to: **********************
y = -0.366022
z = -0.087482
*********************************************************************/