• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Matlab
  • 标签:

资源简介

西电电磁场大作业,画电荷构成的电场线和等势面。应该是可以应对了。

资源截图

代码片段和文件信息

%16020130038 李璞初 使用MATLAB画电力线与等势面大作业 2018.4.7
clearnumber=input(‘请输点电荷数:‘);
charge=zeros(number3);%创建元数组以存放电荷信息
for i=1:number
    s1=[‘请输入第‘num2str(i)‘个电荷的电荷量(μC):‘];
    s2=[‘请输入第‘num2str(i)‘个电荷的x坐标:‘];
    s3=[‘请输入第‘num2str(i)‘个电荷的y坐标:‘];
    charge(i1)=input(s1)*1e-6;
    charge(i2)=input(s2);
    charge(i3)=input(s3);
end     %得到所需的所有电荷的信息
k=9*10^9;%这里取介质为无限大真空,化简得到
x=-2.2:0.01:2.2;
y=-2.2:0.01:2.2;
[XY]=meshgrid(xy); %建立X_Y坐标系
U=zeros(441441);
clf
for j=1:number
    U=U+k*charge(j1)./sqrt((X-charge(j2)).^2+(Y-charge(j3)).^2);
end%得到电势的值 注意U与XY的对应关系是U[YX]
for a=1:number
for b=-10:10 %横坐标变化
for c=-10:10 %纵坐标变化
if abs(U(charge(a3)*100+221+bcharge(a2)*100+221+c))>abs(U(charge(a3)*100+221+5charge(a2)*100+221+5))
U(charge(a3)*100+221+bcharge(a2)*100+221+c)=U(charge(a3)*100+221+5charge(a2)*100+221+5);
end
end
end
end%由于在电荷处,电势理论上无穷大,所以通过设置阈值对其进行“削顶”
contour(XYU100)%画等势面
hold on
%画电场线与画等势线完全没有关系╮(╯_╰)╭
total=sum(abs(charge(:1)));%电荷模值求和
px=[];py=[];%存放电场线数据
for a=1:number%画由第a个电荷发出的电场线
    for b=1:round(abs(charge(a1))/total*50*number)%电场线数目由归一化电荷决定
        j=round(abs(charge(a1))/total*50*number);i=1;
        px(abi)=charge(a2)+0.05*2^(1/2)*cos(b*2*pi/j);
        py(abi)=charge(a3)+0.05*2^(1/2)*sin(b*2*pi/j);%分配电场线起点坐标
        t=1;
        while t==1
            Ex=0;Ey=0;
            for c=1:number
                Rx=px(abi)-charge(c2);
                Ry=py(abi)-charge(c3);
                E=k*charge(c1)./(Rx^2+Ry^2);
      

评论

共有 条评论

相关资源