This is a pre-release version (2.0.0.dev0+git20260907.41eeb59).Go to latest (1.18.0)
{ } Raw JSON

bundles / scipy 2.0.0.dev0+git20260907.41eeb59 / scipy / special / _basic / riccati_yn

function

scipy.special._basic:riccati_yn

source: build-install/usr/lib/python3.14/site-packages/scipy/special/_basic.py:1366

Signature

def riccati_yn(n, x)

Summary

Compute Riccati-Bessel function of the second kind and its derivative.

Extended Summary

The Riccati-Bessel function of the second kind is defined here as , where is the spherical Bessel function of the second kind of order . Note that this is in contrast to a common convention that includes a minus sign in the definition.

This function computes the value and first derivative of the function for all orders up to and including n.

Parameters

n : int

Maximum order of function to compute

x : float

Argument at which to evaluate

Returns

yn : ndarray

Value of y0(x), ..., yn(x)

ynp : ndarray

First derivative y0'(x), ..., yn'(x)

Notes

The computation is carried out via ascending recurrence, using the relation DLMF 10.51.1 [2].

Wrapper for a Fortran routine created by Shanjie Zhang and Jianming Jin [1].

Examples

In practical applications, frequently the logarithmic derivative of the Riccati-Bessel functions is needed. We determine the logarithmic derivative of the Riccati-Bessel function of the second kind for order 5 and argument 1.2. The logarithmic derivative is obtained by dividing the derivative of the Riccati-Bessel function by the Riccati-Bessel function itself.
from scipy.special import riccati_yn
n = 5
z = 1.2
chi_n, chi_n_p = riccati_yn(n, z)
✓
chi_n
chi_n_p
✗
array([   0.93204,    0.66598,    3.30375,   22.5533 ,  177.40482,
       1659.57387])
chi_n_p[5]/chi_n[5]
✓
np.float64(-4.030059767479337)
Alternatively, the logarithmic derivative of the Riccati-Bessel functions could be obtained from the corresponding spherical Bessel functions by making use of the definition of the Riccati-Bessel function in terms of the spherical Bessel function as given above.
from scipy.special import spherical_yn
yn = spherical_yn(n, z)
ynp = spherical_yn(n, z, derivative=True)
ynp/yn + 1/z
✓
np.float64(-4.030059767479337)

Aliases

  • scipy.special.riccati_yn