師匠の散歩

きままにPerlでも

三角関数

Math モジュールで、その他の三角関数を求める/ mathTrig.cgi

π

#!/usr/local/bin/perl
use Math::Trig;

$x=pi;
$y=pine;
print pi;         
print pine;
print "π = pi";
print "松 = pine";
print "π = $x";
print "松 = $y";
print sin(0);
print sin(pi);

出力結果

3.14159265358979

π = pi
松 = pine
π = 3.14159265358979
松 = pine
0
1.22464679914735e-16
注意事項
古いPerlでは、解が無限大となる計算式はエラーとなった
例:v5.5 で tan(pi/2) を計算すると、500エラーが発生した
strict 宣言後は、 my $t = pine という代入ではエラーとなり、 my $t = "pine" と文字列をくくらないといけない。

その他三角関数

# 正接(タンジェント)
print "tan(pi)  :" . sprintf("%.4f", tan(pi)) . "\n";
print "tan(pi/2):" . sprintf("%.4f", tan(pi /2)) . "\n";
print "tan(pi/4):" . sprintf("%.4f", tan(pi /4)) . "\n\n";

# 正割(セカント)
print "sec(pi)  :" . sprintf("%.4f", sec(pi)) . "\n";
print "sec(pi/2):" . sprintf("%.4f", sec(pi /2)) . "\n";
print "sec(pi/4):" . sprintf("%.4f", sec(pi /4)) . "\n\n";

# 余割(コセカント)
print "csc(pi)  :" . sprintf("%.4f", csc(pi)) . "\n";
print "csc(pi/2):" . sprintf("%.4f", csc(pi /2)) . "\n";
print "csc(pi/4):" . sprintf("%.4f", csc(pi /4)) . "\n\n";

# 余接(コタンジェント)
print "cot(pi)  :" . sprintf("%.4f", cot(pi)) . "\n";
print "cot(pi/2):" . sprintf("%.4f", cot(pi /2)) . "\n";
print "cot(pi/4):" . sprintf("%.4f", cot(pi /4)) . "\n\n";

# 双曲線正弦(ハイパボリックサイン)
print "sinh(pi)  :" . sprintf("%.4f", sinh(pi)) . "\n";
print "sinh(pi/2):" . sprintf("%.4f", sinh(pi /2)) . "\n";
print "sinh(pi/4):" . sprintf("%.4f", sinh(pi /4)) . "\n\n";

# 双曲線余弦(ハイパボリックコサイン)
print "cosh(pi)  :" . sprintf("%.4f", cosh(pi)) . "\n";
print "cosh(pi/2):" . sprintf("%.4f", cosh(pi /2)) . "\n";
print "cosh(pi/4):" . sprintf("%.4f", cosh(pi /4)) . "\n\n";

# 双曲線正接(ハイパボリックタンジェント)
print "tanh(pi)  :" . sprintf("%.4f", tanh(pi)) . "\n";
print "tanh(pi/2):" . sprintf("%.4f", tanh(pi /2)) . "\n";
print "tanh(pi/4):" . sprintf("%.4f", tanh(pi /4)) . "\n\n";
tan(pi)  :-0.0000
tan(pi/4):1.0000

sec(pi)  :-1.0000
sec(pi/4):1.4142

csc(pi/2):1.0000
csc(pi/4):1.4142

cot(pi/2):0.0000
cot(pi/4):1.0000

sinh(pi)  :11.5487
sinh(pi/2):2.3013
sinh(pi/4):0.8687

cosh(pi)  :11.5920
cosh(pi/2):2.5092
cosh(pi/4):1.3246

tanh(pi)  :0.9963
tanh(pi/2):0.9172
tanh(pi/4):0.6558

度とラジアン変換

# 度からラジアンに変換
print "180[deg] = " . deg2rad(180) . "[rad]\n";

# ラジアンから度に変換
print "3pi[rad] = " . rad2deg(pi *3) . "[deg]\n";
180[deg] = 3.14159265358979[rad]
3pi[rad] = 180[deg]

一覧

関数説明
pi円周率(π)
tan(rad)正接(タンジェント)
asin(x)逆正弦(アークサイン)
acos(x)逆余弦(アークコサイン)
atan(x)逆正接(アークタンジェント)
csc(x) || cosec(x)余割(コセカント)
sec(x)正割(セカント)
cot || cotan(x)余接(コタンジェント)
sinh(x)双曲線正弦(ハイパボリックサイン)
cosh(x)双曲線余弦(ハイパボリックコサイン)
tanh(x)双曲線正接(ハイパボリックタンジェント)
csch(x) || cosech(x)双曲線余割(ハイパボリックコセカント)
sech(x)双曲線正割(ハイパボリックセカント)
coth(x) || cotanh(x)双曲線余接(ハイパボリックコタンジェント)
asinh(x)逆双曲線正弦(ハイパボリックアークサイン)
acosh(x)逆双曲線余弦(ハイパボリックアークコサイン)
atanh(x)逆双曲線正接(ハイパボリックアークタンジェント)
acsch(x) || acosech(x)逆双曲線余割(ハイパボリックアークコセカント)
asech(x)逆双曲線正割(ハイパボリックアークセカント)
acoth(x) || acotanh(x)逆双曲線余接(ハイパボリックアークコタンジェント)
deg2rad(do)度からラジアンに変換
deg2grad(do)度からグラジアンに変換
grad2deg(grad)グラジアンから度に変換
grad2rad(grad)グラジアンからラジアンに変換
rad2deg(rad)ラジアンから度に変換
rad2grad(rad)ラジアンからグラジアンに変換

mathTrig.cgi // Topに戻る // indexに戻る
Copyright(C) 2009-2021 Grandmaster Last up : 2020/09/18