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

Mathematica - using rules to assign integration limits

  1. Feb 18, 2013 #1
    I'm trying to find the integration of my function f[x] from 1 to 4 using the indefinite integral and inserting limits using rules. I am not sure how to insert the limits with rules, have been playing about with the following

    Integrate[f[x], x] /. x -> {1 >= x <= 4}

    which ain't working,

    any help much appreciated
  2. jcsd
  3. Feb 18, 2013 #2


    User Avatar
    Staff Emeritus
    Science Advisor
    Homework Helper

    How about 1 <= x <= 4?
  4. Feb 18, 2013 #3
    Try using some undefined function q, instead of Integrate, that will do nothing at the moment, just to see what actually happens with your substition.

    In[1]:= q[f[x],x]/.x->{1≥x≤4}

    Out[1]= q[f[{1≥x&&x≤4}],{1≥x&&x≤4}]

    and that doesn't look anything like


    that I suspect you are trying to accomplish.

    So does that provide any additional information for your next attempt?
  5. Feb 18, 2013 #4
    Hello Bill,

    when I put that in , comes up with an error

    ln[106]= q[f[x], x] /. {1 <= x <= 4}
    ReplaceAll::reps: {1<=x<=4} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. >>
    out[107] = q[E^(-x/2) x^2 Sin[5 x], x] /. {1 <= x <= 4}

    Yes that's what I'm aiming for but I need to do it using rules. Is there another way of going about this?

  6. Feb 18, 2013 #5
    The reason for your latest error is you left out the "x->" that I had. Compare these:
    In[1]:= q[f[x],x]/.x->{1≥x≤4}
    ln[106]= q[f[x],x] /.{1<=x<=4}

    Now if you need to use replacement rules and you need to start with {1<=x<=4} then I would look at


    and see if you can think of a way to use rules to turn that into


    If you can use replacement rules to accomplish that then you will be half way to then using that result as another replacement to turn x into {x,1,4}.

    But you have two x that you have to worry about, one inside f[x] and one inside q[ ,x]. You only want to replace the second one, not the first one.

    You might look at this
    and pay particular attention to levelspec. Levels are not exactly obvious to a new user, but with the hint that you want to pay attention to that then you might be able to figure out how to have a replacment only change the particular x that you are wanting it to and leave the other x alone.

    So look at that FullForm result and see if you can solve that problem first. Then you can study levels.
  7. Feb 19, 2013 #6
    In[32] = q[f[x], x] /. x -> {1 <= x <= 4}
    out[30]=q[{E^(-(1/2) (1 <= x <= 4)) (1 <= x <= 4)^2 Sin[
    5 (1 <= x <= 4)]}, {1 <= x <= 4}]
    which just substitutes in what I want the limits of x to be

    In[1] = FullForm[{1 <= x <= 4}]
    Out[2] = List[LessEqual[1,x,4]]

    then I tried

    In[3]= FullForm[{x >= 1, x <= 4}]
    out[4] = List[GreaterEqual[x,1], LessEqual[x,4]]

    Afraid I can't see how to turn it into {x,1,4}, is quite beyond me atm!

  8. Feb 19, 2013 #7
    In[1]:= {1≤x≤4}/.{l_<=v_<=h_}->{v,l,h}

    Out[1]= {x,1,4}

    So that just used your literal input to make a replacement rule.
    Sometimes that won't work and sometimes it isn't obvious why.
    In those cases you can sometimes use the FullForm of your
    expression to make up your replacement rule.
    Last edited: Feb 19, 2013
  9. Feb 19, 2013 #8
    Ok it's odd but I think I see,
    Thanks very much for your help
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook