资源简介
西电电磁场大作业,画电荷构成的电场线和等势面。应该是可以应对了。
代码片段和文件信息
%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);
- 上一篇:装箱问题遗传算法求解
- 下一篇:FCM的MATLAB实现
评论
共有 条评论