A problem with an integral



Trying to check an integral leading to the famous soliton, i find the
following problem with maxima:

(%i1) integrate(1/(t*sqrt(1-t)),t);
(%o1)             log(sqrt(1 - t) - 1) - log(sqrt(1 - t) + 1)

Note this is not good because presumably the argument of the first log is
<0. The correct solution is as follows:


(%i2) X: -2*atanh(sqrt(1-t));
(%o2)                       - 2 atanh(sqrt(1 - t))
(%i3) diff(X,t);
                                       1
(%o3)                            -------------
                                 sqrt(1 - t) t

This, by inversion leads to the soliton:


(%i4) solve(x=X,t);
Is  x  positive, negative, or zero?

p;
                                                 x
(%o4)                      [sqrt(1 - t) = - tanh(-)]
                                                 2
(%i5) %^2;
                                           2 x
(%o5)                         [1 - t = tanh (-)]
                                             2
(%i6) solve(%,t);
                                           2 x
(%o6)                         [t = 1 - tanh (-)]
                                             2
(%i7) trigsimp(%);
                                        1
(%o7)                           [t = --------]
                                         2 x
                                     cosh (-)
                                           2


The last formula is the well known one soliton solution. If one performs the 
same calculation starting from %o1 one gets 1/sh^2(x/2) which is very bad
since it diverges at 0.

By the way, the same result is obtained in a much direct way with maple:

niobe% maple
    |\^/|     Maple 9 (IBM INTEL LINUX)
._|\|   |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc.
2003
 \  MAPLE  /  All rights reserved. Maple is a trademark of
 <____ ____>  Waterloo Maple Inc.
      |       Type ? for help.
> int(1/(t*sqrt(1-t)),t);
                                                             1/2
                                           -2 arctanh((1 - t)   )

> solve(%=X,t);
                                                            2
                                               1 - tanh(X/2)

> quit



-- 
Michel Talon