besselY0

Evaluates the real Bessel function of the second kind of order zero \(Y_0(x)\).

Synopsis

besselY0 (x)

Required Arguments

float x (Input)
Point at which the Bessel function is to be evaluated.

Return Value

The value of the Bessel function

\[Y_0(x) = \tfrac{1}{\pi} \int_0^{\pi} \sin(x \sin \theta) d \theta - \tfrac{2}{\pi} \int_0^{\infty} e^{-z \sinh \mathrm{t}} dt\]

If no solution can be computed, NaN is returned.

Description

This function is sometimes called the Neumann function, \(N_0(x)\), or Weber’s function.

Since \(Y_0(x)\) is complex for negative x and is undefined at \(x=0\), besselY0 is defined only for \(x>0\). Because the Bessel function \(Y_0(x)\) is oscillatory, its computation becomes inaccurate as x increases.

../../_images/Fig9-10.png

Figure 9.17 — Plot of Y0(x) and Y1(x)

Example

The Bessel function \(Y_0(1.5)\) is evaluated.

from __future__ import print_function
from numpy import *
from pyimsl.math.besselY0 import besselY0

x = 1.5
ans = besselY0(x)
print("Y0(%f) = %f" % (x, ans))

Output

Y0(1.500000) = 0.382449

Warning Errors

IMSL_LARGE_ABS_ARG_WARN \(|x|\) should be less than \(1/\sqrt{\varepsilon}\) where ɛ is the machine precision to prevent the answer from being less accurate than half precision.

Fatal Errors

IMSL_LARGE_ABS_ARG_FATAL \(|x|\) should be less than \(1/\varepsilon\) where ɛ is the machine precision for the answer to have any precision.