ゼータ関数によって実軸上または虚軸上にマッピングされる複素数について考えます。そのような複素数の集合はどのような形をしているでしょうか。幸いなことに現代人にはコンピュータがあります。今回は、既存の Python ライブラリを活用して以下の図を作成しました。
色分けは以下のとおりです。
色違いの曲線が交わる点がゼータ関数の零点になっています。また、クリティカルライン上に非自明な零点が並んでいることがわかります。
プログラム
- mpmath 1.3.0
- Python 3.12.1
import numpy as np import matplotlib.pyplot as plt from mpmath import * fig = plt.figure() ax = fig.add_subplot(1,1,1) xmin,xmax=-9,10 ymin,ymax=-8,35 x = np.arange(xmin,xmax,0.1) y = np.arange(ymin,ymax,0.1) X, Y = np.meshgrid(x, y) Z1 = np.zeros(X.shape) Z2 = np.zeros(X.shape) for i in range(X.shape[0]): for k in range(X.shape[1]): z = zeta(X[i][k]+Y[i][k]*1j) Z1[i][k] = re(z) Z2[i][k] = im(z) ax.set_xlim(xmin,xmax) ax.set_ylim(ymin,ymax) ax.grid() ax.contour(X, Y, Z1,colors='#5ec962') ax.contour(X, Y, Z2,colors='#482878') ax.plot([0.5,0.5],[ymin,ymax],'--') plt.show()