作业帮 > 综合 > 作业

用MATLAB计算点电荷的电场的问题

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/30 08:35:39
用MATLAB计算点电荷的电场的问题
这个程序有什么问题,为什么老是提示“Missing variable or function.”
clear all
ep0=8.85*e-12;
c0=1/(4*pi*ep0);
e=1.6e-10;
h=0.018;
x=-0.5:h:0.5;
y=-0.5:h:0.5;
str{1}='两同号等量点电荷';
str{2}='两同号不等量点电荷';
[X,Y]=meshgrid(x,y);
q=[e;1.9*e];
for i=1:2
V=c0*e./sqrt((X+0.2).^2+Y.^2)+c0.*q(i)./sqrt((X-0.2).^2+Y.^2);
[Ex,Ey]=gradient(-V,h);
figure(i)
counter(X(:,:,1),Y(:,:,1),V,...[20,-20,19,-19,18,-18,17,-17,16,-16,15,-15,14,-14,13,-13,12,-12,11,-11,10,-10],'r');
axis([-0.38,0.38],[-0.28,0.28])
hold on
phi=0:pi/17:2*9i;
sx1=0.2+0.01*cos(phi);
sy1=0.01*sin(phi);
streamline(X(:,:,1),Y(:,:,1),Ex,Ey,sx1,sy1);
hold on
sx2=-0.2+0.01*cos(phi);
sy2=0.01*sin(phi);
streamline(X(:,:,1),Y(:,:,1),Ex,Ey,sx2,sy2);
title(str(i))
text(-0.215,0,'+','fontsize',20);
text(0.185,0,'+','fontsize',20);
end
文件名这个问题改了以后,又出现一个问题:Line:17 Column:36
Incomplete or misformed expression or statement.
用MATLAB计算点电荷的电场的问题
这是不是在集成环境下的,在集成环境下运行要求保存的文件名不能有中文
现在又在电脑上试了一下,原来不只是中文的问题.
你的第二行ep0=8.85*e-12错了,应该没有*号,ep0=8.85e-12才对,这就是变量e报错的原因.
另外你后面又定义了一个变量e,e=1.6e-10,这里两个e的意思不一样,会不会搞混了啊,我建议把变量e换一个名字表示.
还有axis([-0.38,0.38],[-0.28,0.28])也错了,应该是axis([-0.38,0.38,-0.28,0.28]).
最后只剩下一个问题了,就是Line:17 Column:36
Incomplete or misformed expression or statement.
问题肯定是counter(X(:,:,1),Y(:,:,1),V,...[20,-20,19,-19,18,-18,17,-17,16,-16,15,-15,14,-14,13,-13,12,-12,11,-11,10,-10],'r');
把这行删了就可以正常运行,我对counter函数不太了解,反正肯定是这行出错了,你再查查counter函数的用法,我也不知道你用counter想干什么,也不好修改.我把你的程序修改之后是这样的(变量e换成了ex):
clear all
ep0=8.85e-12;
c0=1/(4*pi*ep0);
ex=1.6e-10;
h=0.018;
x=-0.5:h:0.5;
y=-0.5:h:0.5;
str{1}='两同号等量点电荷';
str{2}='两同号不等量点电荷';
[X,Y]=meshgrid(x,y);
q=[ex;1.9*ex];
for i=1:2
V=c0*ex./sqrt((X+0.2).^2+Y.^2)+c0.*q(i)./sqrt((X-0.2).^2+Y.^2);
[Ex,Ey]=gradient(-V,h);
figure(i)
%counter(X(:,:,1),Y(:,:,1),V,...[20,-20,19,-19,18,-18,17,-17,16,-16,15,-15,14,-14,13,-13,12,-12,11,-11,10,-10],'r'); 这行有问题
axis([-0.38,0.38,-0.28,0.28])
hold on
phi=0:pi/17:2*9i;
sx1=0.2+0.01*cos(phi);
sy1=0.01*sin(phi);
streamline(X(:,:,1),Y(:,:,1),Ex,Ey,sx1,sy1);
hold on
sx2=-0.2+0.01*cos(phi);
sy2=0.01*sin(phi);
streamline(X(:,:,1),Y(:,:,1),Ex,Ey,sx2,sy2);
title(str(i))
text(-0.215,0,'+','fontsize',20);
text(0.185,0,'+','fontsize',20);
end