On Sat, Dec 6, 2014 at 1:01 PM, Aaron Meurer <[email protected]> wrote: > Something that I'm not sure about with representing functions as > multivalued is, how do you represent arbitrary Riemann surfaces. > > Another question is computational. How do you compute the surfaces in > general (say even for a limited class of expressions, like algebraic > functions), and how do you make cuts in a consistent manner? > > The only thing I can think of is to write everything in terms of exp() > and log() and parameterized integers, e.g., sqrt(x) should really be > exp((log(x) + 2*pi*I*n)/2) for integer. This basically boils down to > sqrt(x) = +/- sqrt(x). Each rational power has to have a distinct > parameterized integer. This should lead to correct and general results
Exactly. And sometimes you can absorb the 2*pi*n factors into the multivalued function itself, for example you can just write: log(a*b) = log(a) + log(b) However, then, when you subtract this, you need to write this as: log(a*b) - log(a) - log(b) = 2*pi*I*n Also, when you evaluate things numerically, you need to keep the 2*pi*n factors around, for example in the above for a=b=-1, you need to evaluate numerically as: LHS: log((-1)*(-1)) = log(1) = 0 + 2*pi*I*n RHS: log(-1) + log(-1) = (I*pi + 2*pi*I*k) + (I*pi + 2*pi*I*l) = 2*pi*I*(1+k+l) So the multivalues on LHS and RHS are obviously equal. But if you evaluate without the 2*pi*n factors, you get 0 = 2*pi*I, which is not equal to each other. > if you do it correctly, but I don't really see how to compute useful > things from this without getting huge expressions with tons of > parameterized integers. I think there is probably a way to simplify things in many cases, but it seems it is much more complicated than just using single values on a principal branch, as we do in sympy currently. Ondrej -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CADDwiVCu6r1FD61VA1mcvpVi1wS30w%3D%3DCHvZ44ALSMJzdApb-g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
