Group Abstract Group Abstract

Message Boards Message Boards

0
|
4.9K Views
|
3 Replies
|
0 Total Likes
View groups...
Share
Share this post:

Plot the image of another plot under a given function?

POSTED BY: Paul Fishback
3 Replies

For a map from the plane to itself that may be described by a complex-valued function of a complex variable, the problem has already been solved by David Parks in his Presentations add-on. Specifically, the ComplexMap function there does what you ask. For example:

<< Presentations`

(* objects in domain to be transformed *)
objects = {
  (* two points *)
  Red, PointSize[Large], ComplexPoint /@ {1 + I, 1 - I},
 (* parameterized vertical segment *)
  ComplexCurve[(1 - s) (1 + I) + s (1 - I), {s, 0, 1}, PlotStyle -> Directive[Dashed, Green]],
 (* parameterized parabolic arc *)
  ComplexCurve[t^2 + t I, {t, -1, 1}, PlotStyle -> Directive[Thick, Blue]]
};

(* draw the objects in the complex domain *)
dom = Draw2D[{objects}, Axes -> True, PlotRange -> 1.5, ImageSize -> Scaled[0.4]];

(* the transformation *)
f[z_] := z^2

(* draw the images of the objects under f *)
img = Draw2D[{objects // ComplexMap[f]}, Axes -> True, PlotRange -> 2.25, ImageSize -> Scaled[0.4]];

(* display both domain and codomain *)
Row[{dom, Spacer[10], img}]

enter image description here

Naturally, the "dirty work" is done behind-the-scenes by ComplexMap, defined in the add-on. By careful analysis of the definition of ComplexMap, you could create an analog directly in terms of Cartesian coordinates that would work for any transformation of the form {u,v} = f[{x, y}].

POSTED BY: Murray Eisenberg

I don't think this is at all an easy question to answer for an arbitrary function f from the plane to the plane. One approach is to sample suitably closely-spaced points on each of the various geometric objects, compute the images of these points, then re-join them with suitable curves.

To appreciate the difficulty, contemplate how you would determine, say, the image of Line[{{1,0}, {1,1}}] under the function given by f[{x_,y_}] := {x^2 - y^2, 2 x y}. [In terms of complex numbers, f is just squaring, of course.]

POSTED BY: Murray Eisenberg

Mathematica Graphics are a vector graphics language. And most vector graphics are made up of polygons and stuff like that. Arbitrary transforms don't map polygons to polygons.

You can do this with an Image though... to some extent: http://reference.wolfram.com/language/ref/ImageTransformation.html

POSTED BY: Sean Clarke
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard