Re: When is x^y = != E^(y*Log[x])
- To: mathgroup at smc.vnet.net
- Subject: [mg66270] Re: [mg66236] When is x^y = != E^(y*Log[x])
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sat, 6 May 2006 01:54:57 -0400 (EDT)
- References: <200605050902.FAA28575@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 5 May 2006, at 18:02, ted.ersek at tqci.net wrote: > The Mathematica documentation for Power says: > For complex numbers (x^y) gives the principal value of ( E^(y*Log > [x] ). > This is consistent with reference books. > > I wanted to see where in the extended complex plane this identity > applies. > Also when it doesn't apply how do we determine (x^y). > So consider the following: > > > In[1]:= > x=0; y=-3; > {x^y, E^(y*Log[x])} > > Out[3]= > {ComplexInfinity, Infinity} > > > The documentation wasn't wrong in the above example because 0, -3 > are not > complex numbers. > However, I have seen books that imply the identity above works for > any (x,y). > Well I can see the above identity doesn't apply when x=0 and y is > negative. > The above identity doesn't apply in the following cases either. > > In[4]:= > x=-2; y=(2+I)*Infinity; > {x^y, E^(y*Log[x])} > > Out[6]= > {Indeterminate, 0} > > > > In[7]:= > x=5-6*I; y=-Infinity*I; > {x^y, E^(y*Log[x])} > > Out[9]= > {Indeterminate, 0} > > > > In[10]:= > x=y=Infinity; > {x^y, E^(y*Log[x])} > > Out[11]= > {ComplexInfinity, Infinity} > > > Then you might say the above identity doesn't apply when Abs[y] > ==Infinity, > but the above identity does apply in the next example. > > In[12]:= > x=(1+2*I)*Infinity; y=(-1+2*I)*Infinity; > {x^y, E^(y*Log[x])} > > Out[14]= > {0, 0} > > > Could somebody provide conditions on (x,y) that are necessary and > sufficient for > E^(y*Log[x]) to return the same thing as (x^y). > > ------------- > Ted Ersek > > This issue has been discussed here in the past (see the recent reply by David Cantrell to an earlier post of yours) and I do not want to repeat it all here again, but so will try to confine myself to what I think are the main points. You can only speak of an "identity" in mathematics if you have at least two well defined objects in the same "mathematical context". Only then you can speak of them as being identically equal. Objects belonging to different contexts can't be compared. To say that x^y is defined to be the principal value of ( E^(y*Log [x] ) says exactly that: the left hand side is defined to be the principal value of the right hand side whenever x and y are complex numbers and when both sides are well defined complex numbers. That means in particular that no 'Infinities" are included in this definition. In fact, 0 and -3 are complex numbers, but of Infinity or ComplexInfinty are not. The issue of what should be returned when something in the above expression is "infinite" is a separate one from the above definition. It is partly a question of what model of "extended complex plane" should be used. This is the main source of confusion (but not the only one). Some of the inconsistencies that appear in your examples are all due to the fact that Mathematica uses simultaneously two different "compactifications" of the complex plane: the one point compactification (where there is only one infinity, denoted by ComplexInfinity and the compactified complex plane is topologically just the 2-sphere) and "infinitely many point compactification", where you have lots of infinities of the form DirectedIfinity[z], where z is any complex number. The complex plane with this compactification is topologically the closed 2-dimensional disk. These two models represent two different mathematical contexts, in other words they do not fit together into any consistent mathematical object. Or to put in yet another way, Infinity and ComplexInfinity do not "live in the same world": one lives on the disc the other on the sphere. Moreover, the "disk model" itself has serious problems, since analytic functions cannot be extended continuously to the disk so inevitably one will sometimes obtain contradictory results if one assumes that they do. If you only allow one Infinity: ComplexInfinity - then all the above computations will return the same result, although in most cases it will be the rather useless Indeterminate. This approach, although mathematically the most satisfactory and the one that is almost always used in texts on complex analysis, is not fully satisfactory when you consider Mathematica as a computational tool rather than as a logical system. It can be argued that having ComplexInfinity as the only kind of Infinity would involve "loosing" useful information in certain situations, and as a result Mathematica would not be able to solve some problem that it can do now. (On the other hand it would not get into the kind of contradictions that it does get into now). Also, the "many infinities" disc model allows one to "embed" the standard model of the extended real line (the two point compactification = closed interval) in the extended complex plane, by thinking of Infinity as DirectedInfinity[1], and -Infinity as DirectedInfinity[-1], which is attractive in a program like Mathematica where you do not declare in advance the mathematical context you are working in. To summarise: x^y === principal part of E^(y*Log[x]) for complex numbers is not an identity: it is a definition. What values either side should take when something becomes "infinite" is a matter of the model of the complex plane that you use and of how you decide to extend the definition. There is no unique or fully satisfactory way of doing this. Having chosen a model, one tries to find the most useful definition, which means that the function will be "as continuous as possible". Note however that even for genuine complex numbers the function x^y will never be continuous everywhere since even the function x^(1/2) can't be defined continuously on the standard complex plane. As I already mentioned above: the standard model of the extended complex plane called the Riemann sphere, has only one infinity: ComplexInfinity. We know that on the Riemann sphere the functions z- >z^a can be defined continuously for all real a>0, so we have ComplexInfinity^a = ComplexInfinity for a>0 and ComplexInfinity^a=0 for a<0. ComplexInfinity^0 would be best defined as 1, but as that has a discontinuity with respect to the exponent Mathematica chooses to define it as Indeterminate. On the other hand a^ComplexInfinity does not have any definition with good properties so Mathematica leaves it undefined. When you use the other model of the extended complex plane you into a confusing situation, which is due to the fact that there are more "useful" extensions for various kinds of infinite expressions, but they often tend to be inconsistent with one another. In fact, the answers that you get often depend on such things as the order in which you perform arithmetical operations (in other words the usual laws of arithmetic do not hold). Some of them are hard to explain: I can't see any good reason at all why Infinity^Infinity is ComplexInfinity, and it seems to contradict the the most basic rule that x^y is always real when x and y are positive reals. Besides, as I mentioned earlier, Infinity and ComplexInfinity do not belong together in any topological model known to me (you need a "topological model" to be able to consider the issue of continuity) and should never appear in the same formula. I can only consider this as a bug, and a rather silly one. But the fact is that there is no accepted standard way in mathematics of dealing with such matters and I do not know of any way that would be satisfactory. In Mathematica in such cases pragmatic computational considerations tend to decide the issue. So to return to your question: the sufficient condition is that x and y and both sides of your "identity" be complex numbers. As for the necessary condition the question is not really well defined if you allow infinite quantities, since there is neither a single accepted model of the extended complex plane nor, for any given model, a standard accepted way of extending x^y or E^(y*Log[x]) to take account of various kinds of infinities. Andrzej Kozlowski
- References:
- When is x^y = != E^(y*Log[x])
- From: ted.ersek@tqci.net
- When is x^y = != E^(y*Log[x])