Precision of arguments to FunctionInterpolation
- To: mathgroup at smc.vnet.net
- Subject: [mg68286] Precision of arguments to FunctionInterpolation
- From: "Andrew Moylan" <andrew.j.moylan at gmail.com>
- Date: Mon, 31 Jul 2006 03:45:55 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
Can someone help me understand an unexpected dependence of
FunctionInterpolation on the precision of its second argument?
Here is function that behaves like a low-precision version of Sin:
lowPrecisionSin[x_?NumericQ] := SetPrecision[Sin[x], 5]
I can create an interpolation of this function thus:
FunctionInterpolation[lowPrecisionSin[x], {x, 0, 1.}]
This quickly successfully returns: InterpolatingFunction[{{0., 1.}},
<>]
If I instead try to create an interpolation of this function thus:
FunctionInterpolation[lowPrecisionSin[x], {x, 0, 1.`14}]
where the only difference is in the precision of the upper bound of the
range of interpolation, FunctionInterpolation fails to return quickly,
and it reports warnings like the following:
FunctionInterpolation::ncvb: FunctionInterpolation failed to meet the
\
prescribed accuracy and precision goals after 6 recursive bisections
near x = \
0.015625`13.154901959985743. Continuing to refine elsewhere.
Note that this behaviour is unchanged if I add the options e.g.
"PrecisionGoal -> 5, InterpolationPrecision -> 14" to each call to
FunctionInterpolation. But the behaviour _does_ depend on the precision
of lowPrecisionSin: if I change "5" to "10" in the definition of
lowPrecisionSin, the problem disappears.
Can anyone explain this apparently strange behaviour?
Cheers,
Andrew