两点边值问题有限元法(必做)从Galerkin原理出发用线性元解两点边值问题:2,01(0)(1)0uuxxuu精确解:1221()[(23)(23)]21xxuxeeeexe。1.1变分形式从Galerkin原理出发推导出两点边值问题的变分形式,将积分区间等分为N份,则步长1,1,2,ihinN,记为h。写出有限元方程及系数矩阵元素。基于虚功原理,求变分形式),(),(vfvuah。对于hvv,取hhuxu)(在n个剖分结点,1,,,010nxxx。取值为0)1(,,,0)0(10uuuuun。其中ihxxi0,Ni1,Nh1。取vu,udxxudxuu10102)''(,推得dxuxdxuu1021022])'[(。相应的双线性变分形式dxajijiji10]'[),(,则有限元方程nijijixxfuxxa1))(),(())(),((,nj,,1。dqhphajjjj1011])1([),(;dqhdqhphajjjjj])1([][),(210101121;dqhphajjxxjjj1)]1([)(11-1j1;这里1,,2nj。第一行只有两个非零元素:),(11a,),(21a。第n行也只有两个非零元素:),(1nna和dqhphannnn1021][),(,方程的右端dhxfhdhxfhdxfjjjjjjj)1()()(101110110;方程的系数矩阵为:),(00),(0),(),(0),(),(122122111nnnnaaaaaa1.2利用MATLAB求解问题的过程依次取2,2,3,4,5,6,7,8.nNn用MATLAB求解并图形比较数值解与精确解,用表格列出不同剖分时的2L误差。4N:8N:16N:32N:64N:128N:256N:误差比较:N48163264128256Err0.0002460.0000860.0000300.0000110.0000040.0000010.0000001.3方法总结及分析在利用Galerkin原理出发用线性元解两点边值问题,利用MATLAB作图可以发现解析解与精确解非常逼近,但从误差上可以看出,剖分结点越多,误差越小,逼近程度越好。附件程序function[U,precise_value,err]=G(N)h=1/N;p=1;q=1;X=0:h:1;A=zeros(N-1);fori=2:N-1f3=@(ks)-p./h+h.*q.*ks.*(1-ks);f2=@(ks)p./h+h.*q.*(ks.^2)+p./h+h.*q.*((1-ks).^2);f1=@(ks)-p./h+h.*q.*ks.*(1-ks);A(i-1,i)=quadl(f1,0,1);A(i,i)=quadl(f2,0,1);A(i,i-1)=quadl(f3,0,1);endA(1,1)=quadl(f2,0,1);f=zeros(N-1,1);fori=2:Nf11=@(ks)(X(i-1)+h.*ks).^2.*ks+(X(i)+h.*ks).^2.*(1-ks);f(i-1)=h.*quadl(f11,0,1);endU=A\f;dx=X;precise_value=((exp(2)-1)^(-1)).*((2-3*exp(1))*exp(dx)-(2*exp(1)-3)*exp(1-dx))+dx.^2+2plot(X,[0;U;0],'b--',X,precise_value,'r:+');legend('数值解','精确解');err=norm([0;U;0]-precise_value');formatlongsprintf('Galerkin有限元法最大误差%f\n',err)end小组成员:宋珂、张云雷、黄镭、耿盼丽