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