ディープラーニングG検定の勉強中 その17(三角関数)
書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。
今回は、三角関数について見ていきます。
直角三角形の特徴
直線 x の2倍の長さの直線 r
図1

で直角三角形を作ると、その内角が、90°、60°、30°の直角三角形になります。
図2

このとき、y の長さが不明ですが、三平方の定理で計算すると、
式1

y の長さが導き出されます。
なお、直角以外の角の角度が同じ場合は相似が成立するため、x と r が接する角度が60°の場合には、いつも式3の比率が成り立つわけです。
式3

そして、このように直角三角形の3辺の比率をsin(正弦)、cos(余弦)、tan(正接)で表したものが「三角比」です。
三角比
式4 三角比

つまり、θが60°のときには、sin、cos、tanの比率は式5となります。
式5

ところで、なぜsinを正弦、cosを余弦、tanを正接と呼ぶのかについては、下記のサイトに説明があります。
CinderellaJapan(「正弦」の意味)
三角関数
三角比では、内角についてのみの比率が算出されるだけですが、
単位円を用いると、三角比が外角にも拡張されます。
単位円は、半径 r が「1」の円です。
図3 単位円と直角三角形

円に接する直角三角形の角の座標は(cosθ, sinθ)となるのですが、
外角となる座標に設定することができ、
図4

r が 1 で、x が -1/2 とするなら、θは120°となり、つまりは、式6となります。
式6 θ = 120°

このように、三角比の考え方を拡張したものを「三角関数」といいます。
三角関数のグラフ
Pythonを使って単位円での三角関数のグラフを描画してみます。
ソースの引用サイト
Qiita([python]グラフ描画のためのライブラリMatplotlibの使い方)
--------------------
import numpy as np
import matplotlib.pyplot as plt
# 描画範囲の指定
x = np.arange(0, 4.1, 0.1)
# 計算式
y1 = np.sin(x) # xの単位はラジアン
y2 = np.cos(x)
# グラフ描画設定
plt.plot(x, y1, label="sin")
plt.plot(x, y2, label="cos")
plt.xlabel("x")
plt.xlabel("y")
plt.title('sin & cos')
# グラフのグリッドを表示
plt.grid()
# ラベルの描画
plt.legend()
# グラフの描画実行
plt.show()
--------------------
出力結果

ラジアンと度数の関係については把握しきれていないので、ラジアンを度数に変換するソース等は、このことがきちんと把握できたら後日作るかもしれません。
今回は、三角関数について見ていきます。
直角三角形の特徴
直線 x の2倍の長さの直線 r
図1

で直角三角形を作ると、その内角が、90°、60°、30°の直角三角形になります。
図2

このとき、y の長さが不明ですが、三平方の定理で計算すると、
式1

y の長さが導き出されます。
なお、直角以外の角の角度が同じ場合は相似が成立するため、x と r が接する角度が60°の場合には、いつも式3の比率が成り立つわけです。
式3

そして、このように直角三角形の3辺の比率をsin(正弦)、cos(余弦)、tan(正接)で表したものが「三角比」です。
三角比
式4 三角比

つまり、θが60°のときには、sin、cos、tanの比率は式5となります。
式5

ところで、なぜsinを正弦、cosを余弦、tanを正接と呼ぶのかについては、下記のサイトに説明があります。
CinderellaJapan(「正弦」の意味)
三角関数
三角比では、内角についてのみの比率が算出されるだけですが、
単位円を用いると、三角比が外角にも拡張されます。
単位円は、半径 r が「1」の円です。
図3 単位円と直角三角形

円に接する直角三角形の角の座標は(cosθ, sinθ)となるのですが、
外角となる座標に設定することができ、
図4

r が 1 で、x が -1/2 とするなら、θは120°となり、つまりは、式6となります。
式6 θ = 120°

このように、三角比の考え方を拡張したものを「三角関数」といいます。
三角関数のグラフ
Pythonを使って単位円での三角関数のグラフを描画してみます。
ソースの引用サイト
Qiita([python]グラフ描画のためのライブラリMatplotlibの使い方)
--------------------
import numpy as np
import matplotlib.pyplot as plt
# 描画範囲の指定
x = np.arange(0, 4.1, 0.1)
# 計算式
y1 = np.sin(x) # xの単位はラジアン
y2 = np.cos(x)
# グラフ描画設定
plt.plot(x, y1, label="sin")
plt.plot(x, y2, label="cos")
plt.xlabel("x")
plt.xlabel("y")
plt.title('sin & cos')
# グラフのグリッドを表示
plt.grid()
# ラベルの描画
plt.legend()
# グラフの描画実行
plt.show()
--------------------
出力結果

ラジアンと度数の関係については把握しきれていないので、ラジアンを度数に変換するソース等は、このことがきちんと把握できたら後日作るかもしれません。
"ディープラーニングG検定の勉強中 その17(三角関数)" へのコメントを書く