Pułapki wykresów komputerowych - wykład 1

Wykres funkcji generowany przy pomocy komputera może być mylący, gdyż może pomijać pewne szczegóły.
Przykładowo porównajmy wykresy trzech funkcji:
f(x):=(x^4)+(x^3)-7(x^2)+2, 
g(x):=f(x)+10·(e^(-((((x-a)b))^2)))

Clear[Evaluate[Context[]<>"*"]];
w[x_]:=x^4+x^3-7x^2+2

eta[x_,t_,u_]:=Exp[-((x-t)*u)^2]

win[x_]:=w[x]+10*(eta[x,0.3,100])

Na poniższym wykresie możemy analizować dokładność rysowania wykresów przez program Mathematica. Parametry a i b określają odpowiednio położenie "szpicy" względem osi x oraz jej szerokość (im większe b tym węższa). Jakość wykresu określa nam gęstość rysowania punktów na wykresie.

Przy odpowiednim doborze parametrów a i b oraz Jakoscwykresu "szpica" znika choć powinna być narysowana, co sugeruje ewidentny błąd wykresu!

Manipulate[Plot[{w[t]+10*(eta[t,a,b]), w[t]},{t,-2,2.5`},PlotRange->{-20,20},PlotLabel->Style["wykres funkcji ze szpicą  i bez", Bold, 18],AxesLabel->{"x","g(x)"},BaseStyle->{FontSize->16},AspectRatio->2,PlotPoints->Jakoscwykresu],{{a, -1, "pozycja szpicy"},-1,1},{{b,8, "szerokość szpicy"},0.2,1000},{{Jakoscwykresu,100,"jakość wykresu"},2,1000,1}]

Przy wzroście b około wartości 300 szpica znika (choc wiemy, że tam jest) ale co ciekawsze jeśli zwiekszamy jakośc wykresu zwiekszając liczbę rysowanych punktów wykresu to szpica raz pojawia sie a raz znika!

Na poniższym wykresie mamy przykład tego, że dla pewnych funkcji "ciekawe" rzeczy mogą pojawiać się w pewnym przedziale. 
Wykres obrazuje położenie punktu w działaniu odwzorowania logistycznego (iterowanego 100 razy). Na osi X zmienia się parametr a w równaniu, na osi Y mamy zobrazowane położenie punktu (Subscript[x, 100]):

(Subscript[x, n+1])=a(1-(Subscript[x, n]))(Subscript[x, n])

Plot[Nest[a #(1-#)&,0.5,100],{a,0,2},PlotLabel->Style["zależność \!\(\*SubscriptBox[\(x\), \(\(100\)\(\\ \)\)]\)od parametru a", Bold, 18],AxesLabel->{"a","(Subscript[x, 100])"},BaseStyle->{FontSize->16}]

Plot[Nest[a #(1-#)&,0.5,100],{a,0,4},PlotLabel->Style["większy zakres a", Bold, 18],AxesLabel->{"a","(Subscript[x, 100])"},BaseStyle->{FontSize->16}]