Help us understand the problem. What is going on with this article?

Python を使ってお手軽に数学 gif を作ってみよう

More than 1 year has passed since last update.

本記事では Windows を使っている人向けに、Anaconda3 をインストールし、jupyter notebook を使って gif ファイルを生成するところまでを解説します。

Anaconda3 をインストールしよう

この章は以下の記事を参考にしました:
Anaconda で Python 環境をインストールする - @t2y
Python3.6環境構築(Win環境Anaconda利用) - @kiyoneet

1. Anaconda3 のダウンロードとインストール

まず、https://www.anaconda.com/download/ から Anaconda3 をダウンロードします。

1.png

Python 3.6 が入っている左側のものを選びましょう。ダウンロードが済んだら実行します。
インストーラの指示に従って進めていきます。
インストール先は C ドライブ直下の方が何かと便利だと思うので、ここだけ変更します。

2.png

2. Anaconda3 にパスを通す

パスを通します。Windows8 であれば、
[コントロールパネル] -> [システム] -> [システムの詳細設定]
で行けます。

3.png

[環境変数]を開き、Pathという変数を編集(あるいは新規に作成)し、
'C:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin'
と書き込みます。これでコマンドラインから Python や jupyter を呼び出せるようになりました。

3. コマンドラインから Python を起動する

[ウィンドウズボタン] + [xキー] を押し、 [コマンドプロンプト] を起動します。

8.png

黒い画面が出てきます。
Python を使えるかチェックするために、少し動かしてみましょう。

4.png

4. matplotlib のアップデート

matplotlib のアップデートをします。
[conda update -n base conda] を打ち込みエンターします。

5.png

二択を迫られます。[y] と返します。
今度は[conda update matplotlib] と打ち込みエンターします。

6.png

再び二択を迫られます。[y] と返します。
これで準備が整いました。

jupyter notebook を使おう

2次元正方形領域における波動方程式の初期値境界値問題を考えます。
手前味噌ですが以下の記事を参照してください:
Python で波動方程式の数値計算と動画 gif の書き出しをやらせてみよう - わかばめにっき
Qiita 記事では
[Pythonによる科学・技術計算] FTCS法(陽解法)による1次元・2次元波動方程式の数値解法,双曲型偏微分方程式 - @sci_Haru
が参考になります。

1. jupyter notebook の起動

黒い画面で [jupyter notebook] と打ち込みエンターすると、ブラウザ上に notebook が起動します。
右上の [New] ボタンから、Python3 を起動しましょう。

7.png

すると、Untitled1 という空のノートブックが作成されます。

9.png

セルに Python のコードを書いて、Ctrl + Enter や Shift + Enter をすることで実行されます。
試してみましょう。

2. notebook 上で数値計算

サンプルコード をコピペしながら手元の環境で動くかを確認してください。
こんな感じに波の伝播現象が描画されるはずです。

10.png

3. 動画を gif に書き出す

下から2行目の先頭にあるコメントアウト"#"を外すと、作業フォルダにgif ファイルが吐き出されます。
gif

最後に

先日の matplotlib の更新でより手軽に gif を作成できるようになりました。現時点で最も”楽な”方法の一つではあると思いますが、他に良い方法があれば教えていただきたいです。
数学 gif が増えること、その手法が洗練されていくことを願っています。

jupyter notebook を起動したときの最初のフォルダの変更は、次の記事を参照してください:
Python:Jupyter Notebookの初期ディレクトリが変わらない時の対処方法 - @chanmaru

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away