Функция Бесселя первого рода
J = besselj(
вычисляет функцию Бесселя первого рода
J ν (z) для каждого элемента в массиве Znu
,Z
).
Определите область.
z = 0:0.1:20;
Вычислим первые пять функций Бесселя первого рода. Каждая строка J
содержит значения одного порядка функции, вычисленные в точках в z
.
J = zeros(5,201); for i = 0:4 J(i+1,:) = besselj(i,z); end
Постройте график всех функций на том же рисунке.
plot(z,J) grid on legend('J_0','J_1','J_2','J_3','J_4','Location','Best') title('Bessel Functions of the First Kind for $\nu \in [0, 4]$','interpreter','latex') xlabel('z','interpreter','latex') ylabel('$J_\nu(z)$','interpreter','latex')
Вычислим немасштабированный (J
) и масштабированный (Js
) Функция Бесселя первого рода для комплексных чисел .
x = -10:0.3:10; y = x'; z = x + 1i*y; scale = 1; J = besselj(2,z); Js = besselj(2,z,scale);
Сравните графики мнимой части масштабированных и немасштабированных функций. Для больших значений abs(imag(z))
немасштабированная функция быстро переполняет пределы двойной точности и перестает быть вычисляемой. Масштабированная функция удаляет это доминирующее экспоненциальное поведение из вычисления и, таким образом, имеет большую область значений вычисляемости по сравнению с немасштабированной функцией.
surf(x,y,imag(J)) title('Bessel Function of the First Kind','interpreter','latex') xlabel('real(z)','interpreter','latex') ylabel('imag(z)','interpreter','latex')
surf(x,y,imag(Js)) title('Scaled Bessel Function of the First Kind','interpreter','latex') xlabel('real(z)','interpreter','latex') ylabel('imag(z)','interpreter','latex')
nu
- Порядок уравненияПорядок уравнения, заданный как скаляр, вектор, матрица или многомерный массив. nu
является вещественным числом, которое задает порядок функции Бесселя первого рода. nu
и Z
должен быть того же размера, или один из них может быть скалярным.
Пример: besselj(3,0:5)
Типы данных: single
| double
Z
- Функциональная областьФункциональная область, заданная как скалярный, векторный, матричный или многомерный массив. besselj
является реальным, где Z
положительно. nu
и Z
должен быть того же размера, или один из них может быть скалярным.
Пример: besselj(1,[1-1i 1+0i 1+1i])
Типы данных: single
| double
Поддержка комплексного числа: Да
scale
- Переключение на функцию масштабирования0
(по умолчанию) | 1
Переключение на масштабную функцию, заданное как одно из следующих значений:
0
(по умолчанию) - Без масштабирования
1
- Масштабируйте выходные данные besselj
по exp(-abs(imag(Z)))
На комплексной плоскости величина besselj
быстро растет как значение abs(imag(Z))
увеличивается, поэтому экспоненциальное масштабирование выхода полезно для больших значений abs(imag(Z))
где результаты в противном случае быстро теряют точность или переполняют пределы двойной точности.
Пример: besselj(3,0:5,1)
Это дифференциальное уравнение, где ν является действительной константой, называется уравнением Бесселя:
Его решения известны как функции Бесселя.
Функции Бесселя первого рода, обозначенные J ν (z) и J - ν (z), образуют фундаментальный набор решений уравнения Бесселя для нецелочисленных ν. J ν (z) определяется как
Функции Бесселя второго рода, обозначенные Y ν (z), образуют второе решение уравнения Бесселя, линейно независимое от J ν (z). Y ν (z) определяется как
Вычислить функции Бесселя второго рода можно используя bessely
.
Функции Бесселя связаны с функциями Ханкеля, также называемыми функциями Бесселя третьего рода:
является besselh
, J ν (z) являетсяbesselj
, и Y ν (z) bessely
. Функции Ханкеля также образуют фундаментальный набор решений уравнения Бесселя (см. besselh
).
Эта функция полностью поддерживает длинные массивы. Для получения дополнительной информации см. Раздел «Длинные массивы»
Указания и ограничения по применению:
Всегда возвращает комплексный результат.
Строгие расчеты с одной точностью не поддерживаются. В сгенерированном коде входы с одной точностью приводят к выходам с одной точностью. Однако переменные внутри функции могут быть с двойной точностью.
Указания и ограничения по применению:
Всегда возвращает комплексный результат.
Строгие расчеты с одной точностью не поддерживаются. В сгенерированном коде входы с одной точностью приводят к выходам с одной точностью. Однако переменные внутри функции могут быть с двойной точностью.
Указания и ограничения по применению:
The порядка <reservedrangesplaceholder0>
должно быть положительным, вещественным, целым числом.
Аргумент Z
должно быть действительным значением.
Синтаксис трех входных J = besselj(nu,Z,scale)
не поддерживается.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.