Serie di potenze in campo complesso

A - Serie logaritmica

Clear["Global`*"]

Costruiamo un certo numero di termini della serie, e poi le ridotte (=somme parziali)

termlog[n_] := Table[(-1)^(k+1) z^k/k, {k, 1, n}];

ridotte[termini_List] := FoldList[Plus, 0, termini]

A questo punto possiamo tracciare la poligonale i cui vertici rappresentano una sequenza di somme parziali, mentre i singoli lati rappresentano i termini della serie:

punti = ridotte[termlog[20]]/.z -> I//N;
	punti = Transpose[{Re[punti], Im[punti]}]; 
	ListPlot[punti, PlotJoined -> True,
 	AspectRatio -> Automatic,
 	PlotRange -> All,
 	Prolog -> {RGBColor[1,0,0], Thickness[0.01]}];

Memoria permettendo, facciamo un'animazione:

cerchio  =  
        Graphics[{RGBColor[0, 0, 1],  
            Circle[{0, 0},  1, {0, π}]}];

Do[punti =  
        ridotte[termlog[10 + Floor[k/2]]] /. 
            z -> Exp[I k π/90] // 
          N; 
punti = 
        Transpose[{Re[punti], Im[punti]}]; 
spezzata  =  
        ListPlot[punti, PlotJoined -> True, 
          PlotStyle -> {RGBColor[1, 0, 0],  Thickness[0.005]},  
          DisplayFunction -> 
            Identity]; 
DisplayFunction -> $DisplayFunction; 
Show[{cerchio, 
          spezzata}, 
AspectRatio -> Automatic,  
        Frame  ->  True, ImageSize -> {450, 300},  
        PlotRange ->  {{-3, 2}, {0, 3}}], 
{k, 0, 
        90}
]

Do[
	punti = ridotte[termlog[10+Floor[k/2]]]/.z -> Exp[k I Pi/90]//N;
	punti = Transpose[{Re[punti], Im[punti]}]; 
	spezzata = ListPlot[punti, 
	PlotJoined -> True,
	PlotStyle -> {RGBColor[1,0,0], Thickness[0.005]},
	DisplayFunction -> Identity
 	];
 	DisplayFunction -> $DisplayFunction;
 	Show[{cerchio, spezzata}, 
 	AspectRatio -> Automatic,
 	PlotRange -> {{-2.5,1.5},{-0.5,3.5}},
 	Frame -> True, Axes -> True,
 	ImageSize -> {400,400}
 	],
{k,0,90}]

Per cambiare il tipo di serie di potenze basta cambiare la definizione della lista dei termini. Vedi esempio seguente.

B - Serie esponenziale

Clear["Global`*"]

termexp[n_] := Table[z^k/k!, {k, 0, n}];

ridotte[termini_List] := FoldList[Plus, 0, termini]

punti = ridotte[termexp[8]]/.z->I Pi//N;
	punti = Transpose[{Re[punti], Im[punti]}]; 
	ListPlot[punti, PlotJoined->True,
 	AspectRatio -> Automatic,
 	PlotRange -> All,
 	Prolog ->{RGBColor[1,0,0], Thickness[0.01]}];

Il grafico precedente illustra la famosa relazione di Eulero Exp[i π] = -1. Altro esempio:

punti = ridotte[termexp[9]]/.z->(1+I)//N;
	punti = Transpose[{Re[punti], Im[punti]}]; 
	ListPlot[punti, PlotJoined->True,
 	AspectRatio->Automatic,
 	PlotRange->All,
 	Prolog->{RGBColor[1,0,0], Thickness[0.01]}];

Serie geometrica

termgeo[n_] := Table[z^k, {k, 0, n}];

punti = ridotte[termgeo[8]]/.z ->(1+I)//N;
	punti = Transpose[{Re[punti], Im[punti]}]; 
	ListPlot[punti, PlotJoined->True,
 	AspectRatio->Automatic,
 	PlotRange->All,
 	Prolog->{RGBColor[1,0,0], Thickness[0.01]}];

Cambiamo la ragione, rendendola minore di 1 in valore assoluto:

punti = ridotte[termgeo[12]]/.z->(1+I)/2//N;
	punti = Transpose[{Re[punti], Im[punti]}]; 
	ListPlot[punti, PlotJoined->True,
 	AspectRatio->Automatic,
 	PlotRange->All,
 	Prolog->{RGBColor[1,0,0], Thickness[0.01]}];

Altro esempio, con la ragione di poco inferiore a 1 in valore assoluto:

punti = ridotte[termgeo[24]]/.z->(1+I)/1.5//N;
	punti = Transpose[{Re[punti], Im[punti]}]; 
	ListPlot[punti, PlotJoined->True,
 	AspectRatio->Automatic,
 	PlotRange->All,
 	Prolog->{RGBColor[1,0,0], Thickness[0.01]}];

Facciamo un'animazione, facendo muovere la ragione lungo la bisettrice del primo quadrante, a partire da (1+i)/4 a (1+i)/1.5.

Do[punti = 
        ridotte[termgeo[24]] /. z -> (1 + I)/k // 
          N; 
punti = 
            Transpose[{Re[punti], Im[punti]}];
ListPlot[
          punti, PlotJoined -> True, AspectRatio -> Automatic, 
          PlotRange -> {{-1, 2}, {-0.5, 
                2.5}}, 
ImageSize -> {400, 400}, 
          Prolog -> {RGBColor[1, 0, 0], 
              Thickness[0.01]}], 
{k, 2.5, 
        1.5, -0.05}
]