Serie di potenze in campo complesso

[Revisione: gennaio 2009. Realizzato con Mathematica Versione 7]
[StyleSheet: Creative/NaturalColor]

Riferimento : Matematica per l' Ingegneria dell' Informazione, par. 4.4

A - Serie logaritmica (Esempio 4.4-4)

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 porre z = i  e  tracciare la poligonale i cui vertici rappresentano una sequenza di somme parziali, mentre i singoli lati rappresentano i termini della serie:

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

Memoria permettendo, facciamo un'animazione:

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

immagini =Table[punti=N[ridotte[termlog[10+k]]/.z->Exp[((I k π)/90)]];
punti=Transpose[{Re[punti],Im[punti]}];
spezzata=ListPlot[punti,Joined->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,60,1}];

ListAnimate[immagini,  AnimationRunning->False, ControlPlacement-> Bottom]

Commento: il primo segmento della spezzata ha come estremi 0 e z.

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

B - Serie esponenziale

Clear["Global`*"]

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

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

punti=N[ridotte[termexp[12]]/.z->I π];punti=Transpose[{Re[punti],Im[punti]}];ListPlot[punti,Joined->True,AspectRatio->Automatic,PlotRange->All,PlotStyle->{RGBColor[1,0,0],Thickness[0.01]}]

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

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

C - Serie geometrica

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

Un esempio con  z = 1 + i :

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

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

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

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

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

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

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

ListAnimate[immagini,  AnimationRunning->False, ControlPlacement-> Bottom]

Commento : il secondo segmento della spezzata ha come estremi 1 e 1 + z.