⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exp.m

📁 poisson问题有限元求解通用程序(线性元). 压缩包内exp.m包含了一个实际问题,matlab下直接运行即可,如效率不高,可适当修改网格参数h.
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%Poisson_FEM%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%自选例子
clear;
h       =0.1;   h_s     =0.1;
Eq      =[0;0;1];
F       =sym('x^2+y^2-2');
Omega   =[-1;1;-1;1];
Ed1     =Omega([1,4,1,4])';
Ed1(1,3)=Ed1(1,3)+h_s;
F1      =[0;0];
Ed2     =[];
F2      =[];
u=sym('-(1-y^2)*(1-x^2)/2');
%%%%%%%%%%%%%%%%%%边界生成%%%%%%%%%%%%%%%%%%%%%%%%%%%
rN=(Omega(4)-Omega(3))/h_s;cN=(Omega(2)-Omega(1))/h_s;
Ed          =zeros((rN+1)*(cN+1),2);                                                       
ed          =[1:rN+1,[2:cN]*(rN+1),(cN+1)*(rN+1):-1:(rN+1)*cN+1,[(cN-1):-1:1]*(rN+1)+1]';       
for i=1:rN+1
    for j=1:cN+1
        Ed(i+(rN+1)*(j-1),1:2)   =[Omega(1)+(j-1)*(Omega(2)-Omega(1))/cN,Omega(4)-(i-1)*(Omega(4)-Omega(3))/rN];                     
    end
end
Ed=Ed(ed,:);
%%%%%%%%%%%%%%%%%%%%%计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[A,B,U,t,pData]=Poisson_FEM(Eq,F,Omega,Ed,Ed1,F1,Ed2,F2,h);
%误差比较%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
U0=[];
for i=1:length(U)
    U0=[U0;double(subs(u,{'x','y'},{pData(i,1),pData(i,2)}))];
end
e_max=max(abs(U-U0));e_mean=sum(abs(U-U0))/length(U);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -