Bessel Functions

Format

#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);

Language Level: ILE C Extension

Threadsafe: Yes.

Description

Bessel functions solve certain types of differential equations. The j0(), j1(), and jn() functions are Bessel functions of the first kind for orders 0, 1, and n, respectively. The y0(), y1(), and yn() functions are Bessel functions of the second kind for orders 0, 1, and n, respectively.

The argument x must be positive. The argument n should be greater than or equal to zero. If n is less than zero, it will be a negative exponent.

Return Value

For j0(), j1(), y0(), or y1(), if the absolute value of x is too large, the function sets errno to ERANGE, and returns 0. For y0(), y1(), or yn(), if x is negative, the function sets errno to EDOM and returns the value -HUGE_VAL. For y0, y1(), or yn(), if x causes overflow, the function sets errno to ERANGE and returns the value -HUGE_VAL.

Example that uses Bessel Functions

This example computes y to be the order 0 Bessel function of the first kind for x. It also computes 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 = 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
*********************************************************************/

Related Information



[ Top of Page | Previous Page | Next Page | Contents | Index ]