Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

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
> 



  • Prev by Date: Re: << Getting all solutions from DSolve >>
  • Next by Date: Re: PowerExpand in version 6
  • Previous by thread: Branch Cuts and NDSolve
  • Next by thread: Dynamic Rotation: Coupling of Two or More Graphics3D objects?