Re: How to substitute a function?
- To: mathgroup at smc.vnet.net
- Subject: [mg94133] Re: How to substitute a function?
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Fri, 5 Dec 2008 05:34:23 -0500 (EST)
- Organization: University of Bergen
- References: <gh8hmh$r2t$1@smc.vnet.net>
Alexei Boulbitch wrote: > Dear crew, > > I faced a difficulty when trying to substitute a newly represented > function into an expression containing a sum of differential and > algebraic terms. The difficulty is namely, that Mathematica 6 > substitutes the new representation into the algebraic, but not into the > differential part. For example: > > (* This is the definition of a simple example of such an expression *) > > > expr = \!\( > \*SubscriptBox[\(\[PartialD]\), \(x\)]\ \(y[x]\)\) + a*y[x]^2; > > (* Here I substitute a new representation of the function into the \ > above expression *) > (* What I expect to get is the following expression: -Exp[-x]*f[x] + \ > Exp[-x]*f´[x] + a \[ExponentialE]^(-2 x) f[x]^2 *) > (* Instead I get something else. Please have a look and check: *) > expr /. y[x] -> Exp[-x]*f[x] > > > > (* This is another approach I could think of with even worse result. *) > \ > > (* Note however, that within this approach a miracle happened: once \ > it *) > (* worked as expected (i.e. the substitution of both terms has been \ > performed as desired, but only once *) > > FullSimplify[expr, y[x] == Exp[-x]*f[x]] > > > Do you have idea of how to instruct Mathematica to make the substitution > everywhere? > Hei, The solution is to substitute a new function for y, and not y[x] (which, as you found out, does not affect the different expression y'[x]) expr /. y -> Function[x, Exp[-x] f[x]] Or, with a slightly scarier notation, expr /. y -> (Exp[-#] f[#] &) -- Szabolcs