Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Mathematica - (Very) Simple Question

  1. Aug 13, 2009 #1
    I'm doing my first steps in Mathematica and I've wanted to do something simple like assigning a variable to the output and then use it. Something like this:

    Code (Text):
    In:Vp = vprx == kprx2*X1;
    In:dX1 = kp X0 + X1 (-cat kcatl - kgpx gpx - kprx2 prx2);
    In:rX1 = Solve[dX1 == 0, X1];
    Out:{{X1 -> (kp X0)/(catalase kcatl + gpx kgpx + kprx2 prx2)}}
    then i want to Sbustitute X1 in the expression Vp, with the value of the output of rX1.I'm using the function Replace but this doesn't do what I want. The output is:
    Code (Text):

    In:Replace[Vp, X1 -> rX1]
    Out:vprx == kprx2 X1
    when it should be
    Code (Text):
    Out:vprx==(kprx2kp X0)/(catalase kcatl + gpx kgpx + kprx2 prx2)
    Thanks a lot for all the help!
  2. jcsd
  3. Aug 13, 2009 #2
    There are two problems, one is simple, one is more complicated.

    First, use "ReplaceAll" instead of "Replace", it uses a deeper algorithm that will properly do what you want it to do.

    Second, look at the result of "rX1". It is NOT just a number that can be plugged in. It is a list that has one component with a variable, "X1", being transformed to a larger expression.

    Try using:

    Code (Text):
    ReplaceAll[Vp, rX1[[1]] ]
    This takes the first component of the rX1 list and uses it in the ReplaceAll function.
  4. Aug 14, 2009 #3
    Awsome! It works just as I wanted! Thanks a lot!
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook