📄 exp.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 + -