I asked earlier about transforming a set of curves and getting an accurate plot when a curve goes to infinity:
Getting an Accurate Transformed Region
Here is an example where a transformed region should be the upper half plane, but instead Mathematica gives a strange result:
$\cal R$ = Region bounded by the circles $$x^2+ \left(y-\frac{1}{2}\right)^2=\frac{1}{4} \, \textit{ and } \, x^2+\left(y-\frac{1}{4}\right)^2=\frac{1}{16}$$
p[\[Alpha]_] := x^2 + (y - \[Alpha])^2 - \[Alpha]^2; Q = (p[1/2] < 0) && (p[1/4] > 0); \[ScriptCapitalR] = ImplicitRegion[Q, {x, y}]; a = Region[\[ScriptCapitalR], GridLines -> Automatic, Frame -> True]; aa = Region[RegionBoundary[\[ScriptCapitalR]], BaseStyle -> RGBColor[.25, .25, .75]]; \[Tau] = Show[a, aa]; $f(z) = \frac{1}{z},$ and $\cal E$ is the transformed region $\cal R$ under the mapping $f(z)$.
f = Evaluate[{x/(x^2 + y^2), -(y/(x^2 + y^2))}] &; \[ScriptCapitalE] = TransformedRegion[\[ScriptCapitalR], f]; b = Region[\[ScriptCapitalE], BaseStyle -> RGBColor[1, 0, 0, .7], Frame -> True]; bb = Region[RegionBoundary[\[ScriptCapitalE]], BaseStyle -> RGBColor[.75, 0, 0], FrameTicks -> {{None, Range[-4, 0]}, {Automatic, Automatic} }]; \[Upsilon] = Show[b, bb, PlotRange -> {{-3, 3}, {-3, 0}}, AspectRatio -> 1/2]; $g(z) = \exp \pi z, $ and $\cal M$ is the transformed region $\cal E$ under the mapping $g(z)$.
g = Evaluate[{E^(\[Pi] x) Cos[\[Pi] y], E^(\[Pi] x) Sin[\[Pi] y]}] &; \[ScriptCapitalM] = TransformedRegion[\[ScriptCapitalE], g]; c = Region[\[ScriptCapitalM], BaseStyle -> RGBColor[.75, .75, .75], Frame -> True]; cc = Region[RegionBoundary[\[ScriptCapitalM]], BaseStyle -> RGBColor[.75, .1, .1], FrameTicks -> {{None, Range[-4, 0]}, {Automatic, Automatic} }]; \[Phi] = Show[c, cc]; Plot $\cal R$, the region bounded by circles, $\cal E$, the image of $\cal R$ under the transformation $f(z)=\frac{1}{z}$, an infinite strip and $\cal M$, the image of $\cal R$ under the transformation $g(f(z))=\exp \left( \pi / z \right)$: should be the upper-half plane!
Here is Mathematica's rendition. Any ideas how to get a more accurate picture for $\cal M $?
GraphicsRow[{\[Tau], \[Upsilon], \[Phi]}] Another related question: Why is there some of the light blue color missing at the bottom of region $\cal R$? Any way to improve this?
UPDATE
@Ulrich, thank you for the suggestions you made in the comment. Some questions:
I. As you've suggested, I've changed Region[] to RegionPlot[]. Now, the first figure is fully filled in, but the figure is incomplete where the circles are tangent. Not sure why.
p[\[Alpha]_] := x^2 + (y - \[Alpha])^2 - \[Alpha]^2; Q = (p[1/2] <= 0) && (p[1/4] >= 0); \[ScriptCapitalR] = ImplicitRegion[Q, {x, y}]; a = RegionPlot[\[ScriptCapitalR], PlotStyle -> RGBColor[.25, .75, .25, .5]]; aa = RegionPlot[RegionBoundary[\[ScriptCapitalR]], BoundaryStyle -> Directive[Thickness[.01], RGBColor[0, .5, 0]]]; \[Tau] = Show[a, aa] II. I think that I understand why we need to use the syntax you suggest. We want to explictly define the functions in terms of two variables, rather than in terms of one input, a two-vector (a list of two elements)? Do we need to use Evaluate[]? I've used it because it appeared in one of the examples in the documentation, but is it necessary?
The function definition syntax works well on the first transformation:
f = Function[{x, y}, Evaluate[{x/(x^2 + y^2), -(y/(x^2 + y^2))}]]; \[ScriptCapitalE] = TransformedRegion[\[ScriptCapitalR], f]; b = RegionPlot[\[ScriptCapitalE], PlotStyle -> RGBColor[.85, .85, .85, .7]]; bb = RegionPlot[RegionBoundary[\[ScriptCapitalE]], BoundaryStyle -> RGBColor[.5, .5, .5], FrameTicks -> {{None, Range[-4, 0]}, {Automatic, Automatic} }]; \[Upsilon] = Show[b, bb, PlotRange -> {{-3, 3}, {-3, 0}}, AspectRatio -> 1/2] Plotting the two figures together in a graphics row causes the "inner meshes" to be visible. Why is this?
GraphicsRow[{\[Tau], \[Upsilon]}] These lines seem okay:
g = Function[{x, y}, Evaluate[{E^(\[Pi] x) Cos[\[Pi] y], E^(\[Pi] x) Sin[\[Pi] y]}]]; \[ScriptCapitalM] = TransformedRegion[\[ScriptCapitalE], g]; Both of these lines cause errors:
c = RegionPlot[\[ScriptCapitalM], PlotStyle -> RGBColor[.15, .15, .85, .7]]; cc = RegionPlot[RegionBoundary[\[ScriptCapitalM]], BoundaryStyle -> RGBColor[0, 0, .75], FrameTicks -> {{None, Range[-4, 0]}, {Automatic, Automatic} }]; UPDATE #2 (In response to comments)
In Mathematica 11.2.0.0, this code:
\[ScriptCapitalM] = TransformedRegion[\[ScriptCapitalE], g]; c = RegionPlot[\[ScriptCapitalM], PlotStyle -> RGBColor[.15, .15, .85, .7]]; cc = RegionPlot[RegionBoundary[\[ScriptCapitalM]], BoundaryStyle -> Directive[Thickness[.01], RGBColor[0, 0, .5]], FrameTicks -> {{None, Range[-4, 0]}, {Automatic, Automatic} }]; runs, but produces a huge triangle in the lower half plane.
This same code crashes in Mathematica 12.0.0.0.
The result is the same, with and without the use of Evaluate[].
In both versions of Mathematica (On Mac OS Version 10.14), the first transformation produces a strip, without that extra piece above it.
UPDATE #3
The method BoundaryMeshRegion[] works, but only if the region is first computed via TransformedRegion[].
Needs@"NDSolve`FEM`"; Show[BoundaryMeshRegion@ ToBoundaryMesh[\[ScriptCapitalE], MaxCellMeasure -> {"Length" -> 0.02}], Frame -> True, PlotRange -> {{-3, 3}, {-3, 0}}, AspectRatio -> 1/2] 











Show[b,bb]shows two regions (see my answer) $\endgroup$f=..withoutEvaluatealso works! $\endgroup$