2011-12-15 69 views
2

我想知道如何繪製一個具有2個電荷Q和-Q及其總E的圖形,對於特定點(例如(4,5)),具有輪廓f。 我的M文件實際上掃描區域(從-3x 3倍),並計算E中的每一個現場,將其存儲在一個表中,但在此之後,我不知道如何使用contourf畫吧..如何用contourf模擬和繪製Matlab中的電場?

syms i 
syms j 
syms d 
d=input('dwse thn timi tou d,ths apostashs') 
j=0 
i=0 
for j=-d:d/1000:d 

    j=j+1 

for i=-d:d/1000:d 

    i=i+1 
    z=(i,j) 

end, end 

回答

3

在距離r處由下式給出:

E = q /(4 * pi * e0 * r。^ 2);

如果你有幾個費用,你可以使用疊加原則,並添加每次充電的貢獻。

剩下要做的唯一事情就是創建一個網格來計算電場。爲此,您可以使用Matlab的函數meshgrid

在Matlab一個簡單的例子是:

k=1/4/pi/8.854e-12; 
d=2; 
q=[-1 1]; 
x=[-d/2 d/2]; 
y=[0 0]; 

dx=0.01; 
X=(-d:dx:d); 
Y=(-d:dx:d); 
[X Y]=meshgrid(X,Y); 

E=zeros(size(X)); 

for i=1:numel(q) 
    r=sqrt((X-x(i)).^2+(Y-y(i)).^2); 
    E=E+k*q(i)./r.^2; 
end 

E(isinf(E))=NaN; 

figure; 
contourf(X,Y,E); 
axis image; 

希望它可以幫助你。您可以閱讀contourf的文檔以根據需要調整繪圖。

1

您需要在您的問題中提供更多信息:您遇到什麼問題?你有什麼嘗試?

然而,假設z(i,j)是你在2D網格計算電場,根據庫侖定律,由一個單一的,離散的電荷q產生的電場只是叫你for循環後contourf作爲

contourf(z) 
+0

我實際上不知道如何用循環填充數組.. 有2個電荷-Q(-d/2,0)和Q(d/2,0),它們的距離是d。 我必須在x(-2d,2d)y(-2d,2d)中的每個點上做一個Etotal結果的數組,然後使用contourf ..我迷路了:/ – alextsil 2011-12-15 19:02:04

+1

@zwoskasere那麼你需要一些想法你正在解決/使用的方程。這聽起來像是作業 - 是嗎? – Chris 2011-12-15 19:17:31