Main Content

ellipj

説明

[SN,CN,DN] = ellipj(U,M) は、引数 U とパラメーター M の対応要素に関して評価された、ヤコビ楕円関数 SNCNDN を返します。入力 UM は同じサイズであるか、U または M のいずれかがスカラーでなければなりません。

[SN,CN,DN] = ellipj(U,M,tol) は、精度 tol でヤコビ楕円関数を計算します。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≤5 および M = 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 です。任意の M に対して既定値を用いた実行時間を tictoc を使用して取得します。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 が非スカラーの場合、M はスカラーであるか、U と同じサイズの非スカラーでなければなりません。

データ型: single | double

入力配列。スカラー、ベクトル、行列または多次元配列として指定します。M0≤ m ≤1 の値をとることができます。M が非スカラーの場合、U はスカラーであるか、M と同じサイズの非スカラーでなければなりません。M のその他の値は、[1] に記載されている変換式 16.10 と 16.11 を使用して、この範囲にマッピングします。

データ型: single | double

結果の精度。非負の実数として指定します。既定値は eps です。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

ヤコビ楕円関数の sn。スカラー、ベクトル、行列または多次元配列として返されます。

ヤコビ楕円関数の cn。スカラー、ベクトル、行列または多次元配列として返されます。

ヤコビ楕円関数の dn。スカラー、ベクトル、行列または多次元配列として返されます。

詳細

すべて折りたたむ

ヤコビ楕円関数

ヤコビ楕円関数は、積分項で定義されます。

u=0ϕdθ1msin2θ.

以下のようになります。

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

いくつかの楕円関数の定義では、パラメーター m の代わりに楕円係数 k またはモジュラー角 α を使用します。次式のような関係があります。

k2=m=sin2a.

ヤコビ楕円関数は、多くの数学的な恒等式に従います。良い例については、[1]を参照してください。

アルゴリズム

ellipj は、[1]の算術幾何平均を使って、ヤコビ楕円関数を計算します。3 つの値から始めます。

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

ellipj は以下の式を使用して次の反復を計算します。

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

次に、以下の式でラジアン単位で振幅を計算します。

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

このとき、位相の連続性に注意してください。ヤコビ楕円関数は、簡単に以下の式で表されます。

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 より前に導入

参考