【C言語】math.hを使って基本的な数学を実装する【標準ライブラリ】
math.hとは
math.h
はC言語の標準ライブラリに含まれるヘッダーファイルで、数学関数を提供します。平方根、三角関数、指数関数、対数関数、丸め関数などが含まれており、数値計算を行う際に非常に役立ちます。
基本的な数学関数
math.h には基本的な数学演算を行う関数が含まれています。
平方根を求める: sqrt()
sqrt()
関数は非負の数の平方根を求めます。
#include <stdio.h>
#include <math.h>
int main() {
double x = 25.0;
printf("sqrt(%.2f) = %.2f\n", x, sqrt(x));
return 0;
}
出力:
sqrt(25.00) = 5.00
べき乗を求める: pow()
pow()
関数は x^y
を計算します。
#include <stdio.h>
#include <math.h>
int main() {
double base = 2.0, exponent = 8.0;
printf("%.2f^%.2f = %.2f\n", base, exponent, pow(base, exponent));
return 0;
}
出力:
2.00^8.00 = 256.00
三角関数
角度を扱う場合に便利な三角関数が利用できます。
正弦: sin()
sin()
はラジアン単位での正弦を求めます。
#include <stdio.h>
#include <math.h>
int main() {
double angle = M_PI / 2; // 90度
printf("sin(90°) = %.2f\n", sin(angle));
return 0;
}
余弦: cos()
cos()
はラジアン単位での余弦を求めます。
正接: tan()
tan()
はラジアン単位での正接を求めます。
指数・対数関数
指数関数や対数関数を利用することもできます。
指数関数: exp()
exp(x)
は e^x を求めます。
自然対数: log()
log(x)
は ln(x)(自然対数)を求めます。
常用対数: log10()
log10(x)
は底が10の対数を求めます。
丸め関数
浮動小数点数を整数に近い値に変換する関数です。
切り上げ: ceil()
ceil(x)
は x を超えない最小の整数に切り上げます。
切り捨て: floor()
floor(x)
は x を下回らない最大の整数に切り捨てます。
四捨五入: round()
round(x)
は四捨五入します。
その他の便利な関数
絶対値: fabs()
fabs(x)
は x の絶対値を求めます。
剰余: fmod()
fmod(x, y)
は x を y で割った余りを求めます。
最大・最小: fmax(), fmin()
fmax(x, y)
は x と y の最大値を返し、fmin(x, y)
は最小値を返します。
math.hを使う際の注意点
- math.h の関数を使用する際には、
#include <math.h>
を必ず記述する。 - 数学関数は
double
型の引数を取ることが多いので、float
型を渡すときはf
付きの関数(例:sinf()
)を使用する。 - コンパイル時に
-lm
オプションをつける必要がある場合がある(例:gcc program.c -o program -lm
)。