開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の6章(幾何図形とフラクタルを描画する)、5.4(プログラミングチャレンジ)、問題6-3(エノンの関数を調べる)を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3 import matplotlib.pyplot as plt from matplotlib import animation def henon(x, y): return y + 1 - 1.4 * x ** 2, 0.3 * x def get_points(n): x, y = (1, 1) xs = [x] ys = [y] for _ in range(n - 1): x, y = henon(x, y) xs.append(x) ys.append(y) return xs, ys def update(i, xs, ys, p): p.set_data(xs[:i], ys[:i]) if i == len(xs) - 1: print(f'完了({i + 1}回)') return p if __name__ == '__main__': xs, ys = get_points(1000) fig = plt.gcf() ax = plt.axes(xlim=(min(xs), max(xs)), ylim=(min(ys), max(ys))) p = plt.plot([], [], 'go', markersize=1)[0] ani = animation.FuncAnimation(fig, update, fargs=( xs, ys, p), frames=int(len(xs)), interval=1, repeat=False) print(p, ani, sep='\n') ani.save('sample3.gif', writer='imagemagick') # plt.show()
入出力結果(Terminal, Jupyter(IPython))
$ ./sample3.py Line2D(_line0) <matplotlib.animation.FuncAnimation object at 0x1056f7b00> 完了(1000回) $
1 コメント :
数学の学習は非常に難しいと思っていますが、私の子供は学ぶことができると思います。 数学とは何ですか? それを望む การดูแลสุขภาพ
コメントを投稿