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

再次奉献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博客 ” ,链接:http://blog.itpub.net/29517383/viewspace-1376585/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29517383/viewspace-1376585/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值