MathGroup Archive 1996

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

Search the Archive

Re: Backwards?

  • To: mathgroup at
  • Subject: [mg3496] Re: Backwards?
  • From: wagner at bullwinkle.cs.Colorado.EDU (Dave Wagner)
  • Date: Mon, 18 Mar 1996 00:57:13 -0500
  • Organization: University of Colorado, Boulder
  • Sender: owner-wri-mathgroup at

In article <4ibbb7$fep at>,
Artur KUO  <artur at> wrote:
>I would like to ask a question please.
>How can I let Mathematica do this:
>1) c[x,y]*a[x]*D[b[x],x]+c[x,y]*b[x]*D[a[x],x]+d[x,y]
>   --->c[x,y]*D[a[x]*b[x],x]+d[x,y]  ?
>   It's backward-chainrule.

This exact question came up in a Mathematica workshop that I
taught recently.  What you want to do is back-substitution.
Unfortunately, rule substitution using "/." is completely syntactic,
not algebraic.  (But see AlgebraicRules in the Mma book).  You can
get around this problem by a tricky use of Solve.  Here's a simple

(Local2) In[1]:=
    g[x_] := 1/(1+Exp[x])

(Local2) In[2]:=
(Local2) Out[2]=
	    x 2
      (1 + E )

We'd like to rewrite this expression in terms of g[x].  Here's how to do it:

(Local2) In[3]:=
    Solve[{dummy==%, gx == g[x]}, dummy, x]
(Local2) Out[3]=
    {{dummy -> (-1 + gx) gx}}

The second argument to Solve gives the name of the variable(s) to solve for,
and the little-used third argument gives the names of the variable(s) to
attempt to eliminate.

With a bit of fooling around you can probably apply this technique
to your own problem

>2) If I let u^2+v^2:=1, how cann I do:
>   a*u^2+a*v^2==a*1==a   ?

(Local2) In[4]:=
    Solve[{dummy==a*u^2 + a*v^2, u^2+v^2==1}, dummy]
(Local2) Out[4]=
    {{dummy -> a}}

		Dave Wagner
		Principia Consulting
		(303) 786-8371
		dbwagner at


  • Prev by Date: Re: Turning image in GraphicsArray 90 degrees
  • Next by Date: Re: Re: Re-evaluation of Conditional expressions, wrong explanation
  • Previous by thread: Backwards?
  • Next by thread: Re: Backwards?