2. プログラムの応用

前章で学んだプログラムの活用を具体例を通して見ていきましょう.

なお,この演習では次のリンクにあるnotebookを利用できます.以下のリンクからipynbファイルをダウンロードし,自分のGoogle Drive上に保存してからColaboratory上で実行してください.

beginner02.ipynb

2.1 数値計算のアルゴリズム

反復による平方根の計算

ルート2を求めるプログラムとしてpythonで擬似コードを再現したのが以下のプログラムです.

実行結果では, とても長い回数の計算が行なわれていることがわかります.以下の実行結果はプログラムを実行したばかりのものと終わりの部分だけを掲載しています.

二分法による平方根の計算

ルート2を求めるプログラムとしてpythonで擬似コードを再現したのが以下のプログラムです.

実行結果からアルゴリズムにより計算回数が減ったことがわかります.

ニュートン・ラフソン法による平方根の計算

このアルゴリズムは図のように, 曲線上でa=yにおける接線を求め, その接線とb=xとの交点を求めます. その位置を新たなyとして曲線上の点での接線を求め, そこでの接線とb=xとの交点を求めるという処理を, 赤線部分(もとのyと交点の新しいyとの差分)が, 決められた値より小さくなるまで同じ作業を繰り返します.

ルート2を求めるプログラムとしてpythonで擬似コードを再現したのが以下のプログラムです.

実行結果からアルゴリズムによりさらに計算回数が減ったことがわかります.

2.2 タートルグラフィックス

turtleというライブラリによって,絵を書くことができます.前章で学んだwhile文やfor文,関数などを活用して絵を書いてみましょう.

(参考: アルゴリズム入門 演習課題例:タートルグラフィックスでお絵かき)

なお,以下で紹介するのはColaboratoryを利用する際の使い方です.それ以外の環境で利用する場合には上のリンク先などを参照してください.

ライブラリのインポート

まず,必要なライブラリをインポートします(ここでは詳しい説明はしませんが,気になる人はpythonのライブラリについて調べてみると良いでしょう).

図形の描き方

例えば,以下のようにすることで,正三角形を描くことができます.

turtle.関数名(引数)とすることで,turtleライブラリの関数を使うことができます.主な関数は以下です.

これらを組み合わせることで様々な図形を描くことができます.自由に図形を描いて練習してみましょう.