2008年9月2日火曜日

Mathematicaメモ:その2?

Mathematicaで、複数の手続きをまとめて一つの関数として扱いたいときには
f[i_]:=( x=i*2;
     y=i*i;
     val=Sin[x]Cos[y];
     Write[out,val]
     )
のように=の後を()でくくる。手続きの間には;を入れる。忘れるとエラー出る。これでFrotranでいうところのFunctionに相当するようなブツが作れる。

Mathematica内では基本的に変数名はグローバルに扱われる。なので長いのを作ってると変数名に困る。これを回避する一つの方法がModuleブロックである。

Module[{x,y},
Isin=NIntegrate[Sin[x],{x,-1,1}];
Icos=NIntegrate[Cos[y],{y,-1,1}]
]

みたいな感じでつかう。Module[{局所変数の組},手続き]。積分変数とか、一時的に使う変数をModuleブロック内の局所変数にできるので、積分変数にいちいちx1とかy1とかわけわからん名前つけて混乱するのを避けることができる。

今週は教授陣が揃って出張なので、マイペースな感じ。大学の端末のほうが性能良いから登校してるけど。こないだ出したプロシーディングがアクセプトだった。やれやれ。でもその考察がちょっと間違ってるかもしれないことが今日やった計算が示唆している。おぅ・・・どうしたものか。

0 コメント: