scipy.special.

y0_zeros#

scipy.special.y0_zeros(nt, complex=False)[Quelle]#

Berechne nt Nullstellen der Bessel-Funktion Y0(z) und die Ableitung an jeder Nullstelle.

Die Ableitungen sind gegeben durch Y0’(z0) = -Y1(z0) an jeder Nullstelle z0.

Parameter:
ntint

Anzahl der zurückzugebenden Nullstellen

complexbool, Standardwert False

Setzen Sie auf False, um nur die reellen Nullstellen zurückzugeben; setzen Sie auf True, um nur die komplexen Nullstellen mit negativem Realteil und positivem Imaginärteil zurückzugeben. Beachten Sie, dass die komplexen Konjugierten der letzteren ebenfalls Nullstellen der Funktion sind, aber von dieser Routine nicht zurückgegeben werden.

Rückgabe:
z0nndarray

Position der nth Nullstelle von Y0(z)

y0pz0nndarray

Wert der Ableitung Y0’(z0) für die nth Nullstelle

Referenzen

[1]

Zhang, Shanjie und Jin, Jianming. „Computation of Special Functions“, John Wiley and Sons, 1996, Kapitel 5. https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html

Beispiele

Berechne die ersten 4 reellen Wurzeln und die Ableitungen an den Wurzeln von \(Y_0\)

>>> import numpy as np
>>> from scipy.special import y0_zeros
>>> zeros, grads = y0_zeros(4)
>>> with np.printoptions(precision=5):
...     print(f"Roots: {zeros}")
...     print(f"Gradients: {grads}")
Roots: [ 0.89358+0.j  3.95768+0.j  7.08605+0.j 10.22235+0.j]
Gradients: [-0.87942+0.j  0.40254+0.j -0.3001 +0.j  0.2497 +0.j]

Plotte den Realteil von \(Y_0\) und die ersten vier berechneten Wurzeln.

>>> import matplotlib.pyplot as plt
>>> from scipy.special import y0
>>> xmin = 0
>>> xmax = 11
>>> x = np.linspace(xmin, xmax, 500)
>>> fig, ax = plt.subplots()
>>> ax.hlines(0, xmin, xmax, color='k')
>>> ax.plot(x, y0(x), label=r'$Y_0$')
>>> zeros, grads = y0_zeros(4)
>>> ax.scatter(zeros.real, np.zeros((4, )), s=30, c='r',
...            label=r'$Y_0$_zeros', zorder=5)
>>> ax.set_ylim(-0.5, 0.6)
>>> ax.set_xlim(xmin, xmax)
>>> plt.legend(ncol=2)
>>> plt.show()
../../_images/scipy-special-y0_zeros-1_00_00.png

Berechne die ersten 4 komplexen Wurzeln und die Ableitungen an den Wurzeln von \(Y_0\), indem complex=True gesetzt wird.

>>> y0_zeros(4, True)
(array([ -2.40301663+0.53988231j,  -5.5198767 +0.54718001j,
         -8.6536724 +0.54841207j, -11.79151203+0.54881912j]),
 array([ 0.10074769-0.88196771j, -0.02924642+0.5871695j ,
         0.01490806-0.46945875j, -0.00937368+0.40230454j]))