|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 eecsseudl 于 2013-4-29 09:55 编辑
小的最近在用matlab畫電荷的電力線但是做出來為什麼r>1的地方沒有電力線呢?
能否請高手教導我程式要怎麼改
謝謝
我的程式如下:
clear %清除變量
E0=8.85e-12; %真空介電係數
C0=1/4/pi/E0;
q=1.6*10^(-19); %電荷電量
q=-2; %電量比
xm=2.5; %橫坐標範圍
ym=2; %縱坐標範圍
x=linspace(-xm,xm); %橫坐標向量
y=linspace(-ym,ym); %縱坐標向量
[X,Y]=meshgrid(x,y);
R1=sqrt((X+1).^2+Y.^2);
R2=sqrt((X-1).^2+Y.^2);
U=1./R1+q./R2;
u=1:0.5:4;
figure %創圖形
grid on %加網格
legend(num2str(u')) %圖例
hold on %保持圖像
plot([-xm;xm],[0;0]) %水平線
plot([0;0],[-ym;ym]) %垂直線
plot(-1,0,'o','MarkerSize',12) %畫第一電荷
plot(1,0,'o','MarkerSize',12) %畫第二電荷
[Ex,Ey]=gradient(-U,x(2)-x(1),y(2)-y(1));%梯度
dth1=20;
th1=(dth1:dth1:180-dth1)*pi/180;
r0=0.1; %電力線起點半徑
x1=r0*cos(th1)-1; %電力線起點橫坐標
y1=r0*sin(th1); %電力線起點縱坐標
streamline(X,Y,Ex,Ey,x1,y1) %畫左上電力線
streamline(X,-Y,Ex,-Ey,x1,-y1) %畫左下電力線
dth2=dth1/q;
th2=(180-dth2:-dth2:dth2)*pi/180;
x2=r0*cos(th2)+1;
y2=r0*sin(th2);
streamline(X,Y,Ex,Ey,x2,y2)
streamline(X,-Y,Ex,-Ey,x2,-y2)
axis equal tight %刻度相等
title('電力線分佈','fontsize',20)
xlabel('r','fontsize',16) %顯示橫坐標
ylabel('E(U)','fontsize',16) %顯示橫坐標
end
|
|