Mathematica - using rules to assign integration limits

Click For Summary

Discussion Overview

The discussion revolves around using Mathematica to assign integration limits through replacement rules. Participants explore methods for substituting limits in integration expressions, particularly focusing on the syntax and functionality of replacement rules in Mathematica.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Debate/contested

Main Points Raised

  • One participant attempts to use the expression Integrate[f[x], x] /. x -> {1 >= x <= 4} but finds it ineffective.
  • Another participant suggests using 1 <= x <= 4 instead of the original syntax.
  • A different participant proposes testing with an undefined function q to observe the substitution results, noting that the output does not match their expectations.
  • One participant encounters an error when trying to use {1 <= x <= 4} as a replacement rule, indicating it is not a valid format for replacement.
  • Another participant points out the necessity of including x -> in the replacement rule and suggests examining the FullForm of the expression to create a valid replacement rule.
  • One participant successfully derives {x, 1, 4} from their input using a replacement rule, but notes that this method may not always work.
  • Another participant expresses confusion about transforming the inequalities into the desired format and seeks further clarification.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the best method to implement the integration limits using replacement rules, with multiple approaches and some uncertainty about their effectiveness.

Contextual Notes

Participants mention the importance of understanding the FullForm of expressions and the concept of levels in Mathematica, which may not be clear to new users. There are unresolved issues regarding the syntax and functionality of replacement rules.

izzy93
Messages
34
Reaction score
0
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
 
Physics news on Phys.org
How about 1 <= x <= 4?
 
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

q[f[x],{x,1,4}]

that I suspect you are trying to accomplish.

So does that provide any additional information for your next attempt?
 
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?

thanks
 
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

FullForm[{1<=x<=4}]

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

{x,1,4}

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
http://reference.wolfram.com/mathematica/ref/Replace.html
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.
 
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!

thanks
 
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:
Ok it's odd but I think I see,
Thanks very much for your help
 

Similar threads

  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K