数学関数を使用した計算


   数学関数

   エンジニアが作るプログラムは、何らかの複雑な計算(設計、解析用など)を含むことが多い。そのときには、正弦関数や対数を使いたい場面もあるだろう。これまでに学習した四則演算と繰り返し処理を用いて数学関数を自作することも可能であるが、代表的な数学関数はあらかじめ用意されている。以下に主な数学関数を列記する。

表記

意味

sin(x)  sin(x) [正弦]
cos(x)  cos(x) [余弦]
tan(x)  tan(x) [正接]
exp(x)  ex [eのx乗]
log(x)  ln(x) [自然対数]
log10(x)  常用対数
pow(x,y)  xy [xのy乗]
sqrt(x)  √x [平方根]
atan(x)  逆正接
fabs(x)  |x| [絶対値]

 ※ x(あるいはy)の部分には実数型の式や値が入り、結果も実数型の値が返される。
   なお、三角関数のxはラジアン単位であるので注意する。

 以下に数学関数を用いたプログラム例を示す。
これは1から10までの整数の平方根を表示するプログラムである。
数学関数を使う場合には04行目のように #include <math.h> という表記を必要とする。
また、コンパイル時にも
   $ cc -lm func01.c  [Enter]
のように -lm [マイナス、エル、エム]という文字を入れる必要がある(必須)。
この2つの変更点に注意して作成・コンパイルすることが重要である。

 この例題を参考にして各自が上の関数を使ってみよう。
   

  

 ●  数学関数
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
/*  func01.c  */
 
#include <stdio.h>
#include <math.h>
 
int main(void)
{
    int i,n;
    double rx,rt;
 
    n=10;
 
    for (i=1; i<=n; i++) {
        rx=i*1.0;
        rt=sqrt(rx);
        printf("root(%f) = %f\n",rx,rt);
    }
 
    return 0;
}
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
-
-
-
数学関数の使用にはこの文が必要 
-
-
-
-
-
-
-
-
-
整数 i を実数rxに変換する 
rxの平方根の計算 
変数rxとrtの表示 
-
-
-
-

 


   [問題10] 0°から360°まで30°刻み[0°、30°、60°、・・・、330°、360°]で正弦 (sin) を計算し、表示しなさい。ただし、円周率は、3.141593 とする。なお、三角関数の引数はラジアン単位であるので、度 (deg) をラジアン (rad) に変換する必要がある。

 


 戻る