Re: Branch Cuts and NDSolve

*To*: mathgroup at smc.vnet.net*Subject*: [mg85865] Re: Branch Cuts and NDSolve*From*: "David Park" <djmpark at comcast.net>*Date*: Tue, 26 Feb 2008 07:42:03 -0500 (EST)*References*: <fpud81$mi7$1@smc.vnet.net>

Alex, The Presentations package from my web site (cost $50) has the structure and routine: Multivalues[memoryset,symbolicset,var,permutations] holds the data for evaluating multifunctions with memory of the last evaluation. It is used in conjuction with CalculateMultivalues and preserves a continuity of root values. CalculateMultivalues[memorydata][z] will calculate and set a new set of values for the expression in memorydata, which must be a Multivalues expression. It will then return {newvalues,permutation used}. I haven't tried using this inside of NDSolve, and don't know if there would be problems, but if you gave me a simple set of equations I would try it. You would probably just use First@First@CalculateMultivalues[memorydata][z] to track a single solution. I've used this very successfully in continuously tracking a function value on a Riemann surface by dragging a locator around. The whole point of a Riemann surface is that a multifunction is single valued and continuous at all points of the surface. -- David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ "Alex Cloninger" <acloninger at wustl.edu> wrote in message news:fpud81$mi7$1 at smc.vnet.net... > So I need to teach Mathematica how to take a root of a complex number. > The problem is that the way it does it in NDSolve (for a square root) is > just to assume you want the first of the two possible solutions (ie. > Sqrt[i]=Exp[i*Pi/4] and not Exp[5i*Pi/4]). I need to teach Mathematica to > know which root to take by telling it to continue on the same trajectory > that the solution was traveling previously. I'm not sure how to go about > that? Basically, some of the complex differential equations I'm trying to > solve should tie themselves in a knot, but that doesn't happen without > Mathematica knowing which root to take. > > Is there any way someone could help me out with this problem? I'm not > sure how to get started. > > Thanks, > Alex >