Re: Root Finding Methods Gaurenteed to Find All Root Between (xmin, xmax)
- To: mathgroup at smc.vnet.net
- Subject: [mg112769] Re: Root Finding Methods Gaurenteed to Find All Root Between (xmin, xmax)
- From: "Ted Ersek" <ersekt at md.metrocast.net>
- Date: Thu, 30 Sep 2010 04:49:41 -0400 (EDT)
It was mentioned that some of the methods to find all roots in a certain region require interval analysis. However, Interval arithmetic in Mathematica is limited. First of all Mathematica only knows how to evaluate elementary function and simple functions such as (Abs, Min) when given an Interval as an argument. So for example Mathematica does nothing with Gamma[ Interval[ {2,3} ] ] even though Gamma[x] is continuous and monotonic over this interval with Gamma[2] == 1; Gamma[3] ==2 Besides that Mathematica performs calculations as if each instance of Interval[{xmin_, xmax_}] is a value between (xmin, xmax) that is unrelated to any other instance of Interval[{xmin_, xmax_}]. So I present the following as a worst case example of what this can give. In[1]:= poly=Function[x, Evaluate[ChebyshevT[15,x]]] Out[1]= Function[x,-15 x+560 x^3-6048 x^5+28800 x^7-70400 x^9+92160 x^11-61440 x^13+16384 x^15] In[2]:= poly[Interval[{-1,1}]] Out[2]= Interval[{-275807,275807}] The above interval isn't very useful when we can see from Plot[ poly[x], {x,-1,1} ] that poly[x] oscillates between (-1,1) over this interval. For a general function we can approximate the interval we really want using NMinimize[ { f[x], xmin<x<xmax}, x ], NMaximize[ { f[x], xmin<x<xmax}, x ]. However, that's about as difficult as finding a root of f[x]. Actually that may be more difficult than finding a root of f[x]. Ted Ersek