2011-03-04 10 views
3

mathematicaでプロットすることで、いくつかの "奇妙な"関数を調べたいと思っています。一つの例は以下の通りです:mathematicaで誤ったプロットの問題

mod2[x_] := Which[Mod[x, 2] >= 1, -2 + Mod[x, 2], True, Mod[x, 2]]; 
f[x_] := Which[-1 <= x <= 1, Abs[x], True, Abs[mod2[x]]]; 
fn[x_, n_] := Sum[(3/4)^i*f[4^n*x], {i, 0, n}] 
Plot[{fn[x, 0], fn[x, 1], fn[x, 2], fn[x, 5]}, {x, -2, 2}] 

しかし、私はMMAからもらったプロットはfn[x, 5]の最大値と最小値が同じ2つのレベルであるべきという意味で、誤解を招く恐れがあります。しかし、関数の高い振動と、明らかにmmaが関数を描くために限られた数の点しか取らないという事実のために、プロットは奇妙な挙動を示すことが分かります。これに対処するためのプロットのオプションはありますか?

plot of fn

感謝します。

答えて

9

「良い」結果を得るには、PlotPointsの設定をかなり増やす必要があります。

Plot[Evaluate[ 
    Reverse[{fn[x, 0], fn[x, 1], fn[x, 2], fn[x, 5]}]], {x, -2, 2}, 
PlotPoints -> 4000] 

(すべての曲線を見ることができるように、私はまた、機能の順序を逆転させた。)

enter image description here
+0

なるほど。ありがとうございました。 –

関連する問題