matlab程序(解泊松方程).docx

matlab程序(解泊松方程).docx

ID:58636849

大小:12.93 KB

页数:10页

时间:2020-10-17

matlab程序(解泊松方程).docx_第1页
matlab程序(解泊松方程).docx_第2页
matlab程序(解泊松方程).docx_第3页
matlab程序(解泊松方程).docx_第4页
matlab程序(解泊松方程).docx_第5页
资源描述:

《matlab程序(解泊松方程).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、求解泊松方程的functionFinite_element_tri(Imax)%用有限元法求解三角形形区域上的Possion方程Jmax=2*Imax;%其中ImaxJmax分别表示x轴和y轴方向的网格数,其中Jmax等于Imax的两倍%定义一些全局变量globalndmnelna%ndm总节点数%nel基元数%na表示活动节点数V=0;J=0;X0=1/Imax;Y0=X0;%V=0为边界条件domain_tri%调用函数画求解区域[X,Y,NN,NE]=setelm_tri(Imax,Jmax);%给节点和三角形元素编号,并设

2、定节点坐标%以下求解有限元方程的求系数矩阵T=zeros(ndm,ndm);forn=1:neln1=NE(1,n);n2=NE(2,n);n3=NE(3,n);%整体编号s=abs((X(n2)-X(n1))*(Y(n3)-Y(n1))-(X(n3)-X(n1))*(Y(n2)-Y(n1)))/2;%三角形面积fork=1:3ifn1<=na

3、n2<=naT(n1,n2)=T(n1,n2)+((Y(n2)-Y(n3))*(Y(n3)-Y(n1))+(X(n3)-X(n2))*(X(n1)-X(n3)))/(4*s);T(n2,n

4、1)=T(n1,n2);T(n1,n1)=T(n1,n1)+((Y(n2)-Y(n3))^2+(X(n3)-X(n2))^2)/(4*s);%V=0则边界积分为零,非零时积分编程类似,再加边界积分。endk=n1;n1=n2;n2=n3;n3=k;%轮换坐标将值赋入3阶主子矩阵中endendM=T(1:na,1:na);%求有限元方程的右端项f=X;%场源函数G=zeros(na,1);forn=1:neln1=NE(1,n);n2=NE(2,n);n3=NE(3,n);s=abs((X(n2)-X(n1))*(Y(n3)-Y(n

5、1))-(X(n3)-X(n1))*(Y(n2)-Y(n1)))/2;fork=1:3ifn1<=naG(n1)=G(n1)+(2*f(n1)+f(n2)+f(n3))*s/12;%f在单元上为线性差值时场域单元的积分公式endn4=n1;n1=n2;n2=n3;n3=n4;%轮换坐标标endendF=MG;%求解方程得结果NNV=zeros(Imax+1,Jmax+1);fi=zeros(ndm,1);fi(1:na)=F(1:na);fi(na+1:ndm)=V;forj=0:Jmaxfori=0:Imaxn=NN(i+1,

6、j+1);ifn<=0n=na+1;endNNV(i+1,j+1)=fi(n);endendfigure(2)imagesc(NNV);%画解函数的平面图X1=zeros(1,Imax+1);Y1=zeros(1,Jmax+1);fori=1:Imax+1X1(i)=(i-1)*X0;endfori=1:Jmax+1Y1(i)=(i-1)*Y0;endfigure(3)surf(X1,Y1,NNV');%画解函数的曲面图%以下是结果的输出fid=fopen('Finite_element_tri.txt','w');fprintf

7、(fid,'*********有限元法求解三角形区域上Possion方程的结果**********');L=[1:ndm]';fprintf(fid,'节点编号坐标分量x坐标分量yu(x,y)的值');fori=1:ndmfprintf(fid,'%8d%14.5f%14.5f%14.5f',L(i),X(i),Y(i),fi(i));endfclose(fid);functiondomain_tri%画求解区域xy=[01;0-1;10];A=zeros(3,3);A(1,1)=2;A(1,2)=

8、-1;A(1,3)=-1;A(2,2)=2;A(2,1)=-1;A(2,3)=-1;A(3,3)=2;A(3,2)=-1;A(3,1)=-1;A=sparse(A);figure(1);gplot(A,xy);function[X,Y,NN,NE]=setelm_tri(Imax,Jmax)%给节点和三角形单元编号,并设定节点坐标%定义一些全局变量globalndmnelna%I1I2J1J2ImaxJmax分别描述网线纵向和横向数目的变量%XY表示节点坐标%NN描述节点编号%NE描述各单元局部节点编号与总体编号对应的矩阵%ndm

9、总节点数%nel单元数%na表示不含边界的节点数nlm=Imax*Jmax;dx=1/Imax;dy=1/Jmax;X=nlm:1;Y=nlm:1;NN=zeros(Imax+1,Jmax+1);n1=0;forj=3:Jmax/2fori=2:j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。