Функция Бесселя третьего вида (функция Ганкеля)
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
— Вид функции Ганкеля
(значение по умолчанию) | 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
— Переключитесь, чтобы масштабировать функцию
(значение по умолчанию) | 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] Abramowitz, M. и И.А. Стегун. Руководство математических функций. Национальное бюро стандартов, прикладная математика. Серия № 55, Дуврские публикации, 1965.
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации см. Раздел "Высокие массивы".
Указания и ограничения по применению:
Всегда возвращает комплексный результат.
Строгие вычисления с одинарной точностью не поддерживаются. В сгенерированном коде входные параметры с одинарной точностью производят выходные параметры с одинарной точностью. Однако переменные в функциональной силе быть с двойной точностью.
Указания и ограничения по применению:
Всегда возвращает комплексный результат.
Строгие вычисления с одинарной точностью не поддерживаются. В сгенерированном коде входные параметры с одинарной точностью производят выходные параметры с одинарной точностью. Однако переменные в функциональной силе быть с двойной точностью.
backgroundPool
или ускорьте код с Parallel Computing Toolbox™ ThreadPool
.Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.