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()
Berechne die ersten 4 komplexen Wurzeln und die Ableitungen an den Wurzeln von \(Y_0\), indem
complex=Truegesetzt 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]))