Mathematica ブックを読もう(その4)

 今回はいよいよ前半最後の関門,関数とプログラムである.少なくとも以下の部分を読むこと.また,このページの下の方に注意があるのでそれも読むこと. 最低限読むべき部分は以下の通り.
(Mathematica の実践的な紹介)
関数とプログラム ユーザー定義の関数
手続きとしての関数
反復処理
(Mathematica の仕組み)
式の評価 ループと制御構造体
モジュール構成と変数名の付け方 モジュールと局所変数
局所変数
モジュールの動作の仕方


注意
 上の「手続きとしての関数」の節に以下のような記述がある.

 君たちは過去の課題で,たとえばある場所で x = 2 と定義すると,変数 x に 2 がという値が記憶され,別の場所でもその値がきいてきた経験があるかもしれない.わざわざその値をクリアするために,x = . や Clear[x] としなければならなかった.

 一方,Module ではそのモジュール内だけに用いられる局所変数を設定でき,局所変数の内容はノートブックの他の部分に影響しない.たとえば下の例では,In[1] で変数 x に 2 を代入し x^2 をプリントしている.ところが,x が局所変数であるために Module の外では x に代入された値(というよりも局所変数 x 自身)は何ら痕跡が残らない.確かに下の In[2], Out[2] を見るとそうなっている.
 Module をうまく利用すると,複雑なプログラムで多くの変数を使ったときにも過去の実行に影響されず,すっきりしたプログラムを作ることができるので,しっかり身につけておこう.

 ヘルプを読んだだけでは,プログラムといってもまだ具体的なイメージがわかないかもしれない.そこで以下に簡単なプログラムの例を挙げておく.(プログラムとしては全く洗練されていない.)

 ひとつ目は,原点を中心とし半径 r の円内に含まれる整数座標の格子点の個数を数える関数 myCountPoints[r] の定義である.二重の For 文が用いられている.

 ふたつ目は,素数か否かを判定する関数 myPrimeQ[n] である.これは Mathematica で用意されている PrimeQ と似たふるまいをする.

 どちらの例でも,関数を Module で定義している.そして Module の中身は ; で区切られた式の列になっている.

 では以上を読んで試し,理解したら,課題 6課題 7 をやってみよう.


トップページ