rectform rescue of principal value



Hello,

On Fri, Nov 05, 2010 at 02:16:11PM -0700, Edwin Woollett wrote:
> A failure of both rectform and polarform to agree
> with principal value conventions is PV (-8)^(1/3) )
> defined in terms of the p.v.log.

My 2 cents on this p.v. problem.

Some time ago I solved (with the help of Maxima) a practical problem
related to design of a parabolic reflector antenna. In a formal
language it would sound like:

"Given an eikonal Phi(zp,z,dz,f,p) find zp(z,dz,f,p) that provides a
minimum of the eikonal."

Sounds rather simple, however, it was pretty much unsolvable on paper
because of very lengthy algebraic calculations.

Below is a simplified version of my calculations in Maxima (try
running it through Maxima):

---- begin ----

/* these two constants are used later in subst() */
a : -%i;
b : a^5;

/* this is Phi(zp,z,dz,f,p) */
Phi : p + (z-zp)^2/(2*p) - (z-zp)^4/(8*p^3) + 2*f - zp*dz/f + (zp*dz^3 + zp^2*dz^2 + zp^3*dz)/(4*f^3)$
/* its derivative with respect to zp */
dPhi : diff(Phi, zp);

/* solve a cubic equation */
roots : solve(dPhi, zp)$
/* only the third root is real */
rhs(roots[3]);

/* the obtained expression is impractically huge, so make an approximation */
taylor(%, [z, dz], 0, 4);

/* At this point taylor gives a complex result that contains
   expressions like ((-1)^(1/6))^5. At the time I could not find any
   better method than just trying different branches of z^(1/6).
   a and b from the above seemed to work.  */

subst(a, (- 1)^(1/6), %)$
subst(b, (- 1)^(5/6), %)$
res : expand(%);

/* Here I check the solution by a direct substitution. taylor() at the
   end proves that the found solution is correct up to the desired
   accuracy */
ratsimp(subst(res, zp, dPhi))$
taylor(%, [z, dz], 0, 4);

---- end ----

First of all, I am not sure that taylor() should really give a complex
answer in this problem. But if it does, then I would prefer keeping
those roots of -1 unsimplified, because the p.v. roots would not lead
to a correct solution in this case.

-- 
Stanislav