Numpyで三角関数(sin,cos,tan)及び逆三角関数を扱う

Numpy

 Numpyには三角関数sin,cos,tan及び逆三角関数arcsin,arccos,arctanの計算を行う関数があります.本記事では使用方法をサンプルプログラムを使って説明しております.

 スポンサーリンク

スポンサーリンク

円周率π

 円周率πはnumpy.pi関数で定義されています.

・円周率を表示させます.

[IN]

print("pi"  ,np.pi )

[OUT]

pi 3.141592653589793

三角関数

三角関数書式

名所関数
正弦波numpy.sin(x)
余弦波numpy.cos(x)
接線numpy.tan(x)

・45度をラジアンに変換してsin,cos,tanを計算します.

[IN]

import numpy as np
x=45*np.pi/180  #45°をラジアンに変換
print("sin45°",np.sin(x))
print("cos45°",np.cos(x))
print("tan45°",np.tan(x))

[OUT]

sin45° 0.7071067811865476
cos45° 0.7071067811865476
tan45° 0.9999999999999999

・sin,cosのグラフ作成

Matplotlibを使ってグラフを作成します.予めMatplotlinをインストールする必要があります.

[IN]

import numpy as np
import matplotlib.pylab as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)

x = np.linspace(0, 4*np.pi, 401)
line1=ax1.plot(x, np.sin(x))
line2=ax1.plot(x, np.cos(x))
ax1.set_xlabel('[rad]')
labes=["sin(θ)","cos(θ)"]
ax1.legend(labes)
plt.show()

[OUT]

逆三角関数

・逆三角関数書式

名所関数
逆正弦波numpy.arcsin(x)
逆余弦波numpy.arccos(x)
逆接線numpy.arctan(x)

・sin,cos,tanの逆三角関数を使ったプログラム

値が1のsin,cos,tanの逆三角関数を求めラジアンと度数表記で表示します.

[IN]

import numpy as np
ra_sin=np.arcsin(1) #1の逆正弦波
ra_cos=np.arccos(1) #1の逆余弦波
ra_tan=np.arctan(1) #1の逆接線

da_sin=ra_sin*180/np.pi #逆正弦波の結果をラジアンから度へ
da_cos=ra_cos*180/np.pi #逆余弦波の結果をラジアンから度へ
da_tan=ra_tan*180/np.pi #逆接線の結果をラジアンから度へ

print("関数名 ","ラジアン ","度数 ")
print("arcsin(1) ",ra_sin  ,da_sin  )
print("arccos(1) ",ra_cos  ,da_cos  )
print("arctan(1) ",ra_tan  ,da_tan  )

[OUT]

関数名  ラジアン  度数 
arcsin(1)  1.5707963267948966 90.0
arccos(1)  0.0 0.0
arctan(1)  0.7853981633974483 45.0

ラジアンから度または度からラジアンへ変換

先程までのサンプルプログラムではラジアンから度数にまたはその逆に数式を使って変換をしていましたが,Numpyの関数式で変換することができます.

・ラジアンから度へ変換

numpy.degrees(x) , numpy.rad2deg(x)

どちらを使っても同じ

・度からラジアンへ変更

numpy.radians(x) , numpy.deg2rad(x)
どちらを使っても同じ

・ラジアン単位での円周率を度数に変換する.

[IN]

import numpy as np
print("πrad→deg " , np.degrees( np.pi ))
print("πrad→deg " , np.rad2deg( np.pi ))

[OUT]

πrad→deg  180.0
πrad→deg  180.0

・180度をラジアン単位に変換する

[IN]

import numpy as np
print("180deg→rad ", np.radians( 180 ))
print("180deg→rad ", np.deg2rad( 180 ))

[OUT]

180deg→rad  3.141592653589793                                         
180deg→rad  3.141592653589793

 

・Python記事一覧

トップページへ戻る

 

コメント

タイトルとURLをコピーしました