とらりもんHOME  Index  Search  Changes  Login

レポート課題: pythonで行列計算・画像

以下, 特に断っていない場合は, ipython3でコマンドを打っている状況を想定する。

(1) 数学リメディアル教材の問299 (森林の経年変化のマルコフ過程)の(4)を, pythonを使って数値的に解き, 森林面積が年と共にどう変わるか, グラフを描け(ヒント: 対角化とか忘れて, ただひたすら行列の積を繰り返す。それにはforループを使う。∞のかわりに適当に大きな数を自分で決めよ)。

(2) 基礎数学教材の問511(島の草が有限の場合の羊と狼の闘い)を, pythonを用いて解け。ヒント: これの(14)

(3) 基礎数学教材の問517(バネの減衰つき振動)を, pythonを用いて解け。ヒント: 前問を参考に。

(4) 基礎数学教材の問634(2)(関数のフーリエ級数展開のグラフ)を, pythonを用いて描け。波数を5よりももっと大きいところまで試してみよ。

(5) 以下を打って実行してみよ。結果はどうなるか? このプログラムは各行で何をしているか, 1行ずつ解読・解説し, 全体として何をしているのか考察せよ。

X0, X1, dx = -1.3, -1.1, 0.0005
Y0, Y1, dy = 0.1, 0.4, 0.0005
x, y=np.meshgrid(np.arange(X0, X1, dx), np.arange(Y1, Y0, -dy))
c=x+y*1j
z=np.zeros(c.shape)
m=np.zeros(c.shape)
for i in range(0,400):
  z=z**2+c
  m+=np.isnan(np.abs(z))
plt.imshow(m%100%21)
plt.show()

(6) 前問のプログラムを自分なりに改造して, もっとイケてる美しい図を作れ。

(7) プログラミングを学ぶ上で, 自分なりに適した勉強法は何か? 考察して述べよ(適した勉強法は人それぞれで違う。君には君に適した勉強法があるはず。それを基礎数IIなどの経験を元にみつけてほしい)。

(8) 以下のチェックリストの各項目について, ○かXかで自分自身を評価せよ。

  1. pythonで行列をいじるとき, リストでやるのはイケてなくて, numpy.ndarrayでやるのがイケてると理解した。
  2. numpy.ndarrayで行列のスカラー倍, 行列どうしの足し算をやる方法を理解した。
  3. numpy.ndarrayで行列どうしの積をやるとき, うっかりしてると成分どうしの積になってしまい, ちゃんとした結果にならない, ということを理解した。
  4. numpyで, 零行列や「成分すべてが1の行列」を作るやりかたを習得した。
  5. numpyで, ベクトルを折り返して行列にするやりかたを理解した。
  6. numpyで, 行列の転置のやり方を理解した。
  7. 行列を図にする方法(色の図と等値線図)を習得した。
  8. 2変数関数の図を書く時, np.meshgridという関数の働きを理解した。
  9. 図を横に2枚並べて同時に表示する方法を理解した。
  10. 2次元のガウス関数がどういうものか理解した。
  11. 複素関数は, 2つの2変数実数関数の組み合わせであることを理解した。
  12. c^2という複素関数は, 2つの鞍型の関数(筑波山みたいなやつ)の組み合わせだと理解した。
  13. 2変数関数を色の図にするとき, %2などをすることの意味と効果を理解した。
  14. オーバーフローとは何か理解した。
Last modified:2019/02/20 13:15:26
Keyword(s):
References:[python入門]