qianxq2005
2009-05-22, 21:58
如何对下面的程序中的箭头进行归一化,让箭头变成等长的。
Rh=2;
I0=10;
mu0=4*pi*1e-7;
C0=mu0/(4*pi)*I0;
x=linspace(-3,3,20);
y=x;
Nh=20;
theta0=linspace(0,2*pi,Nh+1);
theta1=theta0(1:Nh);
y1=Rh*cos(theta1);
z1=Rh*sin(theta1);
theta2=theta0(2:Nh+1);
y2=Rh*cos(theta2);
z2=Rh*sin(theta2);
dlx=0;
dly=y2-y1;
dlz=z2-z1;
xc=0;
yc=(y2+y1)/2;
zc=(z2+z1)/2;
NGx=20;NGy=20;
for i=1:NGy
for j=1:NGx
rx=x(j)-xc;
ry=y(i)-yc;
rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlXr_x=dly.*rz-dlz.*ry;
dlXr_y=dlz.*rx-dlx.*rz;
Bx(i,j)=sum(C0*dlXr_x./r3);
By(i,j)=sum(C0*dlXr_y./r3);
end
end
clf;quiver(x,y,Bx,By);
Rh=2;
I0=10;
mu0=4*pi*1e-7;
C0=mu0/(4*pi)*I0;
x=linspace(-3,3,20);
y=x;
Nh=20;
theta0=linspace(0,2*pi,Nh+1);
theta1=theta0(1:Nh);
y1=Rh*cos(theta1);
z1=Rh*sin(theta1);
theta2=theta0(2:Nh+1);
y2=Rh*cos(theta2);
z2=Rh*sin(theta2);
dlx=0;
dly=y2-y1;
dlz=z2-z1;
xc=0;
yc=(y2+y1)/2;
zc=(z2+z1)/2;
NGx=20;NGy=20;
for i=1:NGy
for j=1:NGx
rx=x(j)-xc;
ry=y(i)-yc;
rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlXr_x=dly.*rz-dlz.*ry;
dlXr_y=dlz.*rx-dlx.*rz;
Bx(i,j)=sum(C0*dlXr_x./r3);
By(i,j)=sum(C0*dlXr_y./r3);
end
end
clf;quiver(x,y,Bx,By);