logo资料库

微分方程数值解上机.doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
9、给出初边值问题 2 u 2  x  | u  1 x  sin x  0( )1 x (0 )0 t 0( )1    x      u     u 2 2  t  | u x | t 0   0  u  t    1 8 | t  0 0  用显示查分格式 U 1 n  m  2 U n m  U 1 n  m  2 ( Ur n m 1   2 U n m  U n m 1  ) 求出网格节点(m,n) (m=1,2…9,n=1,2,….5)上的 n mU 值,其中导数条件用中心差商代替, k=h=0.1,给出解析解并与网格节点上的近似解比较。 10、考虑逼近双曲型方程 2 2  u 2 u  2 x  的隐式差分格式  t  1 1 2 n  U  m x 2 k 试:(1)分析其稳定性 (2)编制出用于计算第九题初边值条件的计算机程序,并进行数值试验 1(1 4 h 2 U  t 2 U  x 2 U  x 1 n  m 1 4 1 2    n m n m ) 2 一、算法设计 1、显示差分格式为 2 U  U  1 n  m n m 1  第九题 n m  U n m 1  2) U  n m  U 1 n  m (1)  0| t 2 ( Ur u  t   2 k 2、对于  0 的处理采用差分近似  U x , m   k U x , k  m   0 1 U U  m 1 m  0 在(1)中令 n=0,得 2 U U U 2 ( r U    1 m 0 m 1  0 m 0 m 1  ) 2  1 U U  m  0 m (2) (3) 联立(2)(3)得,消去 1 mU  得: U 1 m  2 r 2 ( U 0 m 1   2 U U  0 m 0 m )  U 0 m 1 
于是可得: 1 n  m  1 m  1 n  m 0 m 0 m u U   U        U        U   U  u x  n m ( U 2 ( r U  1 sin 8 2 r 2 2 ( r U  1 sin 8 2 r 2 0 0    ( U  x  U 1 m m 1 m 0  1  2 U U  n m n m 1  ) 2  U U  n m 1 n  m 0 m  1  2 U U  0 m 0 m )  U 0 m 1  n m 1   2 U U  n m n m 1  ) 2  U U  n m 1 n  m 0 m 1   2 U U  0 m 0 m )  U 0 m 1  2、方程的解析解为 x   sin[ (  u  1 16 3、数据: t )]  sin[ (  x  )] t 精确解在给定网格格点的值 n=0 0 0 0 0 0 0 0 0 0 0 0 n=1 0 n=2 0 n=3 0 n=4 0 n=5 0 n=6 0 0.011936 0.022704 0.03125 0.036737 0.038627 0.036737 0.022704 0.043186 0.059441 0.069877 0.073473 0.069877 0.03125 0.059441 0.081814 0.096178 0.101127 0.096178 0.036737 0.069877 0.096178 0.113064 0.118882 0.113064 0.038627 0.073473 0.101127 0.118882 0.125 0.118882 0.036737 0.069877 0.096178 0.113064 0.118882 0.113064 0.03125 0.059441 0.081814 0.096178 0.101127 0.096178 0.022704 0.043186 0.059441 0.069877 0.073473 0.069877 0.011936 0.022704 0.03125 0.036737 0.038627 0.036737 2.07E-09 3.94E-09 5.42E-09 6.37E-09 6.7E-09 6.37E-09 近似解在给定网格格点的值 n=0 0 n=1 0 n=2 0 n=3 0 n=4 0 n=5 0 n=6 0 0.038627 0.036737 0.03125 0.022704 0.011936 1.04E-09 -0.01194 0.073473 0.069877 0.059441 0.043186 0.022704 1.97E-09 -0.0227 0.101127 0.096178 0.081814 0.059441 0.03125 2.71E-09 -0.03125 0.118882 0.113064 0.096178 0.069877 0.036737 3.19E-09 -0.07347 m=0 m=1 m=2 m=3 m=4 m=5 m=6 m=7 m=8 m=9 m=10 m=0 m=1 m=2 m=3 m=4
0.125 0.118882 0.101127 0.073473 0.038627 -0.03674 9.56E-09 0.118882 0.113064 0.096178 0.069877 -2.7E-09 0.038627 -0.03674 0.101127 0.096178 0.081814 0.022704 0.069877 -2.7E-09 -0.03125 m=5 m=6 m=7 m=8 m=9 0.073473 0.069877 0.022704 0.081814 0.022704 0 0 0.069877 0.022704 0.011936 m=10 6.7E-09 6.37E-09 0 0 0 -2E-09 -1E-09 0 -0.0227 -0.01194 0 精确解与近似解在给定网格格点的误差 n=0 0 n=1 0 n=2 0 n=3 0 n=4 0 n=5 0 n=6 0 0.038627 0.0248 0.008546 -0.00855 -0.0248 -0.03863 -0.04867 0.073473 0.047173 0.016255 -0.01625 -0.04717 -0.07347 -0.09258 0.101127 0.064928 0.022373 -0.02237 -0.06493 -0.10113 -0.12743 0.118882 0.076327 0.0263 -0.0263 -0.07633 -0.11888 -0.18654 0.125 0.080255 0.027654 -0.02765 -0.08025 -0.16174 -0.11888 0.118882 0.076327 0.0263 -0.0263 -0.11306 -0.08025 -0.1498 0.101127 0.064928 0.022373 -0.05911 -0.0263 -0.10113 -0.12743 0.073473 0.047173 -0.02048 0.022373 -0.04717 -0.07347 -0.09258 0 -0.01194 0.047173 -0.00855 -0.0248 -0.03863 -0.04867 m=0 m=1 m=2 m=3 m=4 m=5 m=6 m=7 m=8 m=9 m=10 6.7E-09 4.3E-09 -3.9E-09 -5.4E-09 -6.4E-09 -6.7E-09 -6.4E-09 4、代码: clc u=zeros(11,7); u1=zeros(11,7); pi=3.1415926; h=0.1; k=0.1; r=k/h; for i=1:11 end for i=1:11 u(i,1)=(1/8)*sin(pi*(i-1)*h) ; u(i,2)=(1/8)*sin(pi*(i-1)*h)+r*r*(1/8)*sin(pi*(i-1)*h)*(cos(pi*h)-1); end for j=1:7 end for j=1:7 u(1,j)=0; u(10,j)=0; end for j=2:6
for i=2:10 end end for i=1:11 for j=1:7 end end u(i,j+1)=2*(1-r*r)*u(i,j)+r*r*(u(i+1,j)+u(i-1,j))-u(i,j-1); u1(i,j)=(1/8)*sin(pi*(i-1)*k)*sin(pi*(j-1)*h); x=[0 0.1 02 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]; xlswrite('C:\Users\zhengyd\Desktop\ÎÊÌâ1.xlsx',u','sheet1'); xlswrite('C:\Users\zhengyd\Desktop\ÎÊÌâ1.xlsx',u1','sheet2'); xlswrite('C:\Users\zhengyd\Desktop\ÎÊÌâ1.xlsx',(u-u1)','sheet3'); 一、稳定性分析: 第十题 1、令 u 2 2  t    u  t  2 u  2 x   uv  , x  u  t  化为 w  w w   t x   ,  v  x  令 ( , v w  u )T A     0 1 1 0    u  t   令 n V m  0 uA  x  U U  k  n m 1  n m , n W m  n m 1  n m U U  h 1 2  n W m  1  1 2  n W m  1  1 2 2 h n V m  n V 1 m  1 n  V  1 m  2 h 1  1 2 1 2  k   n V m n V m n W m  n W m   k 1 n  W 1 m  2 隐式差分格式等价于:  n W  m       所以此差分格式是稳定的 二、处边值问题求解: 1 2 k 所以: 1(1 4 h 2 U  t 2 U  x n V m 1    n m  2  1 4 2 r U 1 n  1 m  (1   1 2 2 ) r U 1 n  m  1 n  m  1 2 1 4 2 U  x n m  1 4 2 U  x 1 n  m ) 2 r U 1 n  1 m   1 4 2 ( r U 1 n  1 m   U 1 n  1 m  ) (1   1 2 2 ) r U 1 n  m  1 2 2 ( r U n m 1   U n m 1  )  (2  2 ) r U n m
化为对角方程组逐层求解 m=10;  2 1 r 2  2 r 2  1 r 4 1  2 1 r 4  1 4 1 2 ... 2 1   2 r 1 2 1 r 4  1             2 r   2 1 r 4 ... 1 4 r 2  2 r 2 r 2 1 2 1  1  1      n U  1  n U   2   n U  3   ...    1 n U    1 m                           ... 1 2 2 r 1  1 2 2  1 2 2 r 2 r 2 r 2 r 1 2 2  2 r ... 2 1 r 2 ... 1 2 r 2     n U  1  n U   2   n U   3   ...   n U    1 m  2                     ... 2  r 1 2 2 n r U 0 1 2 n  r U 0  0 0 ... 1 2 n  r U m  1 2 2 n r U m 2 r )  1 2 2 r  (1    1   4         三、数据 1 4 (1   2 r 1 2 2 r 1 4 2 r ) 1 4 (1   2 r 1 2 ...     1 n  U  1  1 n  U  2  1 n  U  3   ...  1 n  U   1 m   )                      1 4 1 4 1 2 n  r U 0  1 2 n  r U m  1 4 1 4 ... 1 2 (1   2 r 2 r ) 2 r 1 4 ... 1 4 2 r 近似解在给定网格格点的值 n=0 0 n=1 0 n=2 0 n=3 0 n=4 0 n=5 0 n=6 0 0.038627 0.036737 0.031336 0.022941 0.012354 0.000587 -0.01124 0.073473 0.069877 0.059604 0.043637 0.023499 0.001117 -0.02137 0.101127 0.096178 0.082038 0.060061 0.032344 0.001537 -0.02942 0.118882 0.113064 0.096442 0.070605 0.038023 0.001807 -0.03458 0.125 0.118882 0.101405 0.074239 0.039979 0.0019 -0.03636 0.118882 0.113064 0.096442 0.070605 0.038023 0.001807 -0.03458 0.101127 0.096178 0.082038 0.060061 0.032344 0.001537 -0.02942 0.073473 0.069877 0.059604 0.043637 0.023499 0.001117 -0.02137 0.038627 0.036737 0.031336 0.022941 0.012354 0.000587 -0.01124 m=0 m=1 m=2 m=3 m=4 m=5 m=6 m=7 m=8 m=9 m=10 0 0 0 0 0 0 0 精确解在给定网格格点的值 n=0 0 0 0 0 0 m=0 m=1 m=2 m=3 m=4 n=1 0 n=2 0 n=3 0 n=4 0 n=5 0 n=6 0 0.011936 0.022704 0.03125 0.036737 0.038627 0.036737 0.022704 0.043186 0.059441 0.069877 0.073473 0.069877 0.03125 0.059441 0.081814 0.096178 0.101127 0.096178 0.036737 0.069877 0.096178 0.113064 0.118882 0.113064
m=5 m=6 m=7 m=8 m=9 m=10 0 0 0 0 0 0 0.038627 0.073473 0.101127 0.118882 0.125 0.118882 0.036737 0.069877 0.096178 0.113064 0.118882 0.113064 0.03125 0.059441 0.081814 0.096178 0.101127 0.096178 0.022704 0.043186 0.059441 0.069877 0.073473 0.069877 0.011936 0.022704 0.03125 0.036737 0.038627 0.036737 2.07E-09 3.94E-09 5.42E-09 6.37E-09 6.7E-09 6.37E-09 精确解与近似解在给定网格格点的误差 n=0 n=1 n=2 n=3 n=4 n=5 n=6 0 0 0 0 0 0 0 0.038627 0.0248 0.008631 -0.00831 -0.02438 -0.03804 -0.04797 0.073473 0.047173 0.016418 -0.0158 -0.04638 -0.07236 -0.09125 0.101127 0.064928 0.022597 -0.02175 -0.06383 -0.09959 -0.12559 0.118882 0.076327 0.026565 -0.02557 -0.07504 -0.11708 -0.14765 0.125 0.080255 0.027932 -0.02689 -0.0789 -0.1231 -0.15524 0.118882 0.076327 0.026565 -0.02557 -0.07504 -0.11708 -0.14765 0.101127 0.064928 0.022597 -0.02175 -0.06383 -0.09959 -0.12559 0.073473 0.047173 0.016418 -0.0158 -0.04638 -0.07236 -0.09125 0.038627 0.0248 0.008631 -0.00831 -0.02438 -0.03804 -0.04797 m=0 m=1 m=2 m=3 m=4 m=5 m=6 m=7 m=8 m=9 0 -2.1E-09 -3.9E-09 -5.4E-09 -6.4E-09 -6.7E-09 -6.4E-09 m=10 四、代码: clc u=zeros(9,7); u1=zeros(11,7); a=zeros(9,9); b=zeros(9,9); c=zeros(9,9); pi=3.1415926; h=0.1; k=0.1; r=k/h; for i=2:10 u(i-1,1)=(1/8)*sin(pi*(i-1)*h) ; end for i=2:10 u(i-1,2)=(1/8)*sin(pi*(i-1)*h)+r*r*(1/8)*sin(pi*(i-1)*h)*(cos(pi*h)-1) ;
end for i=1:8 a(i,i)=1+r*r/2; b(i,i)=2-r*r; c(i,i)=(1+r*r/2)*(-1); a(i,i+1)=(-1)/4*r*r; a(i+1,i)=(-1)/4*r*r; b(i,i+1)=1/2*r*r; b(i+1,i)=1/2*r*r; c(i,i+1)=1/4*r*r; c(i+1,i)=1/4*r*r; end a(9,9)=1+r*r/2; b(9,9)=2-r*r; c(9,9)=(1+r*r/2)*(-1); for j=3:7 u(:,j)=inv(a)*b*u(:,j-1)+inv(a)*c*u(:,j-2); j=j+1; end u1(i,j)=(1/8)*sin(pi*(i-1)*k)*sin(pi*(j-1)*h); w(i,:)=u(i-1,:) end for j=1:7 for i=1:11 for j=1:7 end end w=zeros(11,7); for i=2:10 u(1,j)=0; end for j=1:7 u(11,j)=0; end
% xlswrite('C:\Users\zhengyd\Desktop\ÎÊÌâ1.xlsx',u','sheet4'); % xlswrite('C:\Users\zhengyd\Desktop\ÎÊÌâ1.xlsx',u1','sheet2'); xlswrite('C:\Users\zhengyd\Desktop\ÎÊÌâ1.xlsx',(w-u1)','sheet5');
分享到:
收藏