TL;DR numpy配列にfor文使うと遅い ラプラシアンの計算にscipy.signal.convolve2d使うと早い でもfor文回すコードにnumba.jitでJITをかけるともっと早い はじめに プログラムで何か数値シミュレーションをやることを考える。できるだけ簡単で、かつそれなりに結果が面白いものが良い。わりと簡単なのは熱拡散方程式で、これは定常状態が非常に簡単に求まるのでデバッグがしやすく、かつ非定常状態もフーリエ変換で求まるため、大学生の課題としてはとても良いのだが、何しろ結果が地味なのが泣き所である。 次に面白いのは力学系、特にローレンツ・アトラクタなどが簡単で面白い。しかし、シミュレーションをするので、何かアニメーションを表示させたい。カオスでアニメーションというと二重振り子などがあり、これはこれで面白いのだが、もう一声派手さが欲しい。 というわけで、拡散方程式の次の
![Pythonによる反応拡散シミュレーションをJITで高速化 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/7bb9eae71e4a76c6efddc1b332b419b89b98ef8c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UHl0aG9uJUUzJTgxJUFCJUUzJTgyJTg4JUUzJTgyJThCJUU1JThGJThEJUU1JUJGJTlDJUU2JThCJUExJUU2JTk1JUEzJUUzJTgyJUI3JUUzJTgzJTlGJUUzJTgzJUE1JUUzJTgzJUFDJUUzJTgzJUJDJUUzJTgyJUI3JUUzJTgzJUE3JUUzJTgzJUIzJUUzJTgyJTkySklUJUUzJTgxJUE3JUU5JUFCJTk4JUU5JTgwJTlGJUU1JThDJTk2JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz05MjBmODY2ZDMzZmE0MDliNDBkYjc4YTgxOGQ1YjJlOA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa2FpdHlvMjU2JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04ZjVhM2QxZWZkZjExODlmNTNmYzZkOTQzNzFmMjRhNw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D01413f0f5a2c9437ca9b7d2a598dd43d)