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

*To*: mathgroup at smc.vnet.net*Subject*: [mg72729] Re: [mg72668] Re: [mg72644] Re: [mg72620] Re: Limit and Root Objects*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Wed, 17 Jan 2007 06:04:33 -0500 (EST)*References*: <NDBBJGNHKLMPLILOIPPOEEEDFFAA.djmp@earthlink.net> <4573B174-8F5A-445B-8E1F-51E3F53A8683@mimuw.edu.pl> <04F49FA6-5BAF-4FCD-9A82-4B17C58794D4@mimuw.edu.pl>

I just noticed that I changed my notation near the end of the proof, switching from the name R for the hypothetical continuous root function to root. In case this causes again some confusion the line g(t) = root(f(t)) = root(x^d- Exp[2Pi I t]) should be g(t) = R(f(t)) = R(x^d- Exp[2Pi I t]) and the line root(f(0)) == root(f(1)) should be R(f(0)) == R(f(1)) Andrzej On 16 Jan 2007, at 09:12, Andrzej Kozlowski wrote: > I have decided to make one more attempt, although I really can't > afford to spend this time - I am under a lot of pressure form other > things I have to do. But if this does not work than nothing else will. > > I am simply going to re-write Adam's proof using more words, which > ought to make it a little clearer. > > Consider again the space of all monic polynomials of degree d, with > complex coefficients. These are object of the form: > > x^d + a(1) x^(d-1)+ ... + a(d), where a(i) are complex numbers. Any > such polynomial can be identified wiht the ordered d-tuple > (a(1),...,a(d)) , so the space of polynomials has a topology which > is just the topology of C^d - the d-fold Cartesian product of the > complex numbers. We shall therefore identify the space of > polynomials with C^d. > In the usual way we will remove from this space the space S > consisting of all those monic polynomials with multiple roots. We > will show that one cannot define a continuous root function on the > space C^d-S . Since C^d-S is a subspace of C^d, if one cannot > define a continuous root function on C^d-S then one obviously can't > do so on the larger space C^d. > Now suppose there is a continuous function, lets call it R (nothing > to do with Mathematica's Root - it was unfortunate that Adam used > this name), from C^d-S to the complex numbers C, which has the > property that for any polynomial p in C^d-S, R(p) is a root of p. > We will show that the assumption that such an R exists leads to a > contradiction. O.K> so suppose we have R: C^d-S -> C and R(p) is a > root of p and R is continuous. Now consider the following loop in > the space C^d-S; going from the polynomial x^d -1 to itself. A loop > on a space X is a continuous function f:[0,1] -> X such that f(0)=f > (1), where [0,1] denotes the unit interval. Our loop is defined as > follows f(t) = x^d- Exp[2Pi I t] . Note that this is always always > a polynomial wihtout multiple roots, and that f(0) = f(1) = x^d - > 1, in other we start with the polynomial x^d -1 and then > continuously move in the space of polynomials until we get back to > the same polynomial. (A technical comment: homotopy classes of such > loops form a group called the fundamental group of the space on > which these loops are defined. If this group is the zero group then > the space is simply connected. The main point of the argument is > that the space C^d-S is not simply connected and its fundamental > group is a famous group called Artin's group on d -strings). O.K., > now we compose out loop with our continuous function root, which we > are assuming to exist. So we get a continuous function g(t) = root(f > (t)) = root(x^d- Exp[2Pi I t]). Note that since g(t) is a root of > x^d- Exp[2Pi I t]. that means that it must satisfy this equation, > that is g(t)^d == Exp[2Pi I t]. so in particular the values of g(t) > lie in the unit circle. O.K. now since g(t)^d = Exp[2Pi I t], we > must have > g(t) == E^((2 I Pi t+2 I Pi k(t))/d) > where k(t) is some integer depending on t. But since g(t) must be > continuous and k(t) must always be an integer, then it clearly must > be always constant. So actually g(t)=E^((2 I Pi t+2 I Pi k )/d), > where k is a fixed integer. O.K. now put into this t=0 and t=1. We > get g(0)= E^((2 I Pi k )/d) and g(1) = E^((2 I Pi ( k+1 )/d), which > are not equal. But look, f is a loop, so f(0) = f(1). But that mean > root(f(0)) == root(f(1)). But that means we must have g(0) = g(1). > So we have a contradiction. This means that no such function root > can exists. > The proof is complete, and no animation or anything else can > disprove it. > > ANdrzej Kozlowski > > On 15 Jan 2007, at 19:22, Andrzej Kozlowski wrote: > >> I am sorry but I am about to give up. Let me explain it again but >> for the last time really. And please do not send me any animations >> because I never look at them. To tell the truth I have not even >> looked at one of them. Everything I have written and am writing is >> well known mathematics and it is you who are completely confused. >> >> The point is this. It is possible to define a continuous function >> from the set of complex polynomials of degree d with the topology >> given by considering the coefficients as elements of C to the >> topological space consisting of unordered d-tuples {x1,x2,...,xd}, >> with the topology of the so called symmetric product of C. In >> intuitive language, the set of roots as set or un-ordered d-tuple >> does depend continuously on the coefficients of the polynomial. >> But it is impossible to continuously choose one root out of this >> unordered set and obtain in this way a continuous function on the >> space of all complex polynomials (or even on the smaller space of >> polynomials minus the determinant). It is impossible intuitively >> because there is no natural way to choose one root out of an >> unordered set. In more precise topological language the reason is >> that you are dealing with a non trivial covering space, which does >> not have a global continuous section. This is what Adam's proof >> shows. It has nothing whatever to do with Root objects, >> Mathematica but it is only mathematics and well known mathematics, >> so there can be no dispute about it. >> >> As I wrote above, I definitely give up. If you can't follow this >> then you should just accept that topology, even basic one is not >> something that very congenial to you, and leave it at that. >> >> Anyway, I can't devote any more time or effort to this matter. If >> any body else would like to try (Adam) then please do. >> Alternatively, perhaps you should write to a mathematical site, >> for example you could try the Hopf topology group run by Don >> Davies, dmd1 at lehigh.edu , and ask about this matter and perhaps >> you will find somebody with better pedagogical skills then mine. >> There are also other sites run by professional mathematicians who >> answer general questions of this kind. Or you could try writing to >> Dave Rusin (rusin at math.niu.edu), he is a topologist and I think he >> likes answering questions of this kind. Also, he has much more >> experience, patience and pedagogical skill than me. >> Perhaps some other mathematicians on the list (Adam, Daniel ?) >> might want to explain it better, but as for me I am form now on >> only willing to discuss mathematica and not mathematics, and >> definitely not anything remotely topological. >> >> >> Andrzej Kozlowski >> >> >> On 15 Jan 2007, at 17:06, David Park wrote: >> >>> Well, I'm glad you didn't give up (and I didn't think you would). >>> I might >>> actually learn some formal mathematics. But as yet, I do not >>> follow Adam >>> Strzebonski's proof - nor am I certain exactly what the claims of >>> the proof >>> are. So let me state the matter in my own words. >>> >>> Given a one-parameter, say a, finite order, say order d, >>> polynomial with >>> real or complex coefficients, can we find a set of d root >>> functions which >>> are each continuous and which give the complete set of roots for the >>> polynomial for each value of a? >>> >>> I claim that the answer is yes. Let's say that it is not possible >>> to obtain >>> continuous exact algebraic roots, say with the Mathematica Root >>> function >>> (and I think that's what you and Strzebonski are saying). So with >>> Root we >>> obtain an indexed set of discontinuous root functions. But the >>> discontinuities are not unrelated. There are global relationships >>> between >>> the root functions. And specifically I'm claiming that we can >>> introduce a >>> pointwise reindexing function that will reindex the roots for >>> each value of >>> a, and that these new root functions can be made continuous. We >>> can even >>> make up a table of the new roots and fit an InterpolatingFunction >>> to them so >>> that we will have a set of true numerical root functions that are >>> each >>> continuous. >>> >>> Here are the examples again. >>> >>> Needs["Graphics`Animation`"] >>> Needs["Graphics`Colors`"] >>> >>> Routine to reindex at each value of a. >>> >>> rootindexedset[a_] := >>> Module[{roots = rootset[a], newroots, rootpermutations, >>> distances, pick}, >>> 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; >>> {a, #} & /@ newroots >>> ] >>> >>> Case 1 >>> >>> polynomial = x^5 - a x - 1 == 0; >>> displaypoly = polynomial /. a -> HoldForm[a]; >>> rootset[a_] = x /. Solve[polynomial, x] >>> >>> Calculating the reindexed root functions. >>> >>> memoryrootset = Null; >>> basepermutations = Permutations[Range[5]]; >>> roottables = Transpose@Table[rootindexedset[a], {a, -6., 10, 0.25}]; >>> Do[root[i] = Interpolation[Part[roottables, i]], {i, 1, Length >>> [roottables]}] >>> >>> Plot routine and animation >>> >>> frame[a_] := >>> Module[{locations}, >>> locations = {Re[#], Im[#]} & /@ Table[root[i][a], {i, 1, 5}]; >>> 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] >>> ] >>> >>> 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]]; >>> roottables = Transpose@Table[rootindexedset[a], {a, -6., 10, 0.50}]; >>> Do[root[i] = Interpolation[Part[roottables, i]], {i, 1, Length >>> [roottables]}] >>> >>> 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]}] >>> >>> I'm not claiming that I know for certain that this can be done in >>> all cases, >>> or whether it might depend on how the parameter a enters into the >>> polynomial. I leave it to the mathematicians to correct me if >>> necessary or >>> make it sharper. >>> >>> But I think that it is very worthwhile doing this kind of thing. >>> It changes >>> our viewpoint of what is happening. For example, the jumping of >>> the initial >>> root functions is something of an artifact of algebra. It >>> confuses what is >>> really happening, say in a physical problem. When we take a >>> global view of >>> the solution set, the discontinuities lose their importantance. >>> What is more >>> important is that when the parameter a passes through a point >>> that produces >>> degenerate roots, then the solution set branches. If there is a >>> p'th order >>> root at the degeneracy, then there are p! branches to the >>> solution set. If a >>> physical solution corresponded to following a single root, then this >>> branching would certainly have significance - much more than the >>> discontinuities in the original root functions. >>> >>> And there is a lot of good mathematics that flowed out of visual and >>> graphical thinking. >>> >>> I'm sure I won't hear from Paul Abbott who posed these particular >>> cases in >>> the first place. >>> >>> David Park >>> djmp at earthlink.net >>> http://home.earthlink.net/~djmp/ >>> >>> From: Andrzej Kozlowski [mailto:akoz at mimuw.edu.pl] >>> >>> On 15 Jan 2007, at 08:02, Andrzej Kozlowski wrote: >>> >>>> One further (I hope last) comment. >>> >>> As usual I am unable to stick to this kind of promise ;-( >>> >>> In fact, it is clear that if we want to consider all roots of a >>> polynomial as a continuous function of the parameter we do not even >>> need to remove the discriminant. We can simply consider the map >>> >>> f: C^d -> S^d(C) >>> >>> where S^d(C) is the so called symmetric product on C (C stands for >>> the complex numbers). You can think of it as the space whose >>> elements >>> are unordered tuples (c1,c2,...,cd) of complex numbers - in other >>> words sets with d elements. So the map f assigns to a polynomial >>> x^d+ >>> a(d-1) x^(d-1)+...+a(0) the unordered tuple (a(d-1), a(d-2),..., a >>> (0)). The symmetric product has a natural topology (in fact the d-th >>> symmetric product on C happens to be homeomorphic to C^d but this is >>> not the case for other spaces, for example the d-th symetric product >>> on R is not R^d). Anyway, the map f is indeed a continuous map, and >>> this formalizes the statement that the set of roots of a complex >>> polynomial depends continuously on the coefficients. However, >>> this is >>> quite different from saying that you can define one continuous root >>> on the space of all polynomials, which is certainly impossible (see >>> again Adam Strzebonski's proof). >>> >>> I suspect this was the source of all the confusion here and we have >>> been arguing without understanding what the other side is talking >>> about. At least in my case this is the kind of situation that is >>> likely to lead to a loss of patience or even (as happened briefly >>> this time) temper. I think it also shows the great advantage of >>> using >>> formal mathematics rather than intuitive arguments, even if >>> supported >>> by very skillful animations. In 30 years of doing mathematics I >>> can't >>> recall coming across anyone loosing his temper over a strictly >>> formal >>> mathematical argument. When something like this does happen it >>> always >>> turns out that someone was simply not being formal enough. >>> >>> Andrzej Kozlowski >>> >>> >>> >>>> There is of course a sense in which the roots of a polynomial are >>>> continuous in the coefficients. Formally one has to use the concept >>>> of the symmetric product to state this. Let again X be the space >>>> C^d-S of monic polynomials of degree d with the determinant remove. >>>> Now we construct a space Y as follows. We first consider the >>>> subspace Z of the Cartesian product C^d, consisting of complex >>>> numbers (c_1,c_2,...,c_d) which are all distinct. The symmetric >>>> group on d elements (the permutation group) S(d) acts on Z, and we >>>> let Y be the set of orbits of the action Y=Z/S(d). So now we have a >>>> map f: X -> Y which assigns to a polynomial p in X, the unordered >>>> set of its roots (z_1,z_2,...,z_d). This map is certianly >>>> continuous with respect to the natural topologies on X and Y. >>>> Intuitively this says that the set of unordered roots (all of them) >>>> is indeed a continuous function of the parameters of the >>>> polynomials (but not the individual roots themselves). >>>> >>>> If, what you have been saying is in some way related to the above >>>> than of course I agree, but I can't see how this fact can in any >>>> way be useful in a computer program like Mathematica. >>>> >>>> >>>> Andrzej Kozlowski >>>> >>>> >>>> On 15 Jan 2007, at 07:35, Andrzej Kozlowski wrote: >>>> >>>>> I think I should have expressed myself differently. So here it is >>>>> again. >>>>> >>>>> I am sure that if you read and think about >>>>> >>>>> http://forums.wolfram.com/mathgroup/archive/2006/Dec/msg00496.html >>>>> >>>>> you will certianly know what I have been talking about. I don't >>>>> beleive you have done that. I can't explain it any better or >>>>> simpler. However, I can again state in a formal way what I am >>>>> asserting to be true. >>>>> >>>>> To talk of "continuity" of anything you have to specify three >>>>> things. One is a topological space X - the source space. The >>>>> second is a topological space Y - the target space. The third a >>>>> map (function) f: X -> Y. The statement of the theorem is: >>>>> Let X = C^d -S be the space of all complex monic polynomials with >>>>> the discriminant (the set of polynomials with a double root) >>>>> removed. Let Y = C (the complex numbers). Then there cannot exists >>>>> a continuous map f :X -> Y such that for any polynomial p in X, f >>>>> (p) is a root of p. >>>>> >>>>> This is proved by Adam Strzebonski in the above link. The theorem >>>>> of Vassiliev says that if d is a power of prime than you will need >>>>> at lead d open Sets U_1,U_2, ..., U_d whose union is all of X, >>>>> such that there is a map f_i: U_i -> C with the property that f(p) >>>>> is a root of p. >>>>> >>>>> I can also prove the following. Let X= R^d-S - the space of real >>>>> polynomials of degree d with the discriminant removed. Let Y=C. >>>>> Then there does exist a continuous map f: X -> Y such that for >>>>> each real polynomial p in X, f(p) is a root of p. (There are in >>>>> fact many such maps, exactly d over each connected component of >>>>> X). >>>>> >>>>> I think this is as clear as it can be made. Now, of course it is >>>>> quite possible that what you are trying to say is perfectly >>>>> sensible and correct. However, to make it mathematics you must be >>>>> able to make a formal statement like the above. An animation is >>>>> not a substitute for this. I have no idea form you animation what >>>>> is your X, what is your Y, and what is your function f that you >>>>> claim can be a continuous function. An animation or a graphic can >>>>> be useful once you only if they illustrate some formal mathematica >>>>> notions like these. >>>>> >>>>> Andrzej Kozlowski >>>>> >>>>> >>>>> On 14 Jan 2007, at 18:47, Andrzej Kozlowski wrote: >>>>> >>>>>> 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 >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >> >

**Re: speed of multiplying polynomials**

**Decision tree algorithm**

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

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