MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: FindRoots?

  • To: mathgroup at
  • Subject: [mg112274] Re: FindRoots?
  • From: "Ingolf Dahl" <ingolf.dahl at>
  • Date: Tue, 7 Sep 2010 06:07:19 -0400 (EDT)

Andrzej states that a non-polynomial interpolating function cannot be
analytic, and therefore cannot be used together with Reduce. I had asked
about RBF interpolation with a Gaussian radial basis function. As I
understand it, such an interpolation is a sum of Gaussians, centered around
different points, and this sum can be written in such a way that it is
analytic (The exponent of the Gaussian should then contain x squared, and
not x times the conjugate of x.) Such interpolation functions cannot in
general be handled by Reduce, but this is not related to being analytic or
not, they are simply too complicated.

Reduce can handle the following function with simple coefficients and three
terms, if given some time:

Reduce[0.3 E^(-(1/2) (-2.23 + x)^2) - 0.7 E^(-(1/2) (-1.45 + x)^2) + 
   1.1 E^(-(1/2) (0.` + x)^2) == 0, {x}, Reals]

but does not seem to get ready with this, not within my patience:

Reduce[-16.367079553136787` E^(-(1/2) (-2.33` + x)^2) + 
   20.460124007820784` E^(-(1/2) (-2.23` + x)^2) - 
   5.524386343053091` E^(-(1/2) (-1.45` + x)^2) + 
   2.4125732736976717` E^(-(1/2) (0.` + x)^2) == 0, {x}, Reals]

, both expressions equally analytic. The roots of this second equation are
not in any way problematic, and are robust to the "fuzziness" of the real
numbers in Mathematica. But to me it seems as if Reduce does inadequate
things in this case.
Maybe I am generalizing from too few examples. Please correct me if that is
the case! 
But anyway, I consider it as snobbery to say that Reduce is superior to
RootSearch. They do not play in the same division, and perform different

Best regards

Ingolf Dahl

> -----Original Message-----
> From: Andrzej Kozlowski [mailto:akozlowski at]
> Sent: den 5 september 2010 13:09
> To: mathgroup at
> Subject: [mg112229] Re: FindRoots?
> On 5 Sep 2010, at 10:49, Ingolf Dahl wrote:
> > Andrzej,
> > I must ask some question related to your answer. Better to ask and
> > unwise than not to ask and remain unwise.
> > The questions are interlaced below.
> >
> >> -----Original Message-----
> >> From: Andrzej Kozlowski [mailto:akozlowski at]
> >> Sent: den 4 september 2010 09:58
> >> To: mathgroup at
> >> Subject: [mg112182] Re: FindRoots?
> >>
> >> (snipped)
> >>
> >> Reduce used exact methods so you have to rationalize the output or use
> > equivalent
> >> approaches and it works fine in such cases. You are right that you
> > use it with
> >> Interpolating functions since of course they are not analytic.
> >
> > I want to put a question mark on "of course". Say, an interpolation
> > polynomial of fifth degree - is that not "analytic"? Or a RBF (radial
> > function) interpolation, with a Gaussian radial basis function. And most
> > other interpolation methods (also those returned by NDSolve) are
> > differentiable any number of times everywhere except in isolated points
> > along some lines. Then it should be a bookkeeping problem to analyze
> > interval or region, one at a time? It should not be too difficult to
> > exchange the interpolation method, if that is preferred.
> Of course interpolating polynomials are analytic but if you use Reduce
with an interpolating
> polynomial you will certainly not encounter the problems Gianluca referred
to. As for the
> other types of interpolating functions: remember that for Reduce to work
it needs to be a
> complex analytic function, i.e. differentiable when considered as a
function of a complex
> variable (i.e. the Cauchy-Riemann equations have to be satisfied), and of
course that is not
> true for a non-polynomial interpolating function. Remember that the
purpose of Reduce is to
> return mathematically "provable" results (and, in those cases when it can
only produce a
> partial result it will display a message to the effect that the methods
available to it are not
> sufficient to obtain the complete solution and either display a partial
solution or none).
> >
> >
> > Andrzej Kozlowski  wrote:
> >> I concede that you make a reasonable case for this sort of capability.
> > However,
> >> computations of this kind with Interpolating functions are generally
> > unreliable, since
> >> the conditions required by FindRoot to work are often not satisfied. I
> > don't think this sort
> >> of hit or miss approach is appropriate for a mathematical solver.
> > this sort of
> >> capabilities should be available in a package designed specifically for
> > dealing with
> >> interpolating functions (which I don't consider as "mathematical
> > objects").
> >
> > What are interpolating functions then? Please elaborate in detail,
because I
> > am curious!
> >
> > I think that different point sets in abstract vector spaces are
important in
> > many places for our description of the world and of the universe of
> > thoughts. Interpolation functions make it possible to apply various
> > mathematical methods to these point sets. And I think that abstract
> > set tools might become important in the further development of machine
> > intelligence.
> Well, I wrote that quickly and did not give it much thought. In fact, in a
certain sense
> everything that Mathematica does can be given a rigorous mathematical
description, and
> hence it is all "mathematical". However, some of the basic objects that
Mathematica deals
> with not the kind of objects one deal with in "usual" mathematica yet in
some sense they can
> be viewed as some sort of "simulations" of them. The main examples of such
things are
> approximate numbers in Mathematica. One can certainly produce a rigorous
> theory of Mathematica's real or complex  numbers but it will be in many
ways different from
> what we mean by real and complex numbers in mathematics. As has been often
> on this forum, Mathematica's real numbers are really "fuzz balls", similar
to intervals but not
> quite. The rules for working with them are perfectly mathematical but
usually they are not
> known to the users (one can read about them in full detail in some
technical publications but
> no!
> t in the Mathematica documentation). So what users do is regard them as
some sort of
> approximations to certain standard mathematical concepts. In practice this
is almost always
> enough. The problem occurs of course when you try to apply mathematical
theorems, proven
> for the "real things" to these approximations. In general you can't expect
to get reliable
> results.
> The problem with (non-polynomial) interpolating functions is that they are
constructed out
> of and applied to Mathematica's non-exact numbers. It seems clear that you
can't expect to
> obtain mathematically valid results by applying to these entities theorems
proved for the
> "standard" mathematica objects which they approximate of "simulate".  For
really reliable
> results you would need methods that fully took into account the actual
"fuzzy" nature of
> these things. That is why functions like Reduce  or Solve which rely on
> mathematics" are not usually  appropriate.
> This is, of course, not an argument against having in Mathematica the
sort of capabilities
> that Gianluca wrote about. Rather, I don't think the existing RootSearch
actually offers
> them, since I think it relies on the built in FindRoot function. Although
FindRoot is indeed
> intended for solving numerical equations I do not think it can be reliably
used with
> InterpolatingFunction objects that arise as solutions of differential
equations. I say this on
> the basis of my own experience. There is often a way to avoid this by
using the
> "EventLocator" value of the option Method in NDSolve.
> Andrzej Kozlowski

  • Prev by Date: Re: Sorting a list of names
  • Next by Date: Re: Holding arguments of a family of functions
  • Previous by thread: Re: FindRoots?
  • Next by thread: Re: FindRoots?