本記事では Windows を使っている人向けに、Anaconda3 をインストールし、jupyter notebook を使って以下のような gif ファイルを生成するところまでを解説します。
[2020/11/06追記] 環境構築が不要な Google Colaboratory での数学gifの作成についての記事を作成しました:[Google Colaboratory を使ってお手軽に数学 gif を作ってみよう - @wakabame][9]
Anaconda3 をインストールしよう
この章は以下の記事を参考にしました:
[Anaconda で Python 環境をインストールする - @t2y][1]
[Python3.6環境構築(Win環境Anaconda利用) - @kiyoneet][2]
1. Anaconda3 のダウンロードとインストール
まず、[https://www.anaconda.com/download/][3] から Anaconda3 をダウンロードします。
Python 3.6 が入っている左側のものを選びましょう。ダウンロードが済んだら実行します。
インストーラの指示に従って進めていきます。
インストール先は C ドライブ直下の方が何かと便利だと思うので、ここだけ変更します。
2. Anaconda3 にパスを通す
パスを通します。Windows8 であれば、
[コントロールパネル] -> [システム] -> [システムの詳細設定]
で行けます。
[環境変数]を開き、Pathという変数を編集(あるいは新規に作成)し、
'C:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin'
と書き込みます。これでコマンドラインから Python や jupyter を呼び出せるようになりました。
3. コマンドラインから Python を起動する
[ウィンドウズボタン] + [xキー] を押し、 [コマンドプロンプト] を起動します。
黒い画面が出てきます。
Python を使えるかチェックするために、少し動かしてみましょう。
4. matplotlib のアップデート
matplotlib のアップデートをします。
[conda update -n base conda] を打ち込みエンターします。
二択を迫られます。[y] と返します。
今度は[conda update matplotlib] と打ち込みエンターします。
再び二択を迫られます。[y] と返します。
これで準備が整いました。
jupyter notebook を使おう
2次元正方形領域における波動方程式の初期値境界値問題を考えます。
手前味噌ですが以下の記事を参照してください:
[Python で波動方程式の数値計算と動画 gif の書き出しをやらせてみよう - わかばめにっき][5]
Qiita 記事では
[[Pythonによる科学・技術計算] FTCS法(陽解法)による1次元・2次元波動方程式の数値解法,双曲型偏微分方程式 - @sci_Haru][4]
が参考になります。
1. jupyter notebook の起動
黒い画面で [jupyter notebook] と打ち込みエンターすると、ブラウザ上に notebook が起動します。
右上の [New] ボタンから、Python3 を起動しましょう。
すると、Untitled1 という空のノートブックが作成されます。
セルに Python のコードを書いて、Ctrl + Enter や Shift + Enter をすることで実行されます。
試してみましょう。
2. notebook 上で数値計算
[サンプルコード][6] をコピペしながら手元の環境で動くかを確認してください。
こんな感じに波の伝播現象が描画されるはずです。
3. 動画を gif に書き出す
下から2行目の先頭にあるコメントアウト"#"を外すと、作業フォルダにgif ファイルが吐き出されます。
最後に
先日の matplotlib の更新でより手軽に gif を作成できるようになりました。現時点で最も”楽な”方法の一つではあると思いますが、他に良い方法があれば教えていただきたいです。
数学 gif が増えること、その手法が洗練されていくことを願っています。
jupyter notebook を起動したときの最初のフォルダの変更は、次の記事を参照してください:
[Python:Jupyter Notebookの初期ディレクトリが変わらない時の対処方法 - @chanmaru][7]
[1]:https://qiita.com/t2y/items/2a3eb58103e85d8064b6
[2]:https://qiita.com/kiyoneet/items/f440ac890e1a7a5931e8
[3]:https://www.anaconda.com/download/
[4]:https://qiita.com/sci_Haru/items/8535f435ffa1febcd445
[5]:http://wakabame.hatenablog.com/entry/2018/03/07/205717
[6]:https://github.com/wakabame/2D_wave_FTCS/blob/master/2_dim_wave.ipynb
[7]:https://qiita.com/chanmaru/items/3880d6fb23a1fcbefe3a
[8]:https://matplotlib.org/examples/animation/
[9]:https://qiita.com/wakabame/items/e98259fef767a2074464