2010-12-31 2 views
33

에서 I 임의로 티카 7 죄 [X] 기능을 플로팅 이것은 도시 무엇인가이상한 신 [X] 그래프 티카

http://i.stack.imgur.com/hizGw.png

참고 약 x = -100 가시 결함. 단지 x = -100에서 이런 일이 발생하는 이유

mesh

누구나 알고 이유 : 여기

분명히 어떤 이유로 티카가 훨씬 낮은이 점 사이의 해상도를 사용하는 것을 보여주는, 결함 부분의 줌입니까?

참고 : 동일한 방식으로 Wolfram Alpha에서 발생합니다.

+0

단순한 앨리어싱과 비슷합니다. Mathematica가 근본적으로 이것에 버그를 가지고 있다고 정말로 생각하십니까? –

+0

아니, 그래서 나는 너무 놀랐다. 앨리어싱이있는 경우 간격이 더 커지면 더 많이 표시되는 경향이 없습니까? 예를 들어, xmin, xmax를 -60 Pi/60 Pi로 변경하면 사라집니다. – houbysoft

+1

@houbysoft 저는 Mathematica를 가지고 있지 않습니다. 실제로 그것에 대해 전혀 알지 못하지만 PlotPoints 옵션의 다양한 값을 시도해보십시오. –

답변

60

짧은 답변 : 정확성을하려하면 해당 기능이 충분하지 않습니다 기본적으로, 그래서 다음과 같이 증가

Plot[Sin[x], {x, -42 Pi, 42 Pi}, PlotPoints -> 100] 

긴 대답 :에 의해 그 점을 점의 유한 집합의 기능을 평가하고, 연결하여 Plot 작품 직선. 다음 명령

Plot[Sin[x], {x, -42 Pi, 42 Pi}, Mesh -> All, PlotStyle -> None, 
MeshStyle -> Black] 

plot를 사용 Plot에 의해 사용되는 점을 볼 수 있습니다

당신은 당신의 함수, 함수가 평가 점은 "피크를 놓쳤다"도입 것을 알 수 있습니다 큰 근사 오차. 포인트의 위치를 ​​선택하는 알고리즘은 매우 간단하며이 상황은 두 개의 피크가 PlotRange/PlotPoints보다 더 가깝게 배치 될 때 발생할 수 있습니다.

Plot 등 간격으로 50 개의 점으로 시작한 다음 추가 점을 MaxRecursion 단계까지 삽입합니다. MaxRecursion의 다양한 설정을위한 영역을 그려 보면이 "구멍"이 어떻게 나타나는지 볼 수 있습니다. 스탠 왜건의 매스 매 티카 책에 따르면

plot

plot1 = Plot[Sin[x], {x, -42 Pi, 42 Pi}, PlotPoints -> 100, 
    PlotStyle -> LightGray]; 
Table[plot2 = 
    Plot[Sin[x], {x, -42 Pi, 42 Pi}, Mesh -> All, MeshStyle -> Thick, 
    PlotStyle -> Red, MaxRecursion -> k]; 
    Show[plot1, plot2, PlotRange -> {{-110, -90}, {-1, 1}}, 
    PlotLabel -> ("MaxRecursion " <> ToString[k])], {k, 0, 
    5}] // GraphicsColumn 
, Plot는 두 개의 새로운 선분 사이의 각도가 5도 이상 될 경우 두 개의 연속 점 사이 추가 점을 반을 추가할지 여부를 결정 . 이 경우 초기 지점 위치 지정을 통해 플롯이 불충분 해지고 하위 구분이 해당 기준을 충족하지 못합니다. 홀의 중앙에 단일 평가 점을 삽입하면 거의 동일한 음모가 생성된다는 것을 알 수 있습니다.

Refinement 옵션을 사용하여 분할시기를 결정하는 데 사용되는 각도를 증가하는 방법 여기

plot1 = Plot[Sin[x], {x, -42 Pi, 42 Pi}, PlotPoints -> 100, 
    PlotStyle -> LightGray]; 
Show[plot1, 
Plot[Sin[x], {x, -42 Pi, 42 Pi}, Mesh -> All, MeshStyle -> Thick, 
    PlotStyle -> Red, MaxRecursion -> 3, 
    Method -> {Refinement -> {ControlValue -> 4 \[Degree]}}], 
PlotRange -> {{-110, -90}, {-1, 1}}] 

당신이 할 수있는 (나는 책에서 그것을 가지고,하지만 그것을하지 않는 것은 제품에 설명합니다) 그것을 기본 값에서 1도 씩 증가 시키면 구멍이 수정됩니다.

plot

+0

아, 그 대답의 업데이트 부분은 정확히 내가 뭘 찾고 있었는지 (나머지는 알고 있었고이 작업을 직접 수행 한 그래프 계산기를 구현했지만 MaxRecursion과 유사한 메커니즘을 포함하지 않았습니다. 부정확 함). – houbysoft