MathGroup Archive 2011

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

Search the Archive

Re: How to avoid repeated calculation in NDSolve ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg117004] Re: How to avoid repeated calculation in NDSolve ?
  • From: Peter Pein <petsie at dordos.net>
  • Date: Mon, 7 Mar 2011 05:48:29 -0500 (EST)
  • References: <ikvou0$fa7$1@smc.vnet.net>

Am 06.03.2011 11:50, schrieb t. shim:
> Hi,
>
> As the samplke list below,  the rhs of equations in NDSolve may have
> many repeated appearance of  the same expression such as (\[Mu][t]^2 +
> \[Nu][t]^2) in the denominator.
> In Fortran, we first write r = (\[Mu][t]^2 + \[Nu][t]^2) and in what
> follows use r insted of (\[Mu][t]^2 + \[Nu][t]^2).
> Tell me if such can be applied also in mathematica.
>
> Regards, t. shim
>
> NDSolve[
>   {p\[Mu]'[t] ==
>   1/2 (2 \[Mu][
>        t] (1/2 (
>          p\[Mu][t]^2 + p\[Nu][t]^2-4)/(\[Mu][t]^2 + \[Nu][t]^2) -
> (1 - \[Gamma])/2 (\[Mu][t] p\[Mu][t] - \[Nu][t] p\[Nu][t])^2/ (\[Mu]
> [t]^2 + \[Nu][t]^2)^2) +
> (1 - \[Gamma]) 1/(\[Mu][t]^2 + \[Nu][t]^2)^2 \[Nu][t] (\[Mu][t] p\[Mu]
> [t] -
> \[Nu][t] p\[Nu][t]) (\[Nu][t] p\[Mu][t] + \[Mu][t] p\[Nu][t])),
>   p\[Mu]'[t] == (mu, nu interchanged)
> ...
>

Hi,

use With:

With[{r = \[Mu][t]^2 + \[Nu][t]^2},
   (1/2)*(((1 - \[Gamma])*\[Nu][t]*
   (p\[Nu][t]*\[Mu][t] + p\[Mu][t]*\[Nu][t])*(p\[Mu][t]*\[Mu][t] -
    p\[Nu][t]*\[Nu][t]))/r^2 +
    2*\[Mu][t]*(-(((1 - \[Gamma])*(p\[Mu][t]*\[Mu][t] -
    p\[Nu][t]*\[Nu][t])^2)/(2*r^2)) +
    (-4 + p\[Mu][t]^2 + p\[Nu][t]^2)/(2*r)))
]

hth,
Peter


  • Prev by Date: Re: NDSolve (loop)
  • Next by Date: CUDALink with Mathematica 8, Visual C++ 2008 Express and Windows 7 x64
  • Previous by thread: Re: How to avoid repeated calculation in NDSolve ?
  • Next by thread: random line in a very large file