|
1.7.1 ユーザ定義の関数
これまでに、Mathematicaの組込み関数について多くの事例を見てきた.本章では,簡単な例を参考にしながらユーザによる関数の定義と使い方に関する基本的な事柄を説明する.関数をMathematicaにどのように追加したらよいか等の詳細は第2部で説明する.
最初の例として,引数を2乗する関数fを考える.この関数を定義するのに必要なMathematicaのコマンドは,f[x_] := x^2である.式の左辺にある下線部(_)は「ブランク」と呼ばれ,非常に重要なものである.ブランクのもつ意味については後述するが,ここでは,ブランクは定義式の右辺ではなく,左辺に置かれる,ということを覚えていてほしい.
関数fを定義する._が左辺にあることに注意.
In[1]:= f[x_] := x^2
fは引数を2乗する.
In[2]:= f[a+1]
Out[2]= 
引数には数値を指定してもよい.
In[3]:= f[4]
Out[3]= 
もちろん複雑な式でも構わない.
In[4]:= f[3x + x^2]
Out[4]= 
fを計算式の一部として使ってみる.
In[5]:= Expand[f[(x+1+y)]]
Out[5]= 
疑問符をfの前につけると,fの定義式を参照することができる.
In[6]:= ?f



関数の定義
Mathematicaでは,fのような関数に使う名前は単なる記号である.このため,組込み関数と区別するため,大文字で始まる関数名は使わないようにする.また,これらの名前を同じセッションで他のものに対して使わないようにする.
Mathematicaの関数には引数をいくつもたせてもよい.
In[7]:= hump[x_, xmax_] := (x - xmax)^2 / xmax
関数humpは,組込み関数と同じように使うことができる.
In[8]:= 2 + hump[x, 3.5]
Out[8]= 
humpの定義を変更する.前の定義は新たな定義で上書きされる.
In[9]:= hump[x_, xmax_] := (x - xmax)^4
定義情報を確認する.新しい定義になっていることが分かる.
In[10]:= ?hump


humpに関するすべての定義を消去しておく.
In[11]:= Clear[hump]
定義した関数が必要なくなったら,必ず定義を消去しておく.そうしないと,後で同じMathematica セッションにおいて同じ関数を別の用途に使おうとすると問題が起こる.ユーザ定義された関数fからすべての定義を消去するにはClear[f]を使う.
|