利用Matlab求解Laplace方程

相关链接:http://wenku.baidu.com/view/f17e57e8856a561252d36f5e.html

问题描述:

求解泊松方程 
                -Δu=1     
求解区域为单位圆盘,边界条件为在圆盘边界上u=0 

下面求它的数值解,编写程序如下:

%(1)问题定义 
g='circleg';        %单位圆 
b='circleb1';       %边界上为零条件 
c=1;a=0;f=1; 
%(2)产生初始的三角形网格 
[p,e,t]=initmesh(g);  
%(3)迭代直至得到误差允许范围内的合格解 
error=[]; err=1; 
while err > 0.01, 
[p,e,t]=refinemesh(g,p,e,t); 
u=assempde(b,p,e,t,c,a,f);  %求得数值解 
exact=(1-p(1,:).^2-p(2,:).^2)/4; 
err=norm(u-exact',inf); 
error=[error err]; 
end 
%结果显示 
subplot(2,2,1),pdemesh(p,e,t); 
subplot(2,2,2),pdesurf(p,t,u) 
subplot(2,2,3),pdesurf(p,t,u-exact')

显示结果如下:

 

 

 

 

 

 

posted @ 2012-12-26 16:11  liang_l  阅读(7301)  评论(0编辑  收藏  举报