Sqrt(ab) = sqrt(a)sqrt(b)


By Alastair George on Wednesday, February 24, 1999 - 11:08 am :

I would appreciate comments on a question that a colleague and I have been debating.


The problem is to establish whether
  __
Öab
 
=ÖaÖb

Suppose a, b are complex numbers of unit modulus, to make the working simpler, and arguments a, b respectively, with 0 < a, b < 2p.

Then, it would appear that,


arg(   __
Öab
 
)=0.5(a+b)

, mod 2p

and, similarly,

arg(Öa)arg(Öb)=0.5a+0.5b, mod 2p

The problem, then, is when a+b=2p

In such a case, the first argument would be returned as zero, whereas the second would be p. However, is it correct to say that for all other combinations of a+b, there is no problem i.e


  __
Öab
 
=ÖaÖb

?
I would be grateful for any comments.

Alastair


By Alex Barnard (Agb21) on Wednesday, February 24, 1999 - 12:29 pm :
You are right that
  __
Öab
 
=ÖaÖb

does not hold sometimes. However it is much more often than just the a+b=2p case.

For example take a, b both to be the numbers -i (which have arguments 3p/2. Their product is -1 and its principal square root is i. The principal square root of -i however is (-1+i)/Ö2. When this is multiplied by itself you get -i. So you have problems when a+b ³ 2p.

The reason you missed this is that your calculations are slightly wrong. They should go:


arg(   __
Öab
 
)=0.5arg(ab)=0.5(a+b mod 2p)

. Note that the mod is taken BEFORE the 0.5

arg(ÖaÖb)=0.5a+0.5b mod 2p. Here the mod is taken AFTER the 0.5

Now you can see why there is a problem when a+b > 2p... In the second case we never actually use the mod. In the first case we will remove 2p before halving things. Hence our answers will be out by eip=-1.

So
  __
Öab
 
=ÖaÖb

up to the sign.

This is a very common type of behaviour for functions which have what is called a branch point. This is a point where you get a different value back from the function if you walk around it. Imagine going in a circle around 0 and look at what the square root gives you. It will start at 1 and slowly change until when you get back to 1 it will now be -1. This shows that 0 is our branch point. You will find that if you don't circle around 0 then you will get back to exactly where you started from. This shows that 0 is the only branch point.

Write back if you want to know more about functions with branch points...

AlexB.