python 組み込みモジュール① math

## mathモジュールでよく使われるメソッド
&nbsp;

#### 1.基本的な数学計算
* 平方根を計算する
math.sqrt(x)
```python
    print(math.sqrt(16))  # 出力: 4.0
```

* 累乗を計算する
math.pow(x, y) 
```python
print(math.pow(2, 3))  # 出力: 8.0
```

* 切り上げる
math.ceil(x)
指定した数値を切り上げます。
```python
print(math.ceil(3.14))  # 出力: 4
```

* 切り捨てる
math.floor(x)
指定した数値を切り捨てます。
```python
print(math.floor(3.14))  # 出力: 3
```

* 小数部分を切り落とす
math.trunc(x)
```python
print(math.trunc(3.14))  # 出力: 3
```

:::note info
**注意点**
:::
* floor と trunc
&nbsp;
正の数の場合:
floor と trunc はどちらも同じ結果を返します。
例:
print(math.floor(3.7))  # 出力: 3
print(math.trunc(3.7))  # 出力: 3
&nbsp;
負の数の場合:
floor: 小数点以下を切り捨て、「下方向」に丸めた整数を返します。
trunc: 小数点以下を切り落とし、符号をそのまま維持します。
Python 3.5以降では、floor と trunc はどちらも整数型を返します。
例:
print(math.floor(-3.7))  # 出力: -4
print(math.trunc(-3.7))  # 出力: -3
&nbsp;
&nbsp;

#### 2.三角関数

* 三角関数：正弦、余弦、正接
math.sin(x)、math.cos(x)、math.tan(x)
```python
import math

# 角度に対応する三角関数の値を計算
angle = math.pi / 4  # 45度
sin_val = math.sin(angle)
cos_val = math.cos(angle)
tan_val = math.tan(angle)

print(sin_val)  
# 約 0.707 を出力
print(cos_val)  
# 約 0.707 を出力
print(tan_val)  
# 約 1.0 を出力
```

* 逆三角関数
math.asin(x)、math.acos(x)、math.atan(x)

```python
import math

# 逆三角関数の値を計算
arcsin_val = math.asin(0.707)
arccos_val = math.acos(0.707)
arctan_val = math.atan(1.0)

print(arcsin_val)  
# 約 0.785 を出力（45度）
print(arccos_val)  
# 約 0.785 を出力（45度）
print(arctan_val) 
# 約 0.785 を出力（45度）
```

:::note info
**注意点**
:::

* Python では、角度は ラジアン で表現されます。
必要に応じて、
math.radians() を使用して角度（度）をラジアンに変換したり、
math.degrees() を使用してラジアンを角度（度）に変換することができます。
&nbsp;
* 三角関数の結果が浮動小数点の場合、端数処理による微小な誤差が発生することがあります。


#### 3.対数関数
* 自然対数
math.log(x[, base])
自然対数を計算します。
```python
import math

# 自然対数を計算
log_val = math.log(2.71828)  
log_base_10_val = math.log(100, 10)

print(log_val)  
# 出力: 約 1.0
print(log_base_10_val)  
# 出力: 2.0
```

* 底10の対数
math.log10(x)
自然対数を計算します。
```python
import math

# 底10の対数を計算
log10_val = math.log10(100)

print(log10_val)  
# 出力: 2.0
```

#### 4.指数関数
* 自然対数
math.exp(x)
e の x 乗，e（自然対数の底）を x 乗した結果を計算します。
```python
import math

# e の x 乗を計算
exp_val = math.exp(1)

print(exp_val)  
# 出力: 約 2.71828
```

#### 5.角度とラジアンの変換
* math.degrees(x)
ラジアンを角度に変換
```python
radian = math.pi / 4
degrees = math.degrees(radian)
print(degrees)  
# 出力: 45.0
```

* math.radians(x)
角度をラジアンに変換
```python
degree = 45
radians = math.radians(degree)
print(radians)  
# 出力: 約 0.785
```

#### 6.最大値と最小値
* math.fabs(x)
絶対値を返します。
```python
import math
# 絶対値の計算
abs_val = math.fabs(-3.14)
print(abs_val)  # 出力: 3.14
```

* math.fmod(x, y)
x を y で割った余りを返します。
```python
import math
# 余りの計算
mod_val = math.fmod(10, 3)
print(mod_val)  
# 出力: 1.0
```

#### 7.定数
* math.pi
円周率 π を表します。
```python
import math
# 円周率
pi_val = math.pi
print(pi_val)  
# 出力: 約 3.14159
```

* math.e
自然対数の底 e を表します。
```python
import math
# 自然対数の底数
e_val = math.e
print(e_val)  
# 出力: 約 2.71828
```

#### 8.その他の便利な関数
* math.isclose(a, b, rel_tol=1e-09, abs_tol=0.0)
a と b が近似的に等しいかを判定します。
```python
import math
# 近似判定
close_result = math.isclose(1.0000001, 1.0)
print(close_result)  
# 出力: True
```

* math.isinf(x)
x が無限大かどうかを判定します。
```python
import math
# 無限大判定
inf_result = math.isinf(float('inf'))
print(inf_result)  
# 出力: True
```

* math.isnan(x)
x が NaN（Not a Number、非数値）かどうかを判定します。
```python
import math
# NaN 判定
nan_result = math.isnan(float('nan'))
print(nan_result)  
# 出力: True
```