next up previous
Next: C. プログラム例 Up: 情報処理2資料 Mathematica 入門 Previous: A..5 Select[] リストの要素のうち条件に合致するものを選ぶ

B. 式の評価順序の話 -- Evaluate[]

Table[BesselJ[n,x],{n,5}]

とすると、 {BesselJ[1,x],BesselJ[2,x],BesselJ[3,x],BesselJ[4,x],BesselJ[5,x]} という 5 つの関数を含んだリストができる。一方、
Plot[{BesselJ[1,x],BesselJ[2,x],BesselJ[3,x],BesselJ[4,x], BesselJ[5,x]},{x,0.0,10.0}]

とすると、その 5 つの関数のグラフが表示される。すると、
Plot[Table[BesselJ[n,x],n,5],{x,0.0,10.0}]

とすれば $ 5$ つの関数のグラフが描けるような気がするが、 実はうまく行かない。 Lisper だったら、その理由は分かるでしょう。そして、
Plot[Evaluate[Table[BesselJ[n,x],{n,5}]],{x,0,10}]

とすると、うまく行くというのにも納得できるでしょう。一件落着。

同様に
f[x_]:=Sin[x]

としたとき、D[f[x],x]Cos[x] となるが、
Plot[D[f[x],x],{x,0,2Pi}]

としても Cos[x] のグラフは描けない。
Plot[Evaluate[D[f[x],x]],{x,0,2Pi}]

あるいは、
Plot[f'[x],{x,0,2Pi}]

とする。


next up previous
Next: C. プログラム例 Up: 情報処理2資料 Mathematica 入門 Previous: A..5 Select[] リストの要素のうち条件に合致するものを選ぶ
Masashi Katsurada
平成23年7月19日