2011-03-04 1 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] 

(모든 커브를 참조 할 수 있도록 또한, 기능의 순서를 역전). 제가 참조 enter image description here

+0

한다. 고맙습니다. –