How to transform a set of lines to a set of circles using möbius transformation?

17 views (last 30 days)
I should write a code to transform a set of lines to a set of circles and here the pictures I have.I know I should use möbius transformation and I searched a lot but I don't understand what I should do.could anyone help?

Accepted Answer

William Rose
William Rose on 12 Jan 2023
Edited: William Rose on 12 Jan 2023
[edit: fix typos in my text; code is unchanged]
Your image does not include a scale or (more importantly) an indication of where the origin is. The lines in fig 1 and the circles in figure 2 represent sets of complex numbers. You can think of the lines as very large circles that pass thorugh the point at infinity. The Mobius transformation maps these "circles" in figure 1 to the circles in figure 2.
The general Mobius transform is
.
Notice that it appears that all three circles in fig.2 would intersect at a common point, if the circles were complete. Let's assume this common point is the origin. This point must map to infinity - the place where all three lines in fig.1 would "intersect". The general equation for f(z) will map z=0 (the origin) to the point at infinity, if a=d=0. Then we have
which simplifies to , up to a scaling factor. Let's try this:
z1=-ones(1,101)+i*[-5:.1:5];
z2=-2*ones(1,101)+i*[-5:.1:5];
z3=[-5:.1:5]+i*ones(1,101);
plot(z1,'-r.'); hold on; plot(z2,'-g.'); plot(z3,'-b.'); axis equal
Now transform the points:
fz1=1./z1; fz2=1./z2; fz3=1./z3;
Plot transformed points:
figure;
plot(fz1,'-r.'); hold on; plot(fz2,'-g.'); plot(fz3,'-b.');
axis equal
This looks like your figure 2. Note that the transform we used was f(z)=1/z, which corresponds to the Mobius transform, with a=d=0, and b=c=1.

More Answers (0)

Categories

Find more on Specifying Target for Graphics Output in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!