欢迎来到天天文库
浏览记录
ID:59286435
大小:18.50 KB
页数:1页
时间:2020-09-06
《高斯-赛德尔迭代法matlab程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、disp('划分为M*M个正方形')M=5%每行的方格数,改变M可以方便地改变剖分的点数u=zeros(M+1);%得到一个(M+1)*(M+1)的矩阵disp('对每个剖分点赋初值,因为迭代次数很高,所以如何赋初值并不重要,故采用对列线性赋值。')disp('对边界内的点赋初值并使用边界条件对边界赋值:')forj=1:M-1fori=1:M-1u(i+1,j+1)=100*sin(pi/M*j)/M*(M-i);%对矩阵(即每个刨分点)赋初值endendfori=1:M+1u(1,i)=100*sin(pi*(i-1)/M);%
2、使用边界条件对边界赋值u(1,M+1)=0;endutic%获取运行时间的起点disp('迭代次数为N')N=6%迭代次数,改变N可以方便地改变迭代次数disp('n为当前迭代次数,u为当前值,结果如下:')forn=1:Nforp=2:Mi=M+2-p;forj=2:Mu(i,j)=0.25*(u(i,j-1)+u(i+1,j)+u(i-1,j)+u(i,j+1));%赛德尔迭代法endendn%输出nu%输出uenddisp('所用的时间:')t=toc%获取算法运行需要的时间[x,y]=meshgrid(0:1/M:1,0:1
3、/M:1);z=u(1,:);fora=2:M+1z=[z;u(a,:)];%获取最终迭代的结果,幅值给z,z的值代表该点的点位值endmesh(x,y,z)%绘制三维视图以便清楚地显示结果mesh(x,y,z,'FaceColor','white','EdgeColor','black')%绘制三维视图以便清楚地显示结果
此文档下载收益归作者所有