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 >> >> > >