       RE: Plot, Cursor and Spelling Errors questions

• To: mathgroup at smc.vnet.net
• Subject: [mg14450] RE: [mg14393] Plot, Cursor and Spelling Errors questions
• From: Ranko Bojanic <bojanic at math.ohio-state.edu>
• Date: Wed, 21 Oct 1998 03:32:47 -0400
• Organization: Ohio State University
• Sender: owner-wri-mathgroup at wolfram.com

```Hi Ted!

Thanks for your suggestions. This problem of plotting curves whose
magnitude is smaller than the machine precision has bothered me for
many years while I was writing a Pascal program for the construction of
polynomials of best approximation to continuous function. If you have a
Macintosh computer, see Remez68K.sea.hqx  or RemezPPC.sea.hqx at
fttp://ftp.math.ohio-state.edu/pub/users/bojanic or look for Remez at
http://archives.math.utk.edu/
software/mac/numericalAnalysis/.directory.html The program I posted is
just the first step in the construction of the polynomial of best
approximation to Exp[x] on [-1,1], of degree 14. If you want a
polynomial of degree 30, set n=31 and the precision 50 istead of 17
since the magnitude of the error curve is  10^(-42). The PrecisionPlot
module works fine in this case as well.

I still do not understand why anh how your module works.

PrecisionPlot[f_,{x_,xmin_,xmax_},opts___?OptionQ]/;
Module[{g,h},
g=Evaluate[f/.x->#]&;
h=g[SetPrecision[#,17]]&;
Plot[h[x],{x,xmin,xmax}, opts]
]

If you write a simpler module along these lines just to evaluate a
function f at a poin a with  p decimal digits, you may write

eval[f_,a_,p_]:=   Module[{g,h,x},
g=Evaluate[f[x]/.x->#]&;
h=g[SetPrecision[#,p]]&;
Return[h[a]]]
This gives
In    := eval[Exp,2.3, 30]
Out   = 9.9741824548147189681868930533

It looks like we can evaluate Exp[2.3] with arbitrary precision. But

In    := N[Exp[23/10],30]
Out  = 9.9741824548147207399576151569

gives a different result.