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 / _spherical_bessel / spherical_jn

function

scipy.special._spherical_bessel:spherical_jn

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

Signature

def spherical_jn(n, z, derivative = False)

Summary

Spherical Bessel function of the first kind or its derivative.

Extended Summary

Defined as [1],

where is the Bessel function of the first kind.

Parameters

n : int, array_like

Order of the Bessel function (n >= 0).

z : complex or float, array_like

Argument of the Bessel function.

derivative : bool, optional

If True, the value of the derivative (rather than the function itself) is returned.

Returns

jn : ndarray

Value or derivative of spherical Bessel function of the first kind.

Notes

For real arguments greater than the order, the function is computed using the ascending recurrence [2]. For small real or complex arguments, the definitional relation to the cylindrical Bessel function of the first kind is used.

The derivative is computed using the relations [3],

Examples

The spherical Bessel functions of the first kind :math:`j_n` accept both real and complex second argument. They can return a complex type:
from scipy.special import spherical_jn
✓
spherical_jn(0, 3+5j)
✗
np.complex128(-9.878987731663194-8.021894345785999j)
type(spherical_jn(0, 3+5j))
✓
<class 'numpy.complex128'>
We can verify the relation for the derivative from the Notes for :math:`n=3` in the interval :math:`[1, 2]`:
import numpy as np
x = np.arange(1.0, 2.0, 0.01)
np.allclose(spherical_jn(3, x, True),
            spherical_jn(2, x) - 4/x * spherical_jn(3, x))
✓
True
The first few :math:`j_n` with real argument:
import matplotlib.pyplot as plt
x = np.arange(0.0, 10.0, 0.01)
fig, ax = plt.subplots()
✓
ax.set_ylim(-0.5, 1.5)
ax.set_title(r'Spherical Bessel functions $j_n$')
for n in np.arange(0, 4):
    ax.plot(x, spherical_jn(n, x), label=rf'$j_{n}$')
plt.legend(loc='best')
✗
<matplotlib.legend.Legend object at 0x7f3f58bbb380>
plt.show()
✓
fig-4082cecd85a16cef.png

Aliases

  • scipy.special.spherical_jn

Referenced by