偶极子程序for Matlab.doc
偶极子程序偶极子程序 for Matlabby 霍家伟 0519037前言: MATLAB 名字是由 MATrix 和 LABoratory 两个词的前三个字母组合而成的。它是 MathWorks 公司于 1982 年推出的一套高性能的数值计算和可视化数学软件,被誉为“巨人 肩上的工具”。 由于使用 Matlab 编程运算与人进行科学计算的思路和表达方式完全一致, 所以不像学习其它高级语言-如 Basic、Fortran 和 C 等那样难于掌握,用 Matlab 编写程序 犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法。鉴于 MATLAB 的强大作图功能,笔者在此以此作为描述电偶极子和磁偶极子的势场和 场强的工具,希望以此给出抽象的偶极子场以形象的描述。图形有待改善,不妥之处,多 多包涵。一、电偶极子 具体程序: 用 Matlab 的 MFile 编辑:clear;clf; a=0;b=1.5;x=-10:0.6:10;y=x; X,Y=meshgrid(x,y); % 设置坐标网点 rp=sqrt(X-a).2+(Y-b).2); rm=sqrt(X+a).2+(Y+b).2);V=(1./rp-1./rm); % 计算每一点的电势 Ex,Ey=gradient(-V); % 计算每一点的场强 AE=sqrt(Ex.2+Ey.2);Ex=Ex./AE;Ey=Ey./AE; % 场强归一化,使箭头等 长 cv=linspace(min(min(V),max(max(V),26); % 产生 26 个电位值 contourf(X,Y,V,cv,'k-') % 用黑实线画填色等位线 图 title('fontname 隶书 fontsize22 电偶极子的场 '),hold on quiver(X,Y,Ex,Ey,0.8) % 第五输入宗量 0.8 使场强箭头长短适中。plot(a,b,'wo',a,b,'w+') % 用白线画正电荷位置 plot(-a,-b,'wo',-a,-b,'w-') % 用白线画负电荷位置 xlabel('X');ylabel('Y'),hold off保存后改名为 electron.m, 在主界面上输入 electron 直接运行即可。具体思想: 首先设置正负电荷的位置,然后计算电势 V=(1/rp-1/rm),rp 为到正电荷的位置,rm 为到 负电荷的位置(用自然单位,忽略所有常系数) ,接着用Ex,Ey=gradient(-V)计算电场,最后输出图象。具体图象:由于只取了一个截面,真正的空间分布有通过绕着竖直轴旋转才能得到。二、磁偶极子 具体程序: clear;clf;x=-18:1:18;y=-18:1:18; X,Y=meshgrid(x,y); % 设置坐标网点 rp=sqrt(X).2+(Y).2+1); a=rp.2-1.5*X.2; b=X.*Y; c=sqrt(X).2);A=c./rp3; %计算每一点 A 势的大小 Bx=3*(b./rp5); %计算每一点 B 场的水平分量 By=2*(a./rp5); %计算每一点 B 场的垂直分量 AE=sqrt(Bx.2+By.2);Bx=Bx./AE;By=By./AE; % 场强归一化,使箭头等长 cv=linspace(min(min(T),max(max(T),18);contourf(X,Y,A,cv,'k-') % 用黑实线画填色等位线图 title('fontname 隶书 fontsize22 磁偶极子的场 '),hold on quiver(X,Y,Bx,By,.8,'k-') % 第五输入宗量 0.8 使场强箭头长短适中。 xlabel('Y');ylabel('Z'),hold off具体思想: 方法与电偶极子的类似,只是旋度无法直接计算,A 势也只表示出其大小而已,大小为水 平分量的绝对值除以 r 的三次方;B 的大小方向由下式决定:5 22232 2223B4()B()2()myz Rrm RrRr AA水平2垂直23y1-2具体图象:计算中假定线圈水平放置,即磁偶极矩在中间竖直向上。 同样,由于只取了一个截面,真正的空间分布有通过绕着竖直轴旋转才能得到。小结:讨论: 从两幅图中我们的确可以看到两种偶极子的惊人相似性,就是两种场都形成漩涡状,不 断打圈。同时,我们也应该感谢数学软件给我们带来的便利,使我们能够从直观上认识复杂的某 些物理现象。 最后,希望本文能够借此机会引起大家对数学软件和程序设计的重视。 谢谢!