matlab有限元解二维抛物方程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
%%%%% 真解 u=sin(pi*x)*sin(pi*y)*sin(t) %%%%% 方程 diff(u,t)-Laplace(u)=f %%%%% f=sin(pi*x)*sin(pi*y)*cos(t)+2*pi^2*sin(pi*x)*sin(pi*y)*sin(t) %clear all % clc %%%%finite element code for parabolic equation with constant coefficient %%%mesh%% node=[0,0;1,0;1,1;0,1]; elem=[2,3,1;4,1,3]; T=1; bdEdge=setboundary(node,elem,’Dirichlet’); n=input(‘Please input initial mesh:’); M=input(‘M=’); for i=1:n [node,elem,bdEdge]=uniformrefine(node,elem,bdEdge); end N=size(node,1); NT=size(elem,1); S=1/NT; r=1/M; A=zeros(N,N); u=zeros(N,M+1); u1=zeros(N,1); f=inline(‘sin(pi*xx(1,1))*sin(pi*xx(1,2))*cos(t)+2*pi^2*sin(pi*xx(1,1))*sin(pi*xx(1,2))*sin(t)’,’xx’,’t’); [lambda,weight]=quadpts(5); p=node’; T=elem’; totalEdge=[elem(:,[2,3]);elem(:,[3,1]);elem(:,[1,2])]; isBdEdge=reshape(bdEdge,3*NT,1); Dirichlet=totalEdge(isBdEdge==1),:); isBdNode=false(N,1); isBdNode(Dirichlet)=true; bdNode=find(isBdNode); freeNode=find(~isBdNode); for j=2:M+1 for i=1:NT F=zeros(N,1); F_ele=zeros(1,3); T_ele=elem(i,:); for m=1:7 xx(m,1)=(p(1,t(1,i))-p(1,t(3,i)))*lambda(m,1)+(p(1,t(2,i))-p(1,t(3,i))*lambda(m,2)+p(1,t(3,i)); xx(m,1)=(p(2,t(1,i))-p(2,t(3,i)))*lambda(m,1)+(p(2,t(2,i))-p(2,t(3,i))*lambda(m,2)+p(2,t(3,i)); end for i=1:3 for k=1:7 F_ele(i)=F_ele(i)+S*weight(k)*lambda(k,i)*f(xx(k,:),(j-1)*r); end end x=node(T_ele,:); [a,b]=Basis_coeff(x); A_ele=[a,b]’*[a,b]/(4*s); B_ele=zeros(3,3); for i=1:3 for j=1:3 if i==j B_ele(i,j)=1/12; else B_ele(i,j)=1/24; end end end A(T_ele,T_ele)=A(T_ele,T_ele)+S*B_ele+r*A_ele; F(T_ele,1)=F(T_ele,1)+r*F_ele’+S*B_ele; end uj=zeros(N,1); uj(freeNode)=A(freeNode,freeNode)\F(freeNode); u(:,j)=uj; end showresult(node,elem,uj) u_exact=zeros(N,M+1); for j=1:M+1 u_exact(:,j)=inline(‘sin(pi*pxy(:,1)).*sin(pi*pxy(:,2)).*sin((j-1)*r)’,’pxy’); end L2_err=getL2error(node,elem,u_exact(:,j),u(:,j),5); %t=(j-1)*r L’2_err=getL2error(node,elem,u_exact,u,5); Du(:,j)=inline(‘[pi*cos(pi*pxy(:,1)).*sin(pi*pxy(:,2)).*sin((j-1)*r),pi*sin(pi*pxy(:,1)

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档