Linee di campo nel piano xy (con cariche sullo stesso piano)

n=2;  (* numero di cariche *)

q={1,-.5};    (* valori delle cariche *)
ri={{-1,0},{1,0}};      (* posizioni delle cariche *)


bias=20;  (* modificare per cambiare le dimensioni delle frecce *)
xmax=3;     (* massima coordinata visualizzabile *)
raggiomax=.1;      (* massima dimensione delle cariche visualizzate *)

erre=Table[{x-ri[[i,1]],y-ri[[i,2]]},{i,1,n}];   (* vettore delle distanze dalle cariche*)
modulo2=Table[erre[[i,1]]^2+erre[[i,2]]^2,{i,1,n}];   (* vettore dei versori *)

campo=Sum[q[[i]]*erre[[i]]/modulo2[[i]]^(3/2),{i,1,n}];   (* campo complessivo *)
potenziale=Sum[q[[i]]/Sqrt[modulo2[[i]]],{i,1,n}];   (* potenziale complessivo *)
vers=campo/Norm[campo];   (* versore del campo complessivo *)

mod=Log[Norm[campo]]+bias;  (* (logaritmo del) modulo del campo complessivo, per la visualizzazione *)
lcampo=mod*vers;  (* campo da visualizzare *)

qmax=Max[Abs[q]];   (*  valore massimo del modulo delle cariche  *)
colore=Table[If[q[[i]]≥0,Green,Red],{i,1,n}];   (*  colore delle cariche da visualizzare (Green=+, Red=-) *)
size=Table[Abs[q[[i]]/qmax*raggiomax/xmax],{i,1,n}];

frecce=VectorPlot[lcampo,{x,-xmax,xmax},{y,-xmax,xmax}];  (*  disegna le frecce del campo *)

linee=StreamPlot[campo,{x,-xmax,xmax},{y,-xmax,xmax},StreamPoints->Fine];    (*  disegna le linee del campo *)

potLiv= ContourPlot[potenziale,{x,-xmax,xmax},{y,-xmax,xmax},Contours->30,ContourShading->None,PlotRange->{-3,3}]; (*  disegna le curve di livello del potenziale *)

pot3D=Plot3D[potenziale,{x,-xmax,xmax},{y,-xmax,xmax},PlotRange->{-5,5}]; (*  disegna il potenziale in 3D *)

(*  disegna le cariche: *)
cariche=Table[
Graphics[
{
{PointSize[size[[i]]],colore[[i]],Point[ri[[i]]]}
,{Black,Circle[ri[[i]],Scaled[size[[i]]/2]]}
}
],{i,1,n}
];

(*  mostra tutti i grafici: *)
Print["Vettori campo elettrico:"]
Show[{frecce,cariche},ImageSize->400]
Print["Linee di campo:"]
Show[{linee,cariche},ImageSize->400]
Print["Potenziale:"]
Show[pot3D]
Print["Linee di campo e curve di livello del potenziale:"]
Show[{potLiv,linee,cariche},ImageSize->400]