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

17 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

William Rose
William Rose il 12 Gen 2023
Modificato: William Rose il 12 Gen 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.

Più risposte (0)

Categorie

Scopri di più su Specifying Target for Graphics Output in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by