Interval is a proper way for your task, but sometimes it is not the way to go.
There are functions which can return neither their ranges nor domains, e.g. function yielding k-th non-trivial zero of the Riemman zeta function. E.g. ZetaZero[1000]//N yields 0.5 + 1419.42 I, while N[ ZetaZero @ Interval[{1000, 10000}]]
yields ZetaZero[Interval[{1000, 10000}]], however since it is weakly monotonic on the critical line with respect to the imaginary part (i.e. 0.5 + t I, where t is a real number, )

N[ ZetaZero @ {1000, 10000}]

{0.5 + 49.7738 I, 0.5 + 236.524 I}

It is known that ( purely mathematically speaking) the domain of ZetaZero are integer numbers, but there are certain limitations of its implementation in Mathematica, e.g. there is no way to find its domain, only a kind of "divide and conquer" approach, e.g.

ZetaZero[10^7] // N
ZetaZero[10^7 + 1] // N

0.5 + 4.99238*10^6 I
ZetaZero::largp: Argument 10000001 in ZetaZero[10000001] is too large for this
implementation. >>
ZetaZero[10000001]

There is a second argument in ZetaZero[k, t] representing the k-th zero with imaginary part greater than t. Neither this works with Interval, though it is Listable with respect to the second argument :

What do I need to know for understanding your answer? Your answer is amazing but I read it almost as if I were reading Japanese (I don't know japanese). Notice that this is not a critic, I just need references for understanding it.
–
VoyskaJul 7 '12 at 21:55

1

@GustavoBandeira My intentions were 1.to explain certain limitations of using Interval. 2. to show limitations of built-in functions, especially with respect to their domains. 3. to demonstrate that sometimes representing of mathematical objects is far from high-fidelity. There are 4 links where you can read more on these issues. I think that careful reading of the M documentation concerning the functions which I mentioned would be very helpful. If there are other doubts you should specify them more strictly. I hope I could help more and possibly edit and update my answer.
–
ArtesJul 7 '12 at 22:11

1

@GustavoBandeira I think that MathWorld is an interesting repository of knowledge. If you have more detailed questions, try to ask them and I'll add a bit more extended clarifications.
–
ArtesJul 7 '12 at 22:21

Haha. You also solved another doubt I had: "How to make piecewise defined functions on Mathematica" I just didn't ask it because I could solve using a manual method but here it is. Thanks.
–
VoyskaJul 7 '12 at 21:50

In mathematics, a set can be write in two(or more) form: one is {3x | x in [0,1]}, the other {x | P(x)}, where P is called a propositional function or predicate. Since Mathematica have a great power of dealing with quantifiers, once you can write a set in the second form above, you can do plenty of things and tricks that you would have thought to have nothing to do with programming before.
As we may write down the range of a function f in math this way: {f(x) | x in Dom f}, however, f(x) is not a "predicate", it's more closely to be thought as an object, so putting it into Mathematica programming might be difficult. What's lucky, we can write it using another way! That is{ y | ∃x such that y=f(x)}, where ∃x such that y=f(x) is a propositional function of x. From now, you can use the build-in functions Reduce to get the all possible values of y.

For example, if you have a function y = x^3 + x + 6 in math,
and you want to find its range(w.r.t whole domain of f) or image of some proper set of its domain, try to use the the quantifier-family, ie Reduce, ForAll and Exists.

This example is also very cool. Given a fixed point, take (3,4) for example and, an arbitrary curve defined by an equation, take x^3 + y^3 + 2 x^2 y - 7 x y^2 + 8 x - 7 y + 46 == 0. How to get the distance between the point and the graph?

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.