偏微分方程数值解法上机报告(一) 一、实验题目:用Ritz-Galerkin 方法求解边值问题2u '',01(0)0, (1)1uxxuu的第n 次近似( )nux ,基函数( )sin(),1,2,...,i xi x in. 二、实验目的:通过本次上机实验,理解求解初值问题的变分问题的最重要的近似解法——Ritz-Galerkin 方法,以便为学习有限元法打好基础。此外,要熟悉用Matlab 解决数学问题的基本编程方法,提高运用计算机解决问题的能力。 三、实验代码: n=5; syms x; for i=1:n p(i)=sin(i*pi*x); q(i)=-i^2*pi^2*sin(i*pi*x); end for i=1:n b(i)=2*int(p(i),0,1); for j=1:n A(i,j)=int((-q(j)+p(j))*p(i),0,1); end end t=inv(A)*b' 四、运行结果: t= 2251799813685248/3059521645650671/pi 0 281474976710656/9481460623939047/pi 0 281474976710656/43582901062631895/pi 五 、总 结 :通过本次上机,我 了 解了Ritz-Galerkin方程 njjpfcjpipanii,...,2,1)),(,())(),((1,明白了用Ritz-Galerkin方法解决边值问题的变分问题的基本原理,并接近一步提高自己的编程动手能力,受益匪浅。 偏微分方程数值解法上机报告(二) 一、 实 验 题 目 : 用 线 性 元 求 下 列 边 值问 题 的 数值解2''2sin,0142(0)0,'(1)0yyxxyy 二、 实验目的:通过本次上机,熟悉和掌握用 Galerkin 法观点出发导出的求解处置问题数值解的线性有限元法。增强用 Matlab 解决数学问题的能力。 三、 实验代码:N=10; a=0;b=1; h=(b-a)/N; p=1;q=pi^2/4; syms s; f=2*sin(pi/2*s); X=[0:(b-a)/N:1]; B=[]; for i=1:N B(i)=h*int(f*(X(i)+h*s)*s,a,b)+h*int(f*(X(i+1)+h*s)*(1-s),a,b); end A=[]; for i=1:N-1 for j=1:N if i-j==-1 A(i,j)=neiji(1,j,N); elseif i-j==0 A(i,j)=neiji(2,j,N); elseif i-j==1 A(i,j)=neiji(3,j,N); end end end A(N,N-1)=neiji(3,N-1,N);A(N,N)=neiji(4,N,N); u=inv(A)*B'; u' function t=neiji(index,j,N) p=1;q=pi^2/4;a=0;b=1; h=(b-a)/N; syms s; X=[0:h:1]; if index==1 t=int(-p*(X(j)+h*s)/h+h*q*(X(j)+h*s)*(1-s)*s,a,b); elseif index==2 t=int(-p*(X(j)+h*s)/h+h*q*(X(j)+h*s)*s*s,a,b)+int(-p*(X(j+1)+h*s)/h+h*q*(X(j+1)+h*s)*(1-s)*(1-s),a,b); elseif index==3 t=int(-p*(X(...