MathGroup Archive 2008

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

Search the Archive

Re: << Getting all solutions from DSolve >>

  • To: mathgroup at smc.vnet.net
  • Subject: [mg85890] Re: << Getting all solutions from DSolve >>
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Tue, 26 Feb 2008 07:57:04 -0500 (EST)
  • Organization: Uni Leipzig
  • References: <fq0uii$kda$1@smc.vnet.net>
  • Reply-to: kuska at informatik.uni-leipzig.de

Hi,

as you already observe, the Mathematica solution include
I and a quick look in a book about function
of mathematica physics show that

{
  BesselJ[\[Nu]_, I z_] :> ((I z)^\[Nu] BesselI[\[Nu], z])/z^\[Nu],
  BesselY[\[Nu]_, (-I) z_] :> -((2 BesselK[\[Nu],
           z])/(Pi (-I)^\[Nu])) + ((2 (-I)^\[Nu])/
        Pi) (Log[-((I z)/2)] - Log[z/2]) BesselI[\[Nu],
       z] /; \[Nu] \[Element] Integers
}

and
<< VectorAnalysis`

sol = DSolve[
   J + \[ScriptCapitalD]*
      Laplacian[ns[Rr], Cylindrical[Rr, \[Theta], z]] -
     ns[Rr]/\[Tau] == 0, ns[Rr], Rr]

sol1 = FullSimplify[sol /. {
     BesselJ[\[Nu]_, I z_] :> ((I z)^\[Nu] BesselI[\[Nu], z])/z^\[Nu],
     BesselY[\[Nu]_, (-I) z_] :> -((2 BesselK[\[Nu],
              z])/(Pi (-I)^\[Nu])) + ((2 (-I)^\[Nu])/
           Pi) (Log[-((I z)/2)] - Log[z/2]) BesselI[\[Nu],
          z] /; \[Nu] \[Element] Integers},
   Element[\[Nu], Integers] &&
    Element[{Rr, \[ScriptCapitalD], \[Tau]}, Reals] &&
    Rr > 0 && \[ScriptCapitalD] > 0 && \[Tau] > 0]

gives

{{ns[Rr] -> J*\[Tau] + BesselI[0, 
Rr/Sqrt[\[ScriptCapitalD]*\[Tau]]]*(C[1] - I*C[2]) - (2*BesselK[0, 
Rr/Sqrt[\[ScriptCapitalD]*\[Tau]]]*C[2])/Pi}}

and only the free constants C[1] and C[2] must be redefined
to match the "solution published in a scientific journal paper"
perfect.

And so, Mathematica has already "all the possible solutions" and
you need to get some more knowlege on special functions.

Regards
   Jens


Hatuey Hack wrote:
> Hello,
> 
> I am trying to solve a diffusion problem using the following equation (in
> cylindrical coordinates):
> 
> DSolve[J + D*Laplacian[ns[Rr]] - ns[Rr]/\[Tau] == 0, ns, Rr]
> 
> 
> The solution published in a scientific journal paper was:
> 
> Paper = J*\[Tau] + BesselI[0, Rr/Sqrt[D/\[Tau]]]*C[1] + BesselK[0,
> Rr/Sqrt[D/\[Tau]]]*C[2]
> 
> The solution from DSolve was:
> 
> My = J*\[Tau] + BesselI[0, Rr/Sqrt[D/\[Tau]]]*C[1] + BesselY[0,
> -I*Rr/Sqrt[D/\[Tau]])]*C[2]
> 
> So, the two solutions are very different, one is a real function (Paper) and
> the other one is a complex function (My).
> 
> I would like to know how can I "force" DSolve to give me all the possible
> solutions or at less a constrained solution (something like give me only the
> real ones).
> 
> My system: Mathematica 6, Linux
> 
> Thanks in advance.
> 
> Hatuey
> 
> 


  • Prev by Date: PointSize (and shape) frustration
  • Next by Date: Re: Branch Cuts and NDSolve
  • Previous by thread: << Getting all solutions from DSolve >>
  • Next by thread: Re: How to import a Matlab mat-file