y1_zeros#
- scipy.special.y1_zeros(nt, комплексный=False)[источник]#
Вычислить nt нулей функции Бесселя Y1(z) и производную в каждом нуле.
Производные задаются как Y1'(z1) = Y0(z1) в каждом нуле z1.
- Параметры:
- ntint
Количество нулей для возврата
- комплексныйbool, по умолчанию False
Установите False, чтобы возвращать только действительные нули; установите True, чтобы возвращать только комплексные нули с отрицательной действительной частью и положительной мнимой частью. Обратите внимание, что комплексно-сопряженные к последним также являются нулями функции, но не возвращаются этой процедурой.
- Возвращает:
- z1nndarray
Расположение n-го нуля Y1(z)
- y1pz1nndarray
Значение производной Y1’(z1) для n-го нуля
Ссылки
[1]Zhang, Shanjie and Jin, Jianming. “Computation of Special Functions”, John Wiley and Sons, 1996, chapter 5. https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
Примеры
Вычислить первые 4 вещественных корня и производные в корнях \(Y_1\):
>>> import numpy as np >>> from scipy.special import y1_zeros >>> zeros, grads = y1_zeros(4) >>> with np.printoptions(precision=5): ... print(f"Roots: {zeros}") ... print(f"Gradients: {grads}") Roots: [ 2.19714+0.j 5.42968+0.j 8.59601+0.j 11.74915+0.j] Gradients: [ 0.52079+0.j -0.34032+0.j 0.27146+0.j -0.23246+0.j]
Извлечь действительные части:
>>> realzeros = zeros.real >>> realzeros array([ 2.19714133, 5.42968104, 8.59600587, 11.74915483])
Построить график \(Y_1\) и первые четыре вычисленных корня.
>>> import matplotlib.pyplot as plt >>> from scipy.special import y1 >>> xmin = 0 >>> xmax = 13 >>> x = np.linspace(xmin, xmax, 500) >>> zeros, grads = y1_zeros(4) >>> fig, ax = plt.subplots() >>> ax.hlines(0, xmin, xmax, color='k') >>> ax.plot(x, y1(x), label=r'$Y_1$') >>> ax.scatter(zeros.real, np.zeros((4, )), s=30, c='r', ... label=r'$Y_1$_zeros', zorder=5) >>> ax.set_ylim(-0.5, 0.5) >>> ax.set_xlim(xmin, xmax) >>> plt.legend() >>> plt.show()
Вычислить первые 4 комплексных корня и производные в корнях \(Y_1\) установкой
complex=True:>>> y1_zeros(4, True) (array([ -0.50274327+0.78624371j, -3.83353519+0.56235654j, -7.01590368+0.55339305j, -10.17357383+0.55127339j]), array([-0.45952768+1.31710194j, 0.04830191-0.69251288j, -0.02012695+0.51864253j, 0.011614 -0.43203296j]))