MathGroup Archive 2011

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

Search the Archive

Re: Replace in an elegant way

  • To: mathgroup at smc.vnet.net
  • Subject: [mg122879] Re: Replace in an elegant way
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Mon, 14 Nov 2011 07:06:35 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201111130943.EAA29993@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

It may be inelegant, but so is the thing you want to do.

expr/.{theta[m]->tm,theta'[m]->tmp,m->dd}/.{tm->theta[m],tmp->(theta^\[Prime])[m]}//Timing

{0.000133,(1+theta[m])^2/(1-dd)-lambda (theta[m]+(1/(1-dd))(dd+lambda-dd  
lambda) (1+theta[m]) (1+theta[m]-lambda theta[m])+(dd  
(theta^\[Prime])[m])/lambda)}

Bobby

On Sun, 13 Nov 2011 03:43:13 -0600, 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[1][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).
>


-- 
DrMajorBob at yahoo.com



  • Prev by Date: Re: Replace in an elegant way
  • Next by Date: Re: Replace in an elegant way
  • Previous by thread: Re: Replace in an elegant way
  • Next by thread: Re: Replace in an elegant way