File:Complex log and exp mapping.png

Original file(1,500 × 500 pixels, file size: 39 KB, MIME type: image/png)

Summary

Description
English: Complex log and exp mapping.

Complex log mapping maps radii to horizontal lines and circles to vertical lines. The principal branch , viewed as a mapping from to the horizontal strip defined by , has the following properties, which are direct consequences of the formula in terms of polar form:

  • Circles[1] in the z-plane centered at 0 are mapped to vertical segments in the w-plane connecting to , where is the real log of the radius of the circle.
  • Rays emanating from 0 in the z-plane are mapped to horizontal lines in the w-plane.
Each circle and ray in the z-plane as above meet at a right angle. Their images under Log are a vertical segment and a horizontal line (respectively) in the w-plane, and these too meet at a right angle. This is an illustration of the conformal property of Log.
Date
Source Own work
Author Soul windsurfer
Other versions
Source code
InfoField
Created using Maxima.
/*

 b batch file for maxima
 save as e.mac

maxima
batch("e.mac");


There are 2 complex planes :
* w-plane 
* z-plane 


z is a pont of z-planes
w is a point of w-plane

1. draw curves on z plane 
2. draw images of z-curves  under h  on w plane               
3. draw images of w-curves under hi on z plane 


http://math.stackexchange.com/questions/114733/mapping-half-plane-to-unit-disk

Adam Majewski
 
*/

kill(all);
remvalue(all);
display2d:false$







/* definitions of  functions  */


/*  map from z to w : w=h(z) */
h(z):=if z=0.0 then -1000 else rectform(float(log(z))); /* map from z plane to w plane : w = h(z) */


hi(w):= rectform(float(exp(w))); /* map from w plane to z plane : z = g(w) */


/* converts complex number into list for draw package  */
draw_format(z):= [float(realpart(z)),float(imagpart(z))];


GiveCirclePoint(t) := rectform(float(R*%e^(%i*t*2*%pi))); /* gives point of unit circle for angle t in turns */
GiveZRayPoint(R) := rectform(float(R*%e^(%i*tRay*2*%pi))); /* gives point of external ray for radius R and angle tRay in turns */ 



compile(all);


R_max: 5;
R_min: 0;
dR: R_max - R_min;
NumberOfRays: 10;
iMax: 100; /* number of points to draw */





print (" ============== compute ===============  ")$

/* curve is a list of points joned by lines */

/* f_0 plane = z-plane */
circle_angles: makelist(i/(10*iMax), i, 0, 10*iMax-1)$ /* more angles = more points */


/* Unit circle */
R: 1;
UnitCirclePointsZ: map(GiveCirclePoint, circle_angles)$
/* circle with radius 1/2 */
R: 0.5;
HalfUnitCirclePointsZ: map(GiveCirclePoint, circle_angles)$



/* External circles */
circle_radii: makelist(R_min+i, i, 1, dR);
ZCirclesPoints: [];
for R in circle_radii do 
	ZCirclesPoints: append(ZCirclesPoints, map(GiveCirclePoint, circle_angles))$

/* External W rays */
ray_radii: makelist(R_min+dR*i/iMax, i, 0, iMax)$
ray_angles: makelist(i/NumberOfRays, i, 0, NumberOfRays-1)$
ZRaysPoints: [];
for tRay in ray_angles do 
	ZRaysPoints: append(ZRaysPoints, map(GiveZRayPoint, ray_radii))$









 
 /* --------- map from z to w plane using h  -------------------------------*/

 /* w-curves = images of z-circles */
 WCirclesPoints: map (h, ZCirclesPoints)$
 UnitCirclePointsW : map(h,UnitCirclePointsZ)$
 HalfUnitCirclePointsW : map (h, HalfUnitCirclePointsZ)$
 /* w-curves = images of z-rays */
   WRaysPoints: map (h, ZRaysPoints )$

  /* --------- map from w to z plane using hi  -------------------------------*/
  
  /* z-curves = images of w-curves */
 ZiCirclesPoints: map (hi, WCirclesPoints)$
 UnitCirclePointsZi : map(hi,UnitCirclePointsW)$
 HalfUnitCirclePointsZi : map (hi, HalfUnitCirclePointsW)$
 /* w-curves = images of z-rays */
   ZiRaysPoints: map (hi, WRaysPoints )$
  
  

 

