文档介绍:1 / 12
电磁场与电磁波
实 验 报 告
实验名称:
有限差分法解电场边值问题
实验日期:
2012年12月8日
姓 名:
文强
学 号:
100240333
s(hy,hx);
%%
%%
%设置边界条件
v1(hy,:)=ones(1,hx)*100;
v1(1,:)=zeros(1,hx);
v1(1:hy,1)=0;
v1(1:hy,hx)=0;
%%
%%
%计算松弛因子
t1=sin(pi/(100));
w=2/(1+t1);
%%
%%
%初始化
6 / 12
v2=v1;
maxt=1;
t=0;
k=0;
%%
%%
while(maxt>1e-10)
k=k+1; %计算迭代次数
maxt=0;
for i=2:hy-1
for j=2:hx-1
v2(i,j)=v1(i,j)+(v1(i,j+1)+v1(i+1,j)+v2(i-1,j)+v2(i,j-1)-4*v1(i,j))*w/4;%拉普拉斯方程差分形式
t=abs(v2(i,j)-v1(i,j));
if(t>maxt) maxt=t;end
end
end
v1=v2;
end
%%
%%
%可视化显示
subplot(1,2,1),mesh(v2); %画电势的三维曲面图
axis([0 ,101,0,101,0,100]);
title('超松弛迭代法各点电位');
subplot(1,2,2),contour(v2,20); %画等势线
title('等位线');
%%
%%
disp(',迭代次数');
k
disp('松弛因子');
w
%%
最优松弛因子获得的实验结果:
7 / 12
图4,最优松弛因子得到的结果
,迭代次数
k =
491
松弛因子
w =
迭代法最优松弛因子确实定
实验程序:
clear all;clc;close all;
count=zeros(1,19);
8 / 12
tem=1;
hx=101;
hy=101;
m=100;
n=100;
v1=ones(hy,hx);
%%
%%
%设置边界条件
v1(hy,:)=ones(1,hx)*100;
v1(1,:)=zeros(1,hx);
v1(1:hy,1)=0;
v1(1:hy,hx)=0;
%初始化
v2=v1;
maxt=1;
t=0;
k=0;
%%
%%
while(maxt>1e-10)
k=k+1; %计算迭代次数
maxt=0;
for i=2:hy-1
for j=2:hx-1
v2(i,j)=v1(i,j)+(v1(i,j+1)+v1(i+1,j)+v2(i-1,j)+v2(i,j-1)-4*v1(i,j))*w/4;%拉普拉斯方程差分形式
t=abs(v2(i,j)-v1(i,j));
if(t>maxt) maxt=t;end
end
end
v1=v2;
end
%%
count(tem)=k;
tem=tem+1;
end
w=::;
figure(1);
plot(w,count);
axis(,,400,2700);
xlabel('松弛因子');
ylabel('迭代次数');
9 / 12
title('最优松弛因子的选取');
实验结果:
图5,松弛因子的取值
图6,相应的迭代次数
迭代次数随松弛因子的变化曲线:
图7,迭代次数随松弛因子变化曲线
实验结果分析:
通过松弛因子的迭代选取,,相应的迭