Функция Бесселя третьего рода (функция Ганкеля)
H = besselh(
вычисляет функцию Ханкеля первого рода для каждого элемента в массиве nu
,Z
)Z
.
H = besselh(
вычисляет функцию Ханкеля первого или второго рода , где nu
,K
,Z
)K
является 1
или 2
, для каждого элемента массива 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
На том же рисунке добавьте контурный график фазы.
contour(X,Y,rad2deg(angle(H)),-180:10:180)
hold off
Постройте график реальных и мнимых частей функции Ханкеля второго рода и исследуйте их асимптотическое поведение.
Вычислим функцию Ханкеля второго рода в интервале .
k = 2; nu = 0; z = linspace(0.1,25,200); H = besselh(nu,k,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')
Вычислим экспоненциально масштабированную функцию Ханкеля на комплексной плоскости и сравните ее с неограниченной функцией.
Вычислите не масштабированную функцию Ханкеля второго порядка на комплексной плоскости. Когда 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)')
Теперь вычислите на комплексной плоскости и сравните ее с неограниченной функцией. Масштабированная функция увеличивает область значений вычисляемых значений, избегая переполнения и потери точности при z
имеет большую положительную мнимую часть.
Hs = besselh(nu,k,z,scaled); surf(x,y,imag(Hs)) xlabel('real(z)') ylabel('imag(z)')
nu
- Порядок уравненияПорядок уравнения, заданный как скаляр, вектор, матрица или многомерный массив. nu
задает порядок функции Ханкеля. nu
и Z
должен быть того же размера, или один из них может быть скалярным.
Пример: besselh(3,Z)
Типы данных: single
| double
K
- Вид функции Ханкеля1
(по умолчанию) | 2
Вид функции Ханкеля, заданный как 1
или 2
.
Если K = 1
, затем besselh
вычисляет функцию Ханкеля первого рода .
Если K = 2
, затем besselh
вычисляет функцию Ханкеля второго рода .
Пример: besselh(nu,2,Z)
Z
- Функциональная областьФункциональная область, заданная как скалярный, векторный, матричный или многомерный массив. nu
и Z
должен быть того же размера, или один из них может быть скалярным.
Пример: besselh(nu,[1-1i 1+0i 1+1i])
Типы данных: single
| double
Поддержка комплексного числа: Да
scale
- Переключение на функцию масштабирования0
(по умолчанию) | 1
Переключение на масштабную функцию, заданное как одно из следующих значений:
0
(по умолчанию) - Без масштабирования
1
- Масштабируйте выходные данные besselh
, в зависимости от значения K
:
Если K = 1
, затем масштабируйте функцию Ханкеля первого рода около .
Если K = 2
, затем масштабируйте функцию Ханкеля второго рода около .
На комплексной плоскости, переполнение при imag(Z)
является большим и отрицательным. Точно так же, переполнение при imag(Z)
является большим и положительным. Экспоненциальное масштабирование выхода besselh
полезно в этих двух случаях, поскольку функция в противном случае быстро теряет точность или переполняет пределы двойной точности.
Пример: besselh(nu,K,Z,1)
Это дифференциальное уравнение, где ν является действительной константой, называется уравнением Бесселя:
Его решения известны как функции Бесселя.
Функции Бесселя первого рода, обозначенные J ν (z) и J - ν (z), образуют фундаментальный набор решений уравнения Бесселя для нецелочисленных ν. Функции Бесселя второго рода, обозначенные Y ν (z), образуют второе решение уравнения Бесселя - линейно независимое от J ν (z) - заданное как
Функции Бесселя третьего рода, также называемые функциями Ганкеля первого и второго рода, заданы линейными комбинациями функций Бесселя, где J ν (z) являетсяbesselj
, и Y ν (z) bessely
:
[1] Абрамовиц, М. и И. А. Штегун. Справочник по математическим функциям. Национальное бюро стандартов, Applied Math. Series # 55, Dover Publications, 1965.
Эта функция полностью поддерживает длинные массивы. Для получения дополнительной информации см. Раздел «Длинные массивы»
Указания и ограничения по применению:
Всегда возвращает комплексный результат.
Строгие расчеты с одной точностью не поддерживаются. В сгенерированном коде входы с одной точностью приводят к выходам с одной точностью. Однако переменные внутри функции могут быть с двойной точностью.
Указания и ограничения по применению:
Всегда возвращает комплексный результат.
Строгие расчеты с одной точностью не поддерживаются. В сгенерированном коде входы с одной точностью приводят к выходам с одной точностью. Однако переменные внутри функции могут быть с двойной точностью.
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.