Questa domanda è definita ambiguamente. Le linee di campo elettrico (come indicato nel titolo) non sono le stesse delle linee equipotenziali. Nello specifico il campo elettrico E seguito da linee di campo elettrico è correlato al campo di potenziale elettrico V di E = -∇V .
Nel caso del potenziale elettrico, questo è un campo scalare quindi le linee equipotenziali sono semplicemente contorni del valore costante di quel campo. contourf
è quindi una scelta ideale per visualizzarlo.
Come per le linee di campo, quiver
ti mostrerà la dimensione e la direzione dei vettori nel campo elettrico, ma non le linee di campo. Il modo più semplice per visualizzarli in un piano 2D è streamslice
.
Calcolare e tracciare questi campi in MATLAB è solo un caso di impostare le equazioni fisiche in una forma vettorizzata e calcolarle per una griglia di coordinate attraverso cui MATLAB può disegnare contorni e linee di campo.
Utilizzando l'equazione per il potenziale elettrico nella forma utilizzata dal link di rwong nei commenti sopra:
k=8.987E9;%Coulomb'sconstantp=[1,1;2,2;3,3];Q=[1;2;3];[X,Y]=meshgrid(0:0.05:4);%CreateagridofcoordinateswhereVistobecalculatedV=zeros(size(X));%Startwithzeroelectricpotentialforii=1:numel(Q)%SuperposetheelectricpotentialfieldofeachchargeV=V+k*Q(ii)./hypot(p(ii,1)-X,p(ii,2)-Y);endhContour=contourf(X,Y,V);hColorbar=colorbar;ylabel(hColorbar,'Electricpotential(V)')
Laspaziaturadeicontornipredefinitasaràimballatamoltostrettamenteattornoallecarichepuntiformeacausadellesingolaritànelpotenzialeelettricochecreano.SedisponidiStrumentidellestatistiche,puoimigliorarlorapidamentetrovandoilivellidicontornoconun'areaugualetraloroutilizzandoquantile
:
hContour.LevelList=[0quantile(V(:),10)];
Ilcampoelettricoèpiùsemplicederivaredalcampopotenzialeesistentepiuttostochedall'equazionedeivettorigrezzi:
[Ex,Ey]=-gradient(V);validColumns=all(isfinite(Ex)&isfinite(Ey));%IgnorecolumnswhereEcontainsinfinitevaluesduetothepointchargessincestreamslicecan'thandlethemholdonhLines=streamslice(X(:,validColumns),Y(:,validColumns),Ex(:,validColumns),Ey(:,validColumns));set(hLines,'Color','r');