偏微分方程数值解实验报告一、题目: 1 、用有限元方法求下列边值问题的数值解: '' ( ) 1 1 2x -y + y = 2sin ,0 < x < , 4 2 y(0)=0, y'( )=0. ? ??????其中其精确解为 2 4 x y = sin( ) 2 ??,取 h= 要求:(1 )将精确解与用有限元得到的数值解画在同一图中(2) 1hH u u ?、 2hL u u ?、 0 1 hx max u - u ? ? 2、用线性元求解下列问题的数值解: x x u(x,-1)=u(x,1)=0,-1< x <1, u (-1, y)=1, u u =0 =-2,-1< x, ,-1< y <1. y <1, ??????精确到小数点后第六位,并画出解曲面。 3、用 Crank-Nicolson 差分法求解 Burger 方程 0, (0,1), (0, 5), , [0 1] t (1 ) . t x xx v +vv = v , x t v(x,0)=sin2 x x ;v =v ,t =0 ? ??? ????? ?????, 其中取 1 ??要求画出解曲面。迭代格式如下: 1 2 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 2 2 14 2 2 12 n n n n n n j j j j j j n n n n n n j j j j j j V V V V V V h h V V V V V V h h ?? ??? ?? ???? ???? ?? ??????????? ?? ?? ?? ?? ?? ?? ? ??? ?? ?? ?? ?? ?二、代码: 1、%Ritz Galerkin 方法求解方程 function u1=Ritz(x) % 定义步长 h=1/100; x=0:h:1; n=1/h; a=zeros(n-1,1); b=zeros(n,1); c=zeros(n-1,1); d=zeros(n,1); % 求解 Ritz 方法中内点系数矩阵 for i=1:1:n-1 b(i)=(1/h+h*pi*pi/12)*2; d(i)=h*pi*pi/2*sin(pi/2*(x(i)+h))/2+h*pi*pi/2*sin(pi/2*x(i+1))/2; end % 右侧导数条件边界点的计算 b(n)=(1/h+h*pi*pi/12); d(n)=h*pi*pi/2*sin(pi/2*(x(i)+h))/2; for i=1:1:n-1 a(i)=-1/h+h*pi*pi/24; c(i)=-1/h+h*pi*pi/24; end % 调用追赶法 u= yy (a,b,c,d) % 得到数值解向量 u1=[0,u] % 对分段区间做图 plot(x,u1) % 得到解析解 y1=sin(pi/2*x); hold on plot(x,y1, 'o' ) legend( ' 数值解',' 解析解') function x= yy (a,b,c,d) n=length(b); q=zeros(n,1); p=zeros(n,1
偏微分方程数值解实验报告 来自淘豆网www.taodocs.com转载请标明出处.