sinc 関数

モジュールのインポート

import numpy as np
import matplotlib.pyplot as plt
import scienceplots
#Warning : As of version 2.0.0, you need to add import scienceplots before setting the style (plt.style.use('science')).
plt.style.use(['science', 'notebook'])

正規化された sinc 関数

正規化された sinc 関数と正規化されていないsinc 関数($\sin x / x$)を比較して描くと,
u = np.linspace(-6.0, 6.0, 101)
fig = plt.figure() # グラフ領域の作成
plt.plot(u, np.sinc(u)) # 正規化されたsinc 関数
plt.plot(u, np.sinc(u/np.pi))
fig.savefig('p1_ex01_sinc_1.pdf')
plt.show()

正規化されていない sinc 関数

正規化されていない numpyの sinc 関数と$\sin x / x$を描くと,もちろん同じ結果であるので重なってしまう.
fig = plt.figure() # グラフ領域の作成
plt.xlim(-6.0, 6.0) # x軸範囲の設定
plt.ylim(-1.0, 2.0) # y軸範囲の設定
plt.xlabel(r"$x$") # x軸のラベル設定
plt.ylabel(r"$sinc(x)$") # y軸のラベル設定
plt.plot(u, np.sinc(u/np.pi))
plt.plot(u, np.sin(u)/u, '.')
fig.savefig('p1_ex01_sinc_2.pdf')
plt.show()

q = 180.0/np.pi
nx2 = 6
xx = np.linspace(0.0, 90.0/q, nx2)
print(f"{'x [deg]:':>10s}",end=' ')
[print(f"{xx[i]*q:8.5f}",end=' ') for i in range(nx2)]
print("")
print(f"{'sin(x):':>10s}",end=' ')
[print(f"{np.sin(xx[i]):8.5f}",end=' ') for i in range(nx2)]
x [deg]:  0.00000 18.00000 36.00000 54.00000 72.00000 90.00000 
 sin(x):  0.00000  0.30902  0.58779  0.80902  0.95106  1.00000 
nu = 7
u = np.linspace(-6.0, 6.0, nu)
np.sin(u)/u
array([-0.04656925, -0.18920062,  0.45464871,         nan,  0.45464871,
       -0.18920062, -0.04656925])
少しずらして描くと次のようになり,少しわかり易くなろう.
nu = 101
u = np.linspace(-6.0, 6.0, nu)
fig = plt.figure() # グラフ領域の作成
plt.xlim(-6.0, 6.0) # x軸範囲の設定
plt.ylim(-1.0, 2.0) # y軸範囲の設定
plt.xlabel(r"$x$") # x軸のラベル設定
plt.ylabel(r"$sinc(x)$") # y軸のラベル設定
plt.plot(u, np.sinc(u/np.pi))
plt.plot(u, np.sin(u)/u+0.1)
u2 = u[u!=0]
plt.plot(u2, np.sin(u2)/u2+0.2)
fig.savefig('p1_ex01_sinc_3.pdf')
plt.show()

u2 = u[u!=0]
u2
array([-6.  , -5.88, -5.76, -5.64, -5.52, -5.4 , -5.28, -5.16, -5.04,
       -4.92, -4.8 , -4.68, -4.56, -4.44, -4.32, -4.2 , -4.08, -3.96,
       -3.84, -3.72, -3.6 , -3.48, -3.36, -3.24, -3.12, -3.  , -2.88,
       -2.76, -2.64, -2.52, -2.4 , -2.28, -2.16, -2.04, -1.92, -1.8 ,
       -1.68, -1.56, -1.44, -1.32, -1.2 , -1.08, -0.96, -0.84, -0.72,
       -0.6 , -0.48, -0.36, -0.24, -0.12,  0.12,  0.24,  0.36,  0.48,
        0.6 ,  0.72,  0.84,  0.96,  1.08,  1.2 ,  1.32,  1.44,  1.56,
        1.68,  1.8 ,  1.92,  2.04,  2.16,  2.28,  2.4 ,  2.52,  2.64,
        2.76,  2.88,  3.  ,  3.12,  3.24,  3.36,  3.48,  3.6 ,  3.72,
        3.84,  3.96,  4.08,  4.2 ,  4.32,  4.44,  4.56,  4.68,  4.8 ,
        4.92,  5.04,  5.16,  5.28,  5.4 ,  5.52,  5.64,  5.76,  5.88,
        6.  ])