besselh

Функция Бесселя третьего рода (функция Ганкеля)

Описание

пример

H = besselh(nu,Z) вычисляет функцию Ханкеля первого рода Hν(1)(z)=Jν(z)+iYν(z) для каждого элемента в массиве Z.

пример

H = besselh(nu,K,Z) вычисляет функцию Ханкеля первого или второго рода Hν(K)(z), где K является 1 или 2, для каждого элемента массива Z.

пример

H = besselh(nu,K,Z,scale) определяет, масштабировать ли функцию Ханкеля, чтобы избежать переполнения или потери точности. Если scale является 1, затем функции Ханкеля первого рода Hν(1)(z) масштабируются eiZ, и функции Ханкеля второго рода Hν(2)(z) масштабируются e+iZ.

Примеры

свернуть все

Сгенерируйте контурные графики модуля и фазы функции Ханкеля H0(1)(z) [1].

Создайте сетку значений для области.

[X,Y] = meshgrid(-4:0.002:2,-1.5:0.002:1.5);

Вычислите функцию Ханкеля в этой области и сгенерируйте контурный график модуля.

H = besselh(0,X+1i*Y);
contour(X,Y,abs(H),0:0.2:3.2)
hold on

Figure contains an axes. The axes contains an object of type contour.

На том же рисунке добавьте контурный график фазы.

contour(X,Y,rad2deg(angle(H)),-180:10:180)
hold off

Figure contains an axes. The axes contains 2 objects of type contour.

Постройте график реальных и мнимых частей функции Ханкеля второго рода и исследуйте их асимптотическое поведение.

Вычислим функцию Ханкеля второго рода H0(2)(z)=J0(z)-iY0(z) в интервале [0.1,25].

k = 2;
nu = 0;
z = linspace(0.1,25,200);
H = besselh(nu,k,z);

Постройте график действительной и мнимой частей функции. На том же рисунке постройте график линейной комбинации J02(z)+Y02(z), что раскрывает асимптотическое поведение величин действительной и мнимой частей.

plot(z,real(H),z,imag(H))
grid on
hold on
M = sqrt(real(H).^2 + imag(H).^2);
plot(z,M,'--')
legend('$J_0(z)$', '$Y_0(z)$', '$\sqrt{J_0^2 (z) + Y_0^2 (z)}$','interpreter','latex')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent $J_0(z)$, $Y_0(z)$, $\sqrt{J_0^2 (z) + Y_0^2 (z)}$.

Вычислим экспоненциально масштабированную функцию Ханкеля H1(2)(z)eiz на комплексной плоскости и сравните ее с неограниченной функцией.

Вычислите не масштабированную функцию Ханкеля второго порядка на комплексной плоскости. Когда z имеет большую положительную мнимую часть, значение функции быстро расходится. Это явление ограничивает область значений вычисляемых значений.

k = 2;
nu = 1;
x = -5:0.4:15;
y = x';
z = x + 1i*y;
scaled = 1;
H = besselh(nu,k,z);
surf(x,y,imag(H))
xlabel('real(z)')
ylabel('imag(z)')

Figure contains an axes. The axes contains an object of type surface.

Теперь вычислите H1(2)(z)eiz на комплексной плоскости и сравните ее с неограниченной функцией. Масштабированная функция увеличивает область значений вычисляемых значений, избегая переполнения и потери точности при z имеет большую положительную мнимую часть.

Hs = besselh(nu,k,z,scaled);
surf(x,y,imag(Hs))
xlabel('real(z)')
ylabel('imag(z)')

Figure contains an axes. The axes contains an object of type surface.

Входные параметры

свернуть все

Порядок уравнения, заданный как скаляр, вектор, матрица или многомерный массив. nu задает порядок функции Ханкеля. nu и Z должен быть того же размера, или один из них может быть скалярным.

Пример: besselh(3,Z)

Типы данных: single | double

Вид функции Ханкеля, заданный как 1 или 2.

  • Если K = 1, затем besselh вычисляет функцию Ханкеля первого рода Hν(1)(z)=Jν(z)+iYν(z).

  • Если K = 2, затем besselh вычисляет функцию Ханкеля второго рода Hν(2)(z)=Jν(z)iYν(z).

Пример: besselh(nu,2,Z)

Функциональная область, заданная как скалярный, векторный, матричный или многомерный массив. nu и Z должен быть того же размера, или один из них может быть скалярным.

Пример: besselh(nu,[1-1i 1+0i 1+1i])

Типы данных: single | double
Поддержка комплексного числа: Да

Переключение на масштабную функцию, заданное как одно из следующих значений:

  • 0 (по умолчанию) - Без масштабирования

  • 1 - Масштабируйте выходные данные besselh, в зависимости от значения K:

    • Если K = 1, затем масштабируйте функцию Ханкеля первого рода Hν(1)(z) около eiZ.

    • Если K = 2, затем масштабируйте функцию Ханкеля второго рода Hν(2)(z) около e+iZ.

    На комплексной плоскости, Hν(1)(z) переполнение при imag(Z) является большим и отрицательным. Точно так же, Hν(2)(z) переполнение при imag(Z) является большим и положительным. Экспоненциальное масштабирование выхода besselh полезно в этих двух случаях, поскольку функция в противном случае быстро теряет точность или переполняет пределы двойной точности.

Пример: besselh(nu,K,Z,1)

Подробнее о

свернуть все

Функции Ханкеля и уравнение Бесселя

Это дифференциальное уравнение, где ν является действительной константой, называется уравнением Бесселя:

z2d2ydz2+zdydz+(z2ν2)y=0.

Его решения известны как функции Бесселя.

Функции Бесселя первого рода, обозначенные J ν (z) и J - ν (z), образуют фундаментальный набор решений уравнения Бесселя для нецелочисленных ν. Функции Бесселя второго рода, обозначенные Y ν (z), образуют второе решение уравнения Бесселя - линейно независимое от J ν (z) - заданное как

Yν(z)=Jν(z)cos(νπ)Jν(z)sin(νπ).

Функции Бесселя третьего рода, также называемые функциями Ганкеля первого и второго рода, заданы линейными комбинациями функций Бесселя, где J ν (z) являетсяbesselj, и Y ν (z) bessely:

Hν(1)(z)=Jν(z)+iYν(z)Hν(2)(z)=Jν(z)iYν(z).

Ссылки

[1] Абрамовиц, М. и И. А. Штегун. Справочник по математическим функциям. Национальное бюро стандартов, Applied Math. Series # 55, Dover Publications, 1965.

Расширенные возможности

..

См. также

| | |

Представлено до R2006a