2011-03-04 25 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]的最大值和最小值應該是相同的兩個層次。但是由於函數的高度振盪,以及顯然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] 

(I也相反的功能的順序,以便能夠看到所有的曲線。) enter image description here

+0

我明白了。謝謝。 –