Let's construct an example. Two regions (a rectangle and a disk) are defined and verified as being regions.
r1 = Rectangle[{0, 0}, {40, 40}];
r2 = Disk[{50, 50}, 20];
RegionQ /@ {r1, r2}
Thirty random points are generated in each of the regions and the lists are joined together.
alist = Catenate[{
RandomPoint[r1, 30]
, RandomPoint[r2, 30]
}];
A few points are defined for checking the setup.
checkpts = {{20, 20}, {60, 10}, {60, 60}};
A resource function is used to generate a mesh while deleting triangles that are larger than the sensitivity specified.
m1 = ResourceFunction["NonConvexHullMesh"][alist, 22]
RegionMember[m1, #] & /@ checkpts
{True, False, True}
g1=Graphics[g1 = Graphics[{
FaceForm[Opacity[0 FaceForm[{Opacity[0.2]4], Red]Gray}]
, r1, r2
, Point@alist
, Opacity[1]
, Red, AbsolutePointSize[8]
, Point@checkpts
}]
Show[m1, g1]
It comes down to the definition of the region from your points using the right tools and only you can decide what works best for you. For the 3D-case, you can explore GradientFittedMesh
in v13, but I am running v12.2.0.
Regarding the second question, I don't know if a solution exists for generating an inequality from points, but the world of Mathematics is vast.
Original
There are many functions to work with regions. For your 1-D example:
alist = Range[0, 1, 0.1];
iv1 = Interval[{Min@alist, Max@alist}] // Chop;
RegionQ[iv1]
True
IntervalMemberQ[iv1, 0.23]
True
EDIT-I
reg = ImplicitRegion[0 < x < 1, x]
RegionQ[reg]
RegionMember[reg, {0.23}]
The Region
functions can work with more dimensions. You can specify named regions, polygons etc and do operations on those regions. But in your question, you have said that you don't have a formula for the analytically intractable region. Until you load a more concrete dataset, it will hard to offer a more concrete answer. For now, please explore Region*
functions a bit more.
You can modify/alter the question with an example that is more useful to you. I will either modify this answer, if I can participate or remove this one.