MathGroup Archive 2007

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

Search the Archive

Re: Re: Re: Re: Limit and Root Objects

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72694] Re: [mg72668] Re: [mg72644] Re: [mg72620] Re: Limit and Root Objects
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Mon, 15 Jan 2007 05:55:47 -0500 (EST)
  • References: <NDBBJGNHKLMPLILOIPPOIEDOFFAA.djmp@earthlink.net>

As I already suggested: read

http://forums.wolfram.com/mathgroup/archive/2006/Dec/msg00496.html

and then think about what it says. (Obviously the issue concernst  
each individual root being continuous).

I think I have written about this as much as I am willing to do.

Andrzej Kozlowski

On 14 Jan 2007, at 17:58, David Park wrote:

> Paul Abbot asked: "Again, ignoring root ordering, why
> isn't it possible for all these roots to maintain their identity  
> and so
> be continuous functions of the parameter? And wouldn't such continuity
> be nicer than enforcing root ordering?"
>
> (I'm not certain if I exactly understand Paul's question. Does he  
> mean that
> each individual root function, in the set of root functions, must be
> continuous, or does he allow global reindexing on the entire set to  
> achieve
> continuity?)
>
> So, what exactly does your mathematical theorem say? Does it say  
> that given
> a one-parameter finite order polynomial it is not possible to  
> continuously
> reindex the set of root solutions so that the reindexed roots will  
> vary
> continuously in the complex plane as a function of the parameter?  
> Or that
> you can't do this when the polynomial contains a complex  
> coefficient? If it
> says that, I don't believe it.
>
> It certainly is possible to arrange things so that the roots vary
> continuously, and it can even be useful.
>
> It reminds me of a Groucho Marx quip, something about: "Are you  
> going to
> listen to me or are you going to go by what you see in front of  
> your eyes?"
>
> David Park
> djmp at earthlink.net
> http://home.earthlink.net/~djmp/
>
>
>
> From: Andrzej Kozlowski [mailto:akoz at mimuw.edu.pl]
>
> I don't understand what you mean by "continuous enough" and why you
> think and animation can "disprove" a mathematical proof?
>
> Please read the argument:
>
> http://forums.wolfram.com/mathgroup/archive/2006/Dec/msg00496.html
>
> It is very simple. Remember the point is that you cannot define such
> a function that will be continuous over the entire 6 dimensional (3
> complex dimensions) space of polynomials of degree 3 with complex
> roots (we actually normally remove the discriminant from the space).
> You are using a smaller subspace ( you have just one complex
> parameter) and over a smaller subspace naturaly it is possible to
> have a continuous root.
> If you look carefully at Adam's argument you will be easily able to
> see what must go wrong over the entire space of complex cubics.
>
> This in fact is a good illustration of what a double edged weapon
> graphics and animations are in studying mathematics: they can just as
> easily mislead your intuition and lead you to wrong conclusions as to
> right ones. Which is one reason why I think one should never rely too
> much on such tools when teaching mathematics. Proofs are proofs and
> no number of "convincing animations" and "experimental mathematics"
> can replace them.
>
> Andrzej Kozlowski,
>
> Department of Mathematics, Informatics and Mechanics
> Warsaw University, Poland
>
>
> On 14 Jan 2007, at 01:54, David Park wrote:
>
>> This looks continuous enough to me, with and without complex
>> coefficients.
>>
>> Needs["Graphics`Animation`"]
>> Needs["Graphics`Colors`"]
>>
>> frame[a_] :=
>>   Module[{roots = rootset[a], newroots, rootpermutations,
>> distances, pick,
>>       locations},
>>     If[memoryrootset === Null, newroots = roots,
>>       rootpermutations = Permutations[roots];
>>       distances =
>>         Plus @@ Abs[Part[roots, #] - memoryrootset] & /@
>> basepermutations;
>>       pick = Part[Position[distances, Min[distances], 1], 1, 1];
>>       newroots = Part[roots, Part[basepermutations, pick]]];
>>     memoryrootset = newroots;
>>     locations = {Re[#], Im[#]} & /@ newroots;
>>
>>     Show[Graphics[
>>         {LightCoral, AbsolutePointSize[15],
>>           Point /@ locations,
>>           Black,
>>           MapThread[Text[#1, #2] &, {Range[5], locations}],
>>
>>           Text[SequenceForm["a = ",
>>               NumberForm[a, {3, 2}, NumberPadding -> {" ", "0"}]],
>>             Scaled[{0.1, 0.95}], {-1, 0}]}],
>>
>>       AspectRatio -> Automatic,
>>       TextStyle -> {FontFamily -> "Courier", FontSize -> 12,
>>           FontWeight -> "Bold"},
>>       Frame -> True,
>>       PlotRange -> {{-3, 3}, {-3, 3}},
>>       PlotLabel -> SequenceForm["Continuous Roots of" , displaypoly],
>>       ImageSize -> 400]
>>     ]
>>
>> Case 1
>>
>> polynomial = x^5 - a x - 1 == 0;
>> displaypoly = polynomial /. a -> HoldForm[a];
>> rootset[a_] = x /. Solve[polynomial, x]
>>
>> memoryrootset = Null;
>> basepermutations = Permutations[Range[5]];
>> Animate[frame[a], {a, -6, 10, 0.25}]
>> SelectionMove[EvaluationNotebook[], All, GeneratedCell]
>> FrontEndTokenExecute["OpenCloseGroup"]; Pause[0.5];
>> FrontEndExecute[{FrontEnd`SelectionAnimate[200,
>> AnimationDisplayTime -> 0.1,
>>       AnimationDirection -> ForwardBackward]}]
>>
>> Case 2
>>
>> polynomial = x^5 + (1 + I) x^4 - a x - 1 == 0;
>> displaypoly = polynomial /. a -> HoldForm[a];
>> rootset[a_] = x /. Solve[polynomial, x];
>>
>> memoryrootset = Null;
>> basepermutations = Permutations[Range[5]];
>> Animate[frame[a], {a, -6, 10, 0.5}]
>> SelectionMove[EvaluationNotebook[], All, GeneratedCell]
>> FrontEndTokenExecute["OpenCloseGroup"]; Pause[0.5];
>> FrontEndExecute[{FrontEnd`SelectionAnimate[200,
>> AnimationDisplayTime -> 0.1,
>>       AnimationDirection -> ForwardBackward]}]
>>
>> But this is a combinatoric algorithm and if there are too many
>> roots it
>> might begin to get costly. But it is perfectly practical for these
>> examples.
>>
>> David Park
>> djmp at earthlink.net
>> http://home.earthlink.net/~djmp/
>>
>> From: Andrzej Kozlowski [mailto:akoz at mimuw.edu.pl]
>>
>> On 12 Jan 2007, at 11:05, Paul Abbott wrote:
>>
>>> In article <em8jfr$pfv$1 at smc.vnet.net>,
>>>  Andrzej Kozlowski <andrzej at akikoz.net> wrote:
>>>
>>>> What you describe, including the fact that the numbering or roots
>>>> changes is inevitable and none of it is not a bug. There cannot
>>>> exist
>>>> an ordering of complex roots that does not suffer from this  
>>>> problem.
>>>> What happens is this.
>>>> Real root objects are ordered in the natural way. A cubic can have
>>>> either three real roots or one real root and two conjugate complex
>>>> ones. Let's assume we have the latter situation. Then the real root
>>>> will be counted as being earlier then the complex ones. Now suppose
>>>> you start changing the coefficients continuously. The roots will
>>>> start "moving in the complex plane", with the real root  
>>>> remaining on
>>>> the real line the two complex roots always remaining conjugate
>>>> (symmetric with respect to the real axis). Eventually they may
>>>> collide and form a double real root. If this double real root is  
>>>> now
>>>> smaller then the the "original real root" (actually than the  
>>>> root to
>>>> which the original real root moved due the the changing of the
>>>> parameter), there will be a jump in the ordering; the former root
>>>> number 1 becoming number 3.
>>>> This is completely unavoidable, not any kind of bug, and I am not
>>>> complaining about it. It takes only elementary  topology of
>>>> configuration spaces to prove that this must always be so.
>>>
>>> But is there a continuous root numbering if the roots are not
>>> ordered?
>>>
>>> What I mean is that if you compute the roots of a polynomial, which
>>> is a
>>> function of a parameter, then if you assign a number to each root,
>>> can
>>> you follow that root continuously as the parameter changes? Two
>>> examples
>>> are presented below.
>>>
>>> Here is some code to animate numbered roots using the standard root
>>> ordering, displaying the root numbering:
>>>
>>>  rootplot[r_] := Table[ListPlot[
>>>    Transpose[{Re[x /. r[a]], Im[x /. r[a]]}],
>>>    PlotStyle -> AbsolutePointSize[10],
>>>    PlotRange -> {{-3, 3}, {-3, 3}},
>>>    AspectRatio -> Automatic,
>>>    PlotLabel -> StringJoin["a=", ToString[PaddedForm[Chop[a], {2,
>>> 1}]]],
>>>    Epilog -> {GrayLevel[1],
>>>     MapIndexed[Text[#2[[1]], {Re[#1], Im[#1]}] & , x /. r[a]]}],
>>>       {a, -6, 10, 0.5}]
>>>
>>> First, we have a polynomial with real coefficients:
>>>
>>>   r1[a_] = Solve[x^5 - a x - 1 == 0, x]
>>>
>>> Animating the trajectories of the roots using
>>>
>>>   rootplot[r1]
>>>
>>> we observe that, as you mention above, when the complex conjugate
>>> roots
>>> 2 and 3 coalesce, they become real roots 1 and 2 and root 1 becomes
>>> root
>>> 3. But, ignoring root ordering, why isn't it possible for these
>>> roots to
>>> maintain their identity (I realise that at coelescence, there is an
>>> arbitrariness)?
>>>
>>> Second, we have a polynomial with a complex coefficient:
>>>
>>>   r2[a_] = Solve[x^5 + (1+I) x^4 - a x - 1 == 0, x]
>>>
>>> Animating the trajectories of the roots using
>>>
>>>   rootplot[r2]
>>>
>>> we observe that, even though the trajectories of the roots are
>>> continuous, the numbering switches:
>>>
>>>   2 -> 3 -> 4
>>>   5 -> 4 -> 3
>>>   3 -> 4 -> 5
>>>   4 -> 3 -> 2
>>>
>>> and only root 1 remains invariant. Again, ignoring root ordering,  
>>> why
>>> isn't it possible for all these roots to maintain their identity
>>> and so
>>> be continuous functions of the parameter? And wouldn't such
>>> continuity
>>> be nicer than enforcing root ordering?
>>>
>>> Cheers,
>>> Paul
>>>
>>> ____________________________________________________________________ 
>>> _
>>> _
>>> _
>>> Paul Abbott                                      Phone:  61 8 6488
>>> 2734
>>> School of Physics, M013                            Fax: +61 8 6488
>>> 1014
>>> The University of Western Australia         (CRICOS Provider No
>>> 00126G)
>>> AUSTRALIA                               http://physics.uwa.edu.au/
>>> ~paul
>>
>>
>> In the cases of polynomials with real coefficients it is indeed
>> possible to define a continuous root. It is certianly not possible to
>> do so for polynomials with complex coefficients. For a proof see my
>> and Adam Strzebonski's posts in the same thread. Adam Strzebonski
>> gave a very elementary proof of the fact that a continuous root
>> cannot be defined on the space of complex polynomials of degree d. I
>> quoted a more powerful but not elementary theorem of Vassiliev, which
>> describes the minimum number of open sets that are needed to cover
>> the space of complex polynomials of degree d, so that there is a
>> continuous root defined on each open set. In fact, Vassiliev gives
>> the exact number only in the case when d is prime, in which case d
>> open sets are needed. For example, for polynomials of degree 3 at
>> least 3 sets are needed . If it were possible to define a  continuous
>> root, then of course only one set would suffice. In the case when d
>> is not prime no simple formula seems to be known, but it is easy to
>> prove that that the number is >1, (e.g. by means of Adam
>> Strzebonski's proof).
>>
>> Andrzej Kozlowski
>>
>>
>
>


  • Prev by Date: simple modification of Solve
  • Next by Date: Re: Re: Re: Re: Limit and Root Objects
  • Previous by thread: Re: Re: Limit and Root Objects
  • Next by thread: Re: Re: Re: Re: Limit and Root Objects