New Reply

"The precision of the argument function" error message, graph not plotted

 
Share Thread
Jun13-12, 08:30 AM   #1
 

"The precision of the argument function" error message, graph not plotted


I've got a function, integratedadvthirdaltb, that I'm trying to use in plotting some graphs:

thirdaltb[KP_, Ps_, C_, M_] :=
NSolve[Sqrt[2*M]*b +
InverseCDF[NormalDistribution[0, 1], Ps]*
Sqrt[4*(InverseCDF[NormalDistribution[0, 1], Ps]^2) +
4*Sqrt[2*M]*b + (2.785398163397448309616)*M] ==
KP*C - 2*(InverseCDF[NormalDistribution[0, 1], Ps]^2), b,
WorkingPrecision -> 20]

directadv[b_] := -Log2[1 - CDF[NormalDistribution[0, 1], b]]

integratedadvthirdaltb[KP_, Ps_, C_, M_] :=
directadv[b /. thirdaltb[KP, Ps, C, M]]

So far so good. However, the first graph I've tried to plot is giving me a lot of "The precision of the argument function ({6.6073 +4\ Sqrt[2]\ \
b+1.83842\ Sqrt[58.0856 +16\Sqrt[2]\b]}\\n) is less than \
WorkingPrecision" errors (in fact, that's not the only argument function that apparently has less than WorkingPrecision.) Having WorkingPrecision->20 in the definition of the thirdaltb function, I'm at a loss as to why I'm getting these errors.

That said, the first graph does get plotted. Here's the instruction to do so

LogLinearPlot[{integratedadvthirdaltb[x, 0.967, 2^(-5.35614381),
2^(4)]}, {x, 2^(9), 2^(13)}, AxesLabel -> {KPs, advantage},
PlotLabel ->
Style["HEYSFIRST6622NONLINEAR - theoretical advantage with Ps = \
0.97"], PlotRange -> {0, 12}, PlotStyle -> {Blue},
Ticks -> {{{2^(9), Superscript[2, Log2[2^(9)]]}, {2^(10),
Superscript[2, Log2[2^(10)]]}, {2^(11),
Superscript[2, Log2[2^(11)]]}, {2^(12),
Superscript[2, Log2[2^(12)]]}, {2^(13),
Superscript[2, Log2[2^(13)]]}}, Automatic},
WorkingPrecision -> 20]

The next graph I've tried to plot, however, is completely blank. Only the axes and heading/labels appear on screen. And I'm getting a lot more "The precision of the argument function ... is less than Working Precision" messages than I was for its predecessor:

LogLinearPlot[{integratedadvthirdaltb[x, 0.967, 2^(-8), 1]}, {x,
2^(9), 2^(13)}, AxesLabel -> {KPs, advantage},
PlotLabel ->
Style["CRYPRACTHREEFOURROUNDSTWELVEBITS - theoretical advantage \
with Ps = 0.97"], PlotRange -> {0, 12}, PlotStyle -> {Red},
Ticks -> {{{2^(9), Superscript[2, Log2[2^(9)]]}, {2^(10),
Superscript[2, Log2[2^(10)]]}, {2^(11),
Superscript[2, Log2[2^(11)]]}, {2^(12),
Superscript[2, Log2[2^(12)]]}, {2^(13),
Superscript[2, Log2[2^(13)]]}}, Automatic},
WorkingPrecision -> 20]

Does any one have any idea as to where I'm going wrong and what I should do to fix it?

Thanks!

James McLaughlin.
PhysOrg.com science news on PhysOrg.com

>> City-life changes blackbird personalities, study shows
>> Origins of 'The Hoff' crab revealed (w/ Video)
>> Older males make better fathers: Mature male beetles work harder, care less about female infidelity
Jun16-12, 07:44 AM   #2
 
Mentor
I looked through the code and it seems that there are several sources of reduced precision. First, you have several imprecise constants defined, such as 0.967. I would go through and define each constant to have 30 digits of precision, like 0.967`30.

The other source of imprecision is the variable x. Even though you have defined the endpoints with exact expressions, x gets demoted down to $MachinePrecision while plotting points on the interior of the range. The way to overcome that is to explicitly increase its precision

LogLinearPlot[{integratedadvthirdaltb[SetPrecision[x, 30], 0.967`30,
2^(-5.35614381`30), 2^(4)]}...
New Reply

Tags
mathematica 8

Similar discussions for: "The precision of the argument function" error message, graph not plotted
Thread Forum Replies
"Foundations" argument: Silberstein et al engage Hiley-channeling-Bohm Quantum Physics 47
Matlab "solve" function in "for" loops Math & Science Software 4
How do I construct a set of "concentric" circles with millimeter precision? General Engineering 2
"Key Argument for Global Warming Critics Evaporates" Earth 53