Main Content

ellipj

야코비 타원 함수(Jacobi Elliptic Function)

설명

예제

[SN,CN,DN] = ellipj(U,M)은 대응하는 인수 U와 파라미터 M의 요소에 대해 함수를 실행하고, 결과로 야코비 타원 함수(Jacobi Elliptic Function) SN, CN, DN을 반환합니다. 입력 인수 UM은 크기가 동일해야 합니다. 또는 UM 중 하나가 스칼라여야 합니다.

예제

[SN,CN,DN] = ellipj(U,M,tol)tol(허용오차)까지의 정확도로 야코비 타원 함수(Jacobi Elliptic Function)를 계산합니다. tol의 디폴트 값은 eps입니다. tol 값을 올리면 정확도는 떨어지지만 답을 더 빠르게 계산할 수 있습니다.

예제

모두 축소

U = 0.5, M = 0.25인 야코비 타원 함수를 구합니다.

[s,c,d] = ellipj(0.5,0.25)
s = 0.4751
c = 0.8799
d = 0.9714

-5≤U≤5M = 0.7에 대한 야코비 타원 함수를 플로팅합니다.

M = 0.7;
U = -5:0.01:5;
[S,C,D] = ellipj(U,M);
plot(U,S,U,C,U,D);
legend('SN','CN','DN','Location','best')
grid on
title('Jacobi Elliptic Functions sn,cn,dn')

Figure contains an axes object. The axes object with title Jacobi Elliptic Functions sn,cn,dn contains 3 objects of type line. These objects represent SN, CN, DN.

허용된 M의 범위와 -5≤U≤5에 대한 야코비 타원 sn 함수의 곡면 플롯을 생성합니다.

[M,U] = meshgrid(0:0.1:1,-5:0.1:5);
S = ellipj(U,M);
surf(U,M,S)
xlabel('U')
ylabel('M')
zlabel('sn')
title('Surface Plot of Jacobi Elliptic Function sn')

Figure contains an axes object. The axes object with title Surface Plot of Jacobi Elliptic Function sn, xlabel U, ylabel M contains an object of type surface.

tol의 디폴트 값은 eps입니다. tictoc을 이용해 임의의 M에 대한 디폴트 값으로 런타임을 구합니다. tol을 1000배로 늘린 다음 실행 시간을 구합니다. 런타임을 비교합니다.

tic
ellipj(0.253,0.937)
ans = 0.2479
toc
Elapsed time is 0.092168 seconds.
tic
ellipj(0.253,0.937,eps*1000)
ans = 0.2479
toc
Elapsed time is 0.015972 seconds.

허용오차를 크게 늘리면 ellipj가 확연히 더 빠르게 실행됩니다.

입력 인수

모두 축소

입력 배열로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. U는 실수 값으로 제한됩니다. U가 비 스칼라인 경우 MU와 같은 크기의 비 스칼라이거나 스칼라여야 합니다.

데이터형: single | double

입력 배열로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다. M0≤ m ≤1인 값을 취할 수 있습니다. M이 비 스칼라인 경우 UM과 같은 크기의 비 스칼라이거나 스칼라여야 합니다. [1]의 16.10과 16.11 방정식에 설명된 변환을 사용하여 M의 다른 값을 이 범위로 매핑합니다.

데이터형: single | double

결과의 정확도로, 음이 아닌 실수로 지정됩니다. 디폴트 값은 eps입니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

야코비 타원 함수(Jacobi Elliptic Function) sn으로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 반환됩니다.

야코비 타원 함수(Jacobi Elliptic Function) cn으로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 반환됩니다.

야코비 타원 함수(Jacobi Elliptic Function) dn으로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 반환됩니다.

세부 정보

모두 축소

야코비 타원 함수(Jacobi Elliptic Function)

야코비 타원 함수는 다음과 같은 적분으로 정의됩니다.

u=0ϕdθ1msin2θ.

그리고 다음과 같습니다.

sn(u)=sinϕ, cn(u)=cosϕ, dn(u)=1msin2ϕ.

타원 함수의 일부 정의는 파라미터 m 대신 타원 절댓값 k나 모듈러 각 α를 사용합니다. 이들은 다음과 같은 관계식을 가집니다.

k2=m=sin2a.

야코비 타원 함수는 많은 수학적 항등식을 따릅니다. 유용한 샘플은 [1] 항목을 참조하십시오.

알고리즘

ellipj[1]의 산술-기하 평균 메서드를 사용하여 야코비 타원 함수(Jacobi Elliptic Function)를 계산합니다. 다음 세 개의 값에서 시작합니다.

a0=1, b0=1m, c0=m.

ellipj는 다음 식을 사용하여 반복적으로 계산합니다.

ai=12(ai1+bi1)bi=(ai1bi1)12ci=12(ai1bi1).

그리고 다음을 사용하여 진폭을 라디안으로 계산합니다.

sin(2ϕn1ϕn)=cnansin(ϕn),

이때 위상 펼침(Phase Unwrapping)을 올바로 조정해야 합니다. 그러면 야코비 타원 함수는 간단히 다음과 같은 결과를 갖습니다.

sn(u)=sinϕ0cn(u)=cosϕ0dn(u)=1msn(u)2.

참고 문헌

[1] Abramowitz, M. and I. A. Stegun, Handbook of Mathematical Functions, Dover Publications, 1965, 17.6.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목