资源描述:
《有限元matlab教学内容.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、有限元matlab偏微分方程分类椭圆偏微分方程双曲线偏微分方程抛物线偏微分方程椭圆偏微分方程特例—拉普拉斯方程拉普拉斯方程是最简单的椭圆偏微分方程,以下以拉普拉斯方程为例,讲述椭圆偏微分方程的的数值解法。拉普拉斯方程形式如下:3椭圆偏微分方程边界条件椭圆偏微分方程边界条件有以下三种提法:其中第一种提法最为普遍,下面以第一种边界条件,拉普拉斯方程为例介绍椭圆偏微分方程常用的五点差分格式和工字型差分格式的解法。4五点差分格式五点差分格式最常用的格式,其形式如下:注意:这里的边界为矩形区域。5五点差分格式算法注意:要
2、保证x方向和y方向上的网格步长相等才能使用上面的公式。67五点差分格式在MATLAB中实现functionu=peEllip5(nx,minx,maxx,ny,miny,maxy)%x方向的节点数:nx%求解区间x的左端:minx%求解区间x的右端:maxx%y方向的节点数:ny%求解区间y的左端:miny%求解区间y的右端:maxy%求解区间上的数值解:uformatlong;hx=(maxx-minx)/(nx-1);hy=(maxy-miny)/(ny-1);u0=zeros(nx,ny);forj=1:
3、nyu0(j,1)=EllIni2Uxl(minx,miny+(j-1)*hy);u0(j,nx)=EllIni2Uxr(maxx,miny+(j-1)*hy);endforj=1:nxu0(1,j)=EllIni2Uyl(minx+(j-1)*hx,miny);u0(ny,j)=EllIni2Uyr(minx+(j-1)*hx,maxy);end%边界条件的离散8五点差分格式在MATLAB中实现A=-4*eye((nx-2)*(ny-2),(nx-2)*(ny-2));b=zeros((nx-2)*(ny-2
4、),1);fori=1:(nx-2)*(ny-2);ifmod(i,nx-2)==1ifi==1A(1,2)=1;A(1,nx-1)=1;b(1)=-u0(1,2)-u0(2,1);elseifi==(ny-3)*(nx-2)+1A(i,i+1)=1;A(i,i-nx+2)=1;%注意边界节点的离散方式b(i)=-u0(ny-1,1)-u0(ny,2);elseA(i,i+1)=1;A(i,i-nx+2)=1;A(i,i+nx-2)=1;b(i)=-u0(floor(i/(nx-2))+2,1);endende
5、lseifmod(i,nx-2)==0ifi==nx-29五点差分格式在MATLAB中实现A(i,i-1)=1;%注意边界节点的离散方式A(i,i+nx-2)=1;b(i)=-u0(1,nx-1)-u0(2,nx);elseifi==(ny-2)*(nx-2)A(i,i-1)=1;A(i,i-nx+2)=1;b(i)=-u0(ny-1,nx)-u0(ny,nx-1);elseA(i,i-1)=1;A(i,i-nx+2)=1;A(i,i+nx-2)=1;b(i)=-u0(floor(i/(nx-2))+1,nx)
6、;endendelseifi>1&&i(ny-3)*(nx-2)&&i<(ny-2)*(nx-2)A(i,i-1)=1;A(i,i-nx+2)=1;%其余靠近边界点的离散A(i,i+1)=1;b(i)=-u0(ny,mod(i,(nx-2))+1);10五点差分格式在MATLAB中实现elseA(i,i-1)=1;A(i,i+1)=1;%与边界无关的点离散A(i,i+nx-2)=1;
7、A(i,i-nx+2)=1;endendendendendu=Ab;%求线性方程组的解uformatshort五点差分格式算例求解在命令窗口输入程序:u=peEllip5(51,0,2,51,0,2);11五点差分格式算例求解结果如果网格更密的话,即采用更多的节点进行计算,会得到更光滑的曲面。12工字型差分格式13工字型差分格式注意:这里给出的边界仍是矩形边界;并且做网格剖分时要保证x方向和y方向上的网格步长相等。14工字型差分格式给出同样的算例求解以下拉普拉斯方程:计算结果比较:用工字型差分格式计算得到的结
8、果与五点差分格式得到的结果差不多,但是前者角点上的算法不太好,这是格式自身的缺陷。15双曲线偏微分方程——一维对流方程对流方程是最简单的双曲线偏微分方程,以下以一维、二维对流方程为例,讲述对流方程的数值解法。16一维对流方程——迎风格式其中a>0,a<0格式不同是为了满足差分格式的稳定性,若第一个式子a<0,则差分格式是绝对不稳定的。上述迎风格式是条件稳定的并且是一阶精度的差分格式。1