ITPub博客

首页 > 应用开发 > IT综合 > Matlab在基础物理学中的应用举例(三)(等量同号点电荷的电场线的绘制)

Matlab在基础物理学中的应用举例(三)(等量同号点电荷的电场线的绘制)

原创 IT综合 作者:deebug 时间:2014-12-22 21:44:40 0 删除 编辑

再次奉献Matlab在基础物理学中的应用(三)(电磁学部分)

等量同号点电荷的电场线的绘制其微分方程的函数文件:

function ydot=dcx1fun(t,y,flag,p1,p2)    %p1,p2是参量,表示电量
ydot=[p1*(y(1)+2)/(sqrt((y(1)+2).^2+y(2).^2).^3)+p2*(y(1)-2)/(sqrt((y(1)-2).^2+y(2).^2).^3);    %dx/dt=Ex  
p1*y(2)/(sqrt((y(1)+2).^2+y(2).^2).^3)+ p2*y(2)/(sqrt((y(1)-2).^2+y(2).^2).^3)];                    %dy/dt=Ey

这里的 y是微分方程的解矢量, 它包含两个分量, y(1)表示 x,y(2)表示 y,解出 y 后就得到了 x 与 y 的关系,即可依此绘制出电场线.
写好函数文件后,命名为 dcx1fun.m 存在当前路径下,然后开始编写解微分方程的主程序 dcx1.m:

p1=10; p2=10;     %点电荷所带电量
axis([-5,5,-5,5]); %设定坐标轴范围 -5≤x≤5,-5≤y≤5
hold on      %图形控制,不可擦除模式
plot(2,0,'*r'); plot(-2,0,'*r')    %绘制两源电荷
a=(pi/24):pi/12:(2*pi-pi/24);  %圆周上电场线起点所对应的角度
b=0.1*cos(a);c=0.1*sin(a); %电场线起点所对应的相对坐标
b1=-2+b;b2=2+b; %把起点圆周的圆心放置在源电荷处 
b0=[b1 b2];  c0=[c c];    %初始条件,所有电场线的起点
%的横、纵坐标构成了矢量b0 和c0
for i=1:48     %循环求解48 次微分方程
 [t,y]=ode45('dcx1fun',[0:0.05:40],[b0(i),c0(i)],[ ],p1,p2); %调用ode45求解,对应一个初条件(起点) ,求解出一条电场线
 plot(y(:,1),y(:,2),'b')          %绘制出此条电场线
end          %结束循环,共绘制出48条电场线

 

在确定初始条件时,因为源点处是奇点,这点上微分方程的分母为 0,所以电场线不能从源点处绘制,而应当从它附近的邻域圆上绘制.  我们将电场线的起点定在以源点为圆心,0.1 为半径的圆周上.、

运行的结果:


图片

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29517383/viewspace-1376585/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-03-03

  • 博文量
    51
  • 访问量
    69452