Animazioni in campo complesso: ancora la funzione esponenziale

Clear["Global`*"]

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

Commento: la funzione precedente prende una lista di numeri complessi e la trasforma in una lista di punti del piano.

assi1  =  {Line[{{-3, 0}, {3, 
                0}}], 
Line[{{1, -0.05}, {1, 
                0.05}}], 
Line[{{-0.05, 1}, {0.05, 
                1}}], 
 
          Line[{{0, -3}, {0, 3}}]};

assi2  =  {Line[{{5. , 0}, {15, 
                0}}], 
Line[{{8, -0.05}, {8, 
                0.05}}], 
Line[{{6.95, 1}, {7.05, 1}}],  
          Line[{{7, -4.5}, {7, 4.5}}]};

Funzione esponenziale (a cui viene aggiunta una traslazione):

f[z_] :=  Exp[z] + 7

Famiglia di circonferenze di centro l'origine:

circ =  
        Table[Table[
            r Exp[I θ], {θ, 0, 
              2  π, π/36}], 
 {r,  .5, 2. , 
            0.5}];

Famiglia trasformata mediante la funzione f :

funcirc  =  Map[f,  circ];

Le due liste precedenti trasformate in liste di punti nel piano:

ptcirc  =  Map[punti, circ];

ptfuncirc  =  Map[punti,  funcirc];

A questo punto abbiamo due liste di punti nel piano.

Prima animazione: voglimo vedere come la funzione esponenziale trasforma circonferenze di centro l'origine.

Do[nm1circ = Take[ptcirc, n - 1]; 
nm1fcirc = 
        Take[ptfuncirc, n - 1]; 
ncirc = 
        ptcirc[[
          n]]; 
fncirc = 
        ptfuncirc[[
          n]]; 
Do[
        Show[Graphics[{assi1, 
              assi2, {RGBColor[1, 0, 0], Line /@ nm1circ, Line /@ nm1fcirc, 
                Line[Take[ncirc, j]], 
                Line[Take[fncirc, j]]}, {RGBColor[1, 0, 0], PointSize[0.015], 
                Point[ncirc[[j]]], 
                Point[fncirc[[j]]]}}], 
          ImageSize -> {450, 300}, AspectRatio -> Automatic, 
          PlotRange -> {{-3, 16.5}, {-5, 5}}], {j, 1, 
          Length[ncirc]}], {n, 1, 4}]

Il grafico finale:

gr1  =  
{assi1, 
          assi2, 
{RGBColor[1, 0, 0], Line /@ ptcirc, 
            Line /@ ptfuncirc}};

Show[Graphics[%],  AspectRatio -> Automatic];

Andiamo a guardare  le immagini delle semicirconferenze di sinistra. Triplichiamo la scala della funzione esponenziale (a destra):

f[z_] :=  3 Exp[z] + 7

Ridefiniamo gli assi:

assi1bis  =  {Line[{{-4, 0}, {3, 
                0}}], 
Line[{{1, -0.05}, {1, 
                0.05}}], 
Line[{{-0.05, 1}, {0.05, 
                1}}], 
 
          Line[{{0, -4}, {0, 4}}]};

Tracciamo due segmenti a distanza π dall'asse reale:

segmenti  =  {Line[{{-4, π}, {3, π}}], 
Line[{{-4, -π}, {3, -π}}]};

assi2bis  =  {Line[{{4. , 0}, {10, 0}}], 
 
          Line[{{7, -4. }, {7, 4. }}]};

circUnitaria =  Circle[{7, 0}, 3];

semiCirc =  
        Table[Table[
            r Exp[I θ], {θ, π/2, 
              3  π/2, π/36}], 
 {r,  .5, 3.5, 
            0.5}];

Famiglia trasformata mediante la funzione f :

funsemiCirc  =  Map[f,  semiCirc];

Le due liste precedenti trasformate in liste di punti nel piano:

ptsemiCirc  =  Map[punti, semiCirc];

ptfunsemiCirc  =  Map[punti,  funsemiCirc];

Seconda animazione:

Do[nm1circ = Take[ptsemiCirc, n - 1]; 
nm1fcirc = 
        Take[ptfunsemiCirc, n - 1]; 
ncirc = 
        ptsemiCirc[[
          n]]; 
fncirc = 
        ptfunsemiCirc[[
          n]]; 
Do[
        Show[Graphics[{assi1bis, 
              assi2bis, 
{RGBColor[0, 0, 1], 
                segmenti}, {RGBColor[0, 0, 1], 
                circUnitaria},  {RGBColor[1, 0, 0], Line /@ nm1circ, 
                Line /@ nm1fcirc, Line[Take[ncirc, j]], 
                Line[Take[fncirc, j]]}, {RGBColor[1, 0, 0], PointSize[0.015], 
                Point[ncirc[[j]]], 
                Point[fncirc[[j]]]}}], 
          ImageSize -> {450, 300}, AspectRatio -> Automatic, 
          PlotRange -> {{-4, 12}, {-5, 5}}], {j, 1, 
          Length[ncirc]}], {n, 1, 7}]

Commento: nel grafico a sinistra i due segmenti blu appartengono alle rette di equazione y = π, y = –π.