print ("--------------  convert lists of complex points to draw format lists ----------- ")$

 /* z plane */
 UnitCirclePointsZ : map (draw_format, UnitCirclePointsZ)$
 HalfUnitCirclePointsZ : map ( draw_format, HalfUnitCirclePointsZ)$
 ZCirclesPoints:map(draw_format,ZCirclesPoints)$ 
 ZRaysPoints:map(draw_format,ZRaysPoints)$ 
 
 /* w plane */
 WCirclesPoints:map(draw_format, WCirclesPoints)$ 
 WRaysPoints:map(draw_format, WRaysPoints)$ 
 UnitCirclePointsW : map (draw_format, UnitCirclePointsW)$
 HalfUnitCirclePointsW : map(draw_format, HalfUnitCirclePointsW)$

 /* z plane inverted from w */
 ZiCirclesPoints:map(draw_format, ZiCirclesPoints)$ 
 ZiRaysPoints:map(draw_format, ZiRaysPoints)$ 
 UnitCirclePointsZi : map (draw_format, UnitCirclePointsZi)$
 HalfUnitCirclePointsZi : map(draw_format, HalfUnitCirclePointsZi)$
 

print (" ------------------  draw ------------------------------------------------------ ")$

path:""$ /* pwd  */
 FileName:"j"$ /* without extension which is the terminal name */

 load(draw); /* Mario Rodríguez Riotorto   http://www.telefonica.net/web2/biomates/maxima/gpdraw/index.html */
 draw(
  terminal  = 'png,
  file_name = concat(path,FileName),
  columns  = 3,
  dimensions=[1500,500], /*  x = y*columns  */
  
  gr2d(title = " z plane ",
  /*
   yrange = [-3,3],
   xrange = [-3,3],
   */
   points_joined =true,
   grid = false,
   
   point_size    = 0.2,
   point_type = filled_circle,
   color 	= green,
   points(ZCirclesPoints),
   color         = red,
   points(UnitCirclePointsZ),
   color = yellow,
   points(HalfUnitCirclePointsZ),
   color = blue,
   points(ZRaysPoints)
   
  ),

  gr2d(
   title = " w plane: w=log(z)",
   yrange = [-2.0,2.0],
   xrange = [-2.0,2.0],
   grid = false,
   xaxis       = false,
   
   points_joined =true,

   color         = red,
   point_size    = 0.2,
   point_type = filled_circle,
   color 	= green,
   points(WCirclesPoints),
   color         = red,
   points(UnitCirclePointsW),
   color = yellow,
   points(HalfUnitCirclePointsW),
   
   color = blue,
   points(WRaysPoints)),
   
   
   
   gr2d(title = "z plane: z = exp(w) ",
  /*
   yrange = [-3,3],
   xrange = [-3,3],
   */
   points_joined =true,
   grid = false,
   
   point_size    = 0.2,
   point_type = filled_circle,
   color 	= green,
   points(ZiCirclesPoints),
   color         = red,
   points(UnitCirclePointsZi),
   color = yellow,
   points(HalfUnitCirclePointsZi),
   color = blue,
   points(ZiRaysPoints))
   
   
   
   
 );

Licensing

I, the copyright holder of this work, hereby publish it under the following license:
w:en:Creative Commons
attribution share alike
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
  1. Strictly speaking, the point on each circle on the negative real axis should be discarded, or the principal value should be used there.

Captions

Complex log and exp mapping

Items portrayed in this file

depicts

22 September 2023

image/png

db4e96497b5bf4363d2b6fa9837d228be22dccc5

39,542 byte

500 pixel

1,500 pixel

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current06:31, 22 September 2023Thumbnail for version as of 06:31, 22 September 20231,500 × 500 (39 KB)Soul windsurferUploaded own work with UploadWizard

The following page uses this file:

Metadata