       Re: Replace in an elegant way

• To: mathgroup at smc.vnet.net
• Subject: [mg122873] Re: Replace in an elegant way
• From: Bob Hanlon <hanlonr357 at gmail.com>
• Date: Sun, 13 Nov 2011 07:58:00 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <201111130943.EAA29993@smc.vnet.net>

```You don't need to use multiple RepaceRepeated just ReplaceAll; and
replacing dd with m does not require multiple special handling cases

expr = ((1 + theta[m])^2)/(1 - m) - lambda*
((theta[m] + ((lambda + m - lambda*m)*(1 + theta[m])*
(1 + theta[m] - lambda*theta[m]))/(1 - m) +
(m*Derivative[theta][m])/lambda));

expr2 = expr //.
Derivative[y_][theta][m] -> Derivative[y][theta][dd] //.
theta[m] -> theta[dd] /. m -> qq //.
Derivative[y_][theta][dd] -> Derivative[y][theta][m] //.
theta[dd] -> theta[m];

Streamlined

expr3 = expr /.
{Derivative[y_][theta][m] -> Derivative[y][theta][dd],
theta[m] -> theta[dd], m -> qq} /. dd -> m;

More compactly

expr4 = expr /.
{theta'[m] -> theta'[dd], theta[m] -> theta[dd],
m -> qq} /.dd -> m;

expr2 == expr3 == expr4

True

Bob Hanlon

On Sun, Nov 13, 2011 at 4:43 AM, Mirko <dashiell at web.de> wrote:
> Hi all,
> I have following equation:
>
> ((1 + theta[m])^2)/(1 - m) - lambda*((theta[m] + ((lambda + m - lambda*m)*(1 + theta[m])*(1 + theta[m] - lambda*theta[m]))/(1 - m) +
>     (m*Derivative[theta][m])/lambda))
>
> I want to replace all m that are not an argument of theta[m] or the Derivative. However, if I use
> /., it replaces all m. If I use Replace[expr,m->qq] it doesn't replace anything. (qq is the one I want to replace with). If I specify any level, it doesn't change anything, unless I use -1, but then I replace everything.
>
> Do you know how I solve this problem?
> Right now I use:
> //. Derivative[y_][theta][m] -> Derivative[y][theta][dd] //.
>    theta[m] -> theta[dd] /. m -> qq //.
>  Derivative[y_][theta][dd] -> Derivative[y][theta][m] //.
>  theta[dd] -> theta[m]
>
> but this is not elegant at all (and takes slightly longer).
>

```

• Prev by Date: Re: how to plot new data points to pre-existing figure
• Next by Date: Re: Questions about IMS 2010 in China?
• Previous by thread: Re: Replace in an elegant way
• Next by thread: Re: Replace in an elegant way