besselh
제3종 베셀 함수(Bessel Function Of Third Kind) (한켈 함수(Hankel Function))
설명
예제
한켈 함수(Hankel Function)의 절댓값(Modulus)과 위상(Phase)
한켈 함수 의 절댓값과 위상으로 구성된 등고선 플롯을 생성합니다 [1].
영역 값에 대해 그리드를 생성합니다.
[X,Y] = meshgrid(-4:0.002:2,-1.5:0.002:1.5);
이 영역에 대해 한켈 함수(Hankel Function)를 계산한 다음 절댓값 등고선 플롯을 생성합니다.
H = besselh(0,X+1i*Y);
contour(X,Y,abs(H),0:0.2:3.2)
hold on
같은 Figure에 위상의 등고선 플롯을 추가합니다.
contour(X,Y,rad2deg(angle(H)),-180:10:180)
hold off
점근적 특성
제2종 한켈 함수의 실수부와 허수부를 플로팅하고 점근적 특성을 검토합니다.
구간 에 대해 제2종 한켈 함수 를 계산합니다.
k = 2; nu = 0; z = linspace(0.1,25,200); H = besselh(nu,k,z);
함수의 실수부와 허수부를 플로팅합니다. 동일한 Figure에 선형 결합 를 플로팅합니다. 플롯에서 실수부와 허수부 크기의 점근적 특성을 확인할 수 있습니다.
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')
지수적으로 스케일링된 한켈 함수
복소 평면에서 지수적으로 스케일링된 한켈 함수 을 계산하고 스케일링되지 않은 함수와 비교합니다.
복소 평면에서 스케일링되지 않은 2계 한켈 함수를 계산합니다. 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
는 제1종 한켈 함수 를 계산합니다.K = 2
이면besselh
는 제2종 한켈 함수 를 계산합니다.
예: besselh(nu,2,Z)
Z
— 함수 정의역
스칼라 | 벡터 | 행렬 | 다차원 배열
함수 정의역으로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다. nu
와 Z
는 크기가 동일하거나, 둘 중 하나가 스칼라일 수 있습니다.
예: besselh(nu,[1-1i 1+0i 1+1i])
데이터형: single
| double
복소수 지원 여부: 예
scale
— 함수 스케일링 여부
0
(디폴트 값) | 1
함수 스케일링 여부로, 다음 값 중 하나로 지정됩니다.
0
(디폴트 값) — 스케일링 안 함1
—K
의 값에 따라 다음과 같이besselh
의 출력값을 스케일링합니다.K = 1
이면 제1종 한켈 함수 를 배만큼 스케일링합니다.K = 2
이면 제2종 한켈 함수 를 배만큼 스케일링합니다.
복소 평면에서
imag(Z)
의 값이 크고 음수이면 가 오버플로됩니다. 마찬가지로,imag(Z)
의 값이 크고 양수이면 가 오버플로됩니다.besselh
는 정확도를 손실하거나 배정밀도의 제한을 오버플로하기 쉬우므로 위 두 경우에 이 함수의 출력값을 지수적으로 스케일링하는 것이 유용합니다.
예: besselh(nu,K,Z,1)
세부 정보
한켈 함수와 베셀 방정식
참고 문헌
[1] Abramowitz, M., and I.A. Stegun. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55, Dover Publications, 1965.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 tall형 배열을 완전히 지원합니다. 자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
항상 복소수 결과를 반환합니다.
엄격한 단정밀도 계산은 지원되지 않습니다. 생성된 코드에서, 단정밀도 입력값은 단정밀도 출력값을 생성합니다. 그러나 함수 내의 변수는 배정밀도일 수 있습니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
항상 복소수 결과를 반환합니다.
엄격한 단정밀도 계산은 지원되지 않습니다. 생성된 코드에서, 단정밀도 입력값은 단정밀도 출력값을 생성합니다. 그러나 함수 내의 변수는 배정밀도일 수 있습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)