三角関数
を使う
周期的(サイクリック)な事象を取り扱う場合、三角関数はよく用いられる関数です。
まず、基本的関数として、サイン、コサイン、タンジェントがあります。
C#で扱える浮動小数点数は倍精度(double
有効桁 16桁程度)ですので、高精度の科学技術計算には物足りない面がありますが、
画面上への図形表示など、一般的な用途では特に問題になりません。
using System.Math;
double s,c,t;
double deg=45.0; //45°
s=Sin( deg*3.141592/180.0); //サイン値の取得
c=Cos( deg*3.141592/180.0); //コサイン値の取得
t=Tan( deg*3.141592/180.0); //タンジェクト値の取得
三角関数の(
)内に入る数値は、すべてラジアン単位である点に注意しておいてください。上記の例では、デグリー(度)単位からラジアン単
位へ換算しています。
次にSin,Cos,Tanの逆関数であるアークサイン、アークコサイン、アークタンジェントの使用例は次のとおりです。
using System.Math;
double degs,degc,degt;
degs=Asin(0.5);
//サインが1/2となる角度をラジアン単位でdegsに代入
degc=Acos(0.5); //コサインが1/2となる角度をラジアン単位でdegcに代入
degt=Atan(1.0); //タンジェントが1となる角度をラジアン単位でdegtに代入
三角関数の関連として双曲線(ハイパボリック)関数についても触れます。
初等的な数学の講義で恐縮ですが、(Cos(x),Sin(x))が単位円上の点の座標値を表すのに対し、座標(Cosh(x),Sinh(x))は、双
曲線上
の座標値を表します。
双曲線関数の用途は、一部の工学分野など限られますが、その記述例は次のとおりです。
using System.Math;
double sh,ch,th;
double deg=45.0; //45°
sh=Sinh( deg*3.141592/180.0); //ハイパボリックサイン値の取得
ch=Cosh( deg*3.141592/180.0); //ハイパボリックコサイン値の取得
th=Tanh( deg*3.141592/180.0); //ハイパボリックタンジェクト値の取得
|
対数関数を使う
対数の底により、常用対数と自然対数に分かれます。使用例は次のとおりです。
double l10,le;
l10=Log10(1000); //底10の常用対数。l10=3となる。
le
=Log(1); //底e
の常用対数。le=0となる。
|
指数関数を使う
指数関数の使用例は次のとおりです。指数に0<y<1の正
数を指定すると、ルート計算をすることができます。
double v,x,y;
x=5.0;
y=2.0;
v=Pows(x,y); // 5の2乗をvに代入。
y=0.5;
v=Pows(x,y); // 5の平方根をvに代入。
平方根については、Sqrt関数を使うこともできます。
v=Sqrt(x); // 5の平方根をvに代入。
|
その他の数値関数
Mathクラスで用意されているその他の主な数値関数を列記すると次
のとおりです。
コー
ド
|
説
明
|
v=Abs(x); |
xの絶対値をvに代入 |
v=Ceiling(x);
|
x以上の最少の整数を
vに代入 |
v=Floor(x);
|
x以下の最大の整数を
vに代入 |
v=Max(x,y);
|
xとyの大きい方の値をvに代入
|
v=Min(x,y); |
xとyの小さい方の値をvに代入 |
v=Round(x,y); |
xをyで示す小数点以下桁数で丸める。
|
v=Sign(x); |
xが正ならv=1、xが負ならv=-1、x
がゼロならv=0
|
|