Omotopia tra circuiti nel piano complesso

Clear["Global`*"]

La funzione seguente trasforma una lista di numeri complessi in un lista di punti del piano (coppie ordinate di numeri reali):

punti[l_] := Transpose[{Re[l],  Im[l]}]

Procuriamoci una parametrizzazione di un circuito contenuto nel semipiano Im(z) ≥ 0, ottenuto concatenando una semicirconferenza di raggio R, il segmento [ -R, -r], una semicirconferenza di raggio r, ed il segmento [ r, R].

z1[R_, r_, t_]  :=  
      Which[0 ≤ t ≤ 3,  
        R*Exp[I π t/3],  
3 < t < 
          4, -R (4 - t) - 
          r (t - 3), 
4 ≤ t ≤ 5, 
        r*Exp[I π (5 - t)], 
5 < 
          t ≤ 6,  r (6 - t)  +  R (t - 5)]

Commento: la parametrizzazione è stata fatta in modo che il "tempo" impiegato a descrivere la semicirconferenza di raggio R sia uguale a quello impiegato per descrivere i tre restanti tratti del circuito.

circ1  =  Table[z1[2, 0.3, t],  {t, 0, 6, 0.05}];

pt1  =  punti[%];

gr1  =  
        ListPlot[pt1,  PlotJoined -> True,  
          AspectRatio -> 
            Automatic, 
PlotRange -> {{-3, 
                3}, {-1, 
                3}}, 
Prolog -> {Thickness[0.008], 
              RGBColor[1, 0, 0]}];

Secondo circuito: circonferenza centrata sul punto (Subscript[z, 0]):

z2[z0_, r_, t_] :=  z0 + r Exp[I π t/3]

circ2  =  
        Table[z2[I, 0.3, t],  {t, 0, 6, 0.05}];

Commento: la parametrizzazione e la successiva discretizzazione sono state fatte in modo da avere lo stesso numero di punti del circuito precedente.

pt2  =  punti[%];

gr2  =  
        ListPlot[pt2,  PlotJoined -> True,  
          AspectRatio -> Automatic, 
          PlotRange -> {{-3, 3}, {-1, 
                3}}, 
Prolog -> {Thickness[0.008], 
              RGBColor[1, 0, 0]}];

Show[gr1, gr2];

Sia A l'insieme ottenuto togliendo dal piano complesso i punti 0 e i ; vogliamo mostrare che il segmento congiungente i punti (Subscript[z, 1])[t] e (Subscript[z, 2])[t] è contenuto in A per ogni t.

Do[
Show[{gr1,  
          gr2, 
Graphics[{{RGBColor[0, 0, 1], 
                Thickness[
                  0.008], 
Line[{pt1[[
                      k]],  
                    pt2[[
                      k]]}]}, 
{RGBColor[
                  0, 0, 1], 
                PointSize[
                  0.02],  
{Point[
                    pt1[[k]]], 
                  Point[pt2[[
                      k]]] }}}]}, 
AspectRatio -> Automatic, 
        PlotRange -> {{-3, 3}, {-1, 
              3}}, 
ImageSize -> {400,  
            250}],  
{k, 1, 
        Length[pt1]}
]

Visualizzazione dell'omotopia lineare tra i due circuiti considerati:

Do[
ListPlot[
          punti[ (1 - λ)*circ1  +  λ*circ2],  
          PlotJoined -> True,  AspectRatio -> Automatic, 
          PlotRange -> {{-3, 3}, {-1, 
                3}}, 
ImageSize -> {400,  
              250}, 
Prolog -> {Thickness[0.008], 
              RGBColor[1, 0, 0]}], 
{λ, 0, 1, 
          0.01}
];