diff options
author | Joshua Baer <joshua.baer@ost.ch> | 2022-08-16 10:28:39 +0200 |
---|---|---|
committer | Joshua Baer <joshua.baer@ost.ch> | 2022-08-16 10:28:39 +0200 |
commit | f3fc1867221ab08c20cbb3f21663e89a10526dcb (patch) | |
tree | 49ca3a3a863f57f2ea69025ed493ba6f35d12c36 /buch/papers/zeta/python | |
parent | signal m draw (diff) | |
parent | fix a typo (diff) | |
download | SeminarSpezielleFunktionen-f3fc1867221ab08c20cbb3f21663e89a10526dcb.tar.gz SeminarSpezielleFunktionen-f3fc1867221ab08c20cbb3f21663e89a10526dcb.zip |
Merge branch 'master' of github.com:JODBaer/SeminarSpezielleFunktionen
Diffstat (limited to 'buch/papers/zeta/python')
-rw-r--r-- | buch/papers/zeta/python/plot_zeta.py | 39 | ||||
-rw-r--r-- | buch/papers/zeta/python/plot_zeta2.py | 31 | ||||
-rw-r--r-- | buch/papers/zeta/python/primzahlfunktion.py | 24 |
3 files changed, 94 insertions, 0 deletions
diff --git a/buch/papers/zeta/python/plot_zeta.py b/buch/papers/zeta/python/plot_zeta.py new file mode 100644 index 0000000..53097c5 --- /dev/null +++ b/buch/papers/zeta/python/plot_zeta.py @@ -0,0 +1,39 @@ +import numpy as np +from mpmath import zeta +import matplotlib.pyplot as plt +from matplotlib import colors +import matplotlib +matplotlib.use("pgf") +matplotlib.rcParams.update( + { + "pgf.texsystem": "pdflatex", + "font.family": "serif", + "font.size": 8, + "text.usetex": True, + "pgf.rcfonts": False, + "axes.unicode_minus": False, + } +) + +print(zeta(-1)) +print(zeta(-1 + 2j)) + +re_values = np.arange(-10, 5, 0.04) +im_values = np.arange(-20, 20, 0.04) +plot_matrix = np.zeros((len(im_values), len(re_values), 3)) +for im_i, im in enumerate(im_values): + print(im_i) + for re_i, re in enumerate(re_values): + z = complex(zeta(re + 1j*im)) + h = (np.angle(z) + np.pi) / (2*np.pi) + v = np.abs(z) + s = 1.0 + plot_matrix[im_i, re_i] = [h, s, v] + +log10_v = np.log10(plot_matrix[:, :, 2]) +log10_v += np.abs(np.min(log10_v)) +plot_matrix[:, :, 2] = (log10_v) / np.max(log10_v) +plt.imshow(colors.hsv_to_rgb(plot_matrix), extent=[re_values.min(), re_values.max(), im_values.min(), im_values.max()]) +plt.xlabel("$\Re$") +plt.ylabel("$\Im$") +plt.savefig(f"zeta_color_plot.pgf") diff --git a/buch/papers/zeta/python/plot_zeta2.py b/buch/papers/zeta/python/plot_zeta2.py new file mode 100644 index 0000000..b730703 --- /dev/null +++ b/buch/papers/zeta/python/plot_zeta2.py @@ -0,0 +1,31 @@ +import numpy as np +from mpmath import zeta +import matplotlib.pyplot as plt +import matplotlib +matplotlib.use("pgf") +matplotlib.rcParams.update( + { + "pgf.texsystem": "pdflatex", + "font.family": "serif", + "font.size": 8, + "text.usetex": True, + "pgf.rcfonts": False, + "axes.unicode_minus": False, + } +) +# const re plot +re_values = [-1, 0, 0.5] +im_values = np.arange(0, 40, 0.04) +buf = np.zeros((len(re_values), len(im_values), 2)) +for im_i, im in enumerate(im_values): + print(im_i) + for re_i, re in enumerate(re_values): + z = complex(zeta(re + 1j*im)) + buf[re_i, im_i] = [np.real(z), np.imag(z)] + +for i in range(len(re_values)): + plt.figure() + plt.plot(buf[i,:,0], buf[i,:,1], label=f"$\Re={re_values[i]}$") + plt.xlabel("$\Re$") + plt.ylabel("$\Im$") + plt.savefig(f"zeta_re_{re_values[i]}_plot.pgf") diff --git a/buch/papers/zeta/python/primzahlfunktion.py b/buch/papers/zeta/python/primzahlfunktion.py new file mode 100644 index 0000000..9434de9 --- /dev/null +++ b/buch/papers/zeta/python/primzahlfunktion.py @@ -0,0 +1,24 @@ +import matplotlib.pyplot as plt +import numpy as np + +primzahlfunktion = [0, 0, 0, 0] +x = [0, 1-1e-12, 1, 2-1e-12] +x_last = 1 +value = 0 +for i in range(2, 30, 1): + new_value = value + 1 + for j in range(2, i, 1): + if i % j == 0: + new_value = value + value = new_value + primzahlfunktion.append(new_value) + x_last += 1 + x.append(x_last) + primzahlfunktion.append(new_value) + x.append(x_last + 1 - 1e-12) + + +plt.rcParams.update({"pgf.texsystem": "pdflatex"}) +plt.plot(x, primzahlfunktion) +plt.show() + |