help in setting precision and getting a smooth curve
- To: mathgroup at smc.vnet.net
- Subject: [mg33377] help in setting precision and getting a smooth curve
- From: "Salman Durrani" <dsalman at itee.uq.edu.au>
- Date: Mon, 18 Mar 2002 23:38:48 -0500 (EST)
- Organization: The University of Queensland, Australia
- Sender: owner-wri-mathgroup at wolfram.com
Hi
I have tried increasing the precision but I still cannot get a smooth plot
for the following code with M=64.
( it works for M=2,4,8,16,32. I do not need to go beyond M=64)
The variable "p" is apparently not being calculated correctly and this
causes the final plot to look jagged.
Can anyone please suggest, how to get a smooth plot ?
Thanks
Salman
% ---------------------------------------------------------------
$MaxPrecision = Infinity;
\!\(\(Pb =
Function[{}, \[IndentingNewLine]perr = {}; \[IndentingNewLine]For[
a = 5, a <= 7,
a += 0.1, \[IndentingNewLine]x =
10\^\(a\/10\); \[IndentingNewLine]M = 64; \[IndentingNewLine]K =
Log[2, M]; \[IndentingNewLine]r\ =
1/3; \[IndentingNewLine]dist = {18, 19, \ 20, \ 21, \ 22, \ 23,
\
24, \ 25, \ 26, \ 27, \ 28, \ 29, \ 30, \ 31, \ 32, \ 33, \
34, \ 35}; \[IndentingNewLine]numErr = {11, \ 0, 32, \ 0, \
195, \ 0, \ 564, \ 0, \ 1473, \ 0, \ 5129, \ 0, \ 17434, \ 0,
\
54092, 0, \ 171117, \ 0}; \[IndentingNewLine]X =
r\ K\ x; \[IndentingNewLine]p =
Block[{$MaxExtraPrecision = Infinity},
N[\(M/2\)\/\(M - 1\)\ Sum[
Binomial[M - 1,
n]\ \((\(-1\))\)\^\(n + 1\)\/\(1 + n\)\ Exp[\(-\
X\)\ n\/\(1 + n\)], {n, 1, M - 1}],
512]]; \[IndentingNewLine]pfunct[
pf_] := \((2\ \@\(p\ \((1 - p)\)\))\)\^pf; \
\[IndentingNewLine]sss =
Sum[numErr[\([d]\)]\ pfunct[dist[\([d]\)]], {d, 1,
Length[dist]}]; \[IndentingNewLine]AppendTo[
perr, {a,
sss}];\[IndentingNewLine]]; \[IndentingNewLine]perr\
\[IndentingNewLine]];\)\)
N[Pb[], 10000];
(*Block[{$MaxExtraPrecision = 10000}, N[Pb[], 256]];*)
<< Graphics`Graphics`;
one = LinearLogListPlot[perr,
Axes -> False,
Frame -> True,
PlotJoined -> True,
PlotRange -> All,
PlotStyle -> {AbsoluteThickness[1.5], RGBColor[1, 0, 0]}
];
TableForm[perr] // N
% ---------------------------------------------------------------