Yamamoto's Laboratory
 
     Math::Trig
 
 
 
 
コンピューター Perl モジュール(Math::Trig)

Perlモジュール:三角関数(Math::Trig)

Perl もモジュール「Math::Trig」について説明します.三角関数の計算や座標変換ができます.

目次


使い方

三角関数のモジュール Math::Trig を使うために,use でロードするだけです.以下のプログラムを見れば,使い方は分かると思います.

Math::Trig を使った例 (math_trig.pl).

001   #!/usr/bin/perl
002   use Math::Trig;
003   
004   #-------------- 円周率 -----------------------------------
005   $circle_ratio = pi;             # 円周率は,pi
006   printf "circle_ratio: %f\n", $circle_ratio;
007   
008   #-------------- 三角関数の計算 ---------------------------
009   $angle = deg2rad(30);           # degree から radian への変換
010   $s = sin($angle);
011   $c = cos($angle);
012   $t = tan($angle);
013   
014   printf "angle: %f[deg]\n", $angle;
015   printf "sin: %f\tcos: %f\ttan: %f\n", $s, $c, $t;
016   
017   #-------------- 逆三角関数の計算 ---------------------------
018   $as  = asin(1.0/2.0);
019   $ac  = acos(sqrt(3.0)/2.0);
020   $at  = atan(1.0/sqrt(3.0));
021   $at2 = atan2(-1.0, -sqrt(3.0));
022   $as_deg  = rad2deg($as);         # radian から degree への変換
023   $ac_deg  = rad2deg($ac);
024   $at_deg  = rad2deg($at);
025   $at2_deg = rad2deg($at2);
026   printf "arcsin: %f\t", $as_deg;
027   printf "arccos: %f\n", $ac_deg;
028   printf "arctan: %f\t", $at_deg;
029   printf "arctan2: %f\n", $at2_deg;
030   
031   #-------------- 双曲線関数の計算 ---------------------------
032   $sh = sinh(1);
033   $ch = cosh(1);
034   $th = tanh(1);
035   
036   printf "sinh: %f\tcosh: %f\ttanh: %f\n", $sh, $ch, $th;
037   
038   #-------------- 逆曲線関数の計算 ---------------------------
039   $ash = asinh(2);
040   $ach = acosh(2);
041   $ath = atanh(2);
042   
043   printf "arcsinh: %f\tarccosh: %f\tarctanh: %f\n", $ash, $ach, $ath;

このプログラムに実行権限を与えて,実行した結果を以下に示します.

$ ./math_trig.pl
circle_ratio: 3.141593
angle: 0.523599[deg]
sin: 0.500000       cos: 0.866025       tan: 0.577350
arcsin: 30.000000       arccos: 30.000000
arctan: 30.000000       arctan2: -150.000000
sinh: 1.175201       cosh: 1.543081       tanh: 0.761594
arcsinh: 1.443635       arccosh: 1.316958       arctanh: 0.549306

機能

定数

円周率が定義されています.

Math::Trig で定義されている定数.
定数名
pi 円周率(3.141592653589793...).

関数

三角関数や双曲線関数に関するものや,座標変換に関するものが用意されています.

Math::Trig で用意されている関数.もちろん,引数や戻り値の角度の単位は,radian です.
関数名 戻り値/機能
sin($x) sin(x)の値.
cos($x) cos(x)の値.
tan($x) tan(x)の値.
csc($x), cosec($x) 1/sin(x)の値.
sec($x) 1/cos(x)の値.
cot($x), cotan($x) 1/tan(x)の値.
asin($x) sin(x)の逆関数(arcsin)の値.
acos($x) cos(x)の逆関数(arccos)の値.
atan($x) tan(x)の逆関数(arctan)の値.
atan2($y, $x) デカルト座標系での点(x, y)の原点からの角度.
acsc($x), cosec(x) 1/sin(x)の逆関数の値.
asec($x) 1/cos(x)の逆関数の値.
acot($x), cotan(x) 1/tan(x)の逆関数の値.
sinh($x) sinh(x)の値.
cosh($x) cosh(x)の値.
tanh($x) tanh(x)の値.
csch($x), cosech(x) 1/sinh(x)の値.
sech($x) 1/cosh(x)の値.
coth($x), cotanh($x) 1/tanh(x)の値.
asinh(x) sinh(x)の逆関数(arcsinh)の値.
acosh($x) cosh(x)の逆関数(arccosh)の値.
atanh($x) tanh(x)の逆関数(arctanh)の値.
acsch($x), acosech($x) 1/sinh(x)の逆関数の値.
asech($x) 1/cosh(x)の逆関数の値.
acoth($x), cotanh(x) 1/tanh(x)の逆関数の値.
deg2rad($degrees) 角度単位の変換.[degree]→[radian]
grad2rad($gradians) 角度単位の変換.[grade]→[radian]
rad2deg($radians) 角度単位の変換.[radian]→[degree]
grad2deg($gradians) 角度単位の変換.[grade]→[degree]
deg2grad($degrees) 角度単位の変換.[degree]→[grade]
rad2grad($radians) 角度単位の変換.[radian]→[grade]

座標変換

座標変換に関する以下の関数は,「use Math::Trig ':radial'」とする必要があります.

Math::Trig で用意されている座標系の変換.もちろん,引数や戻り値の角度の単位は,radian です.
関数名 元の座標系 → 変換された座標系
cartesian_to_cylindrical($x, $y, $z) (x, y, z) → (r, θ, z)
cartesian_to_spherical($x, $y, $z) (x, y, z) → (r, θ, φ)
cylindrical_to_cartesian($rho, $theta, $z) (r, θ, z) → (x, y, z)
cylindrical_to_spherical($rho_c, $theta, $z) (r, θ, z) → (r, θ, φ)
spherical_to_cartesian($rho, $theta, $phi) (r, θ, φ) → (x, y, z)
spherical_to_cylindrical($rho_s, $theta, $phi) (r, θ, φ) → (r, θ, z)

ページ作成情報

参考資料

更新履歴

2009年頃 ページの新規作成
2014年04月12日 体裁の変更.プログラム(math_trig.pl)の実行結果の追加.


no counter