【毕业设计(论文)】二维热传导方程有限差分法的MATLAB实现 下载本文

苏佳园:二维热传导方程有限差分法的MATLAB实现

第6章 数值举例分析

6.1 算 例

为了便于观察和表示微分方程的解,我们将最终解用图像表示出来。 例6.1 求满足下列条件的二维热传导方程的解:

22??u?u?u??t?0.5(2?2),0?x?5,0?y?5,0?t?1000,?x?y??0?x?5,0?y?5,?u(x,y,0)?0,?u(x,y,t)?x2siny?y2sinx. ???

在MATLAB命令窗口中输入求解程序:

a=0.5;

u_xy0=inline('0','x','y');

u_xyt=inline('x^2*sin(y)-y^2*sin(x)','x','y','t'); D=[0,5,0,5]; T=1000; Mx=50; My=50; N=50;

[u,x,y,t]=sjy(a,D,T,u_xy0,u_xyt,Mx,My,N); mesh(x,y,u) xlabel('x') ylabel('y') zlabel('U') 输出计算结果为:

rx =

1.0000e+003 ry =

1.0000e+003

16

3020100-10-20-30642y0102x354t

此解即为差分方程的近似解。

例6.2 求解如下二维热传导方程

2u?2u??u???t?10(2?2),0?x?2,0?y?4,0?t?500,?x?y??0?x?2,0?y?4,?u(x,y,0)?0,?u(x,y,t)?xsin(?y)-ysin(?x). ???在MATLAB命令窗口中输入求解程序:

a=10;

u_xy0=inline('0','x','y');

u_xyt=inline('x*sin(pi*y)-y*sin(pi*x)','x','y','t'); D=[0,2,0,4]; T=500; Mx=80; My=80; N=40;

[u,x,y,t]=sjy(a,D,T,u_xy0,u_xyt,Mx,My,N);

17

苏佳园:二维热传导方程有限差分法的MATLAB实现

mesh(x,y,u) xlabel('x') ylabel('y') zlabel('t')

输出计算结果为:

rx =

2.0000e+005 ry =

5.0000e+004

420t-2-44321y000.5x1.512

6.2 运行结果分析

利用MATLAB的工具箱PDETOOL求解方程结果为:

18

Time=10 Color: u Height: u252030201010500-10-5-20-10-306420012354-15-20-2515

例6.1精确解

Time=10 Color: u Height: u3422100-2-1-2321000.51.512-3-44

例6.2精确解

对上述数值解和精确解进行比较,将两解得图画在一个坐标面内,可以更加直观的观察图形的区别,若两图形相差比较大则说明此算法还有不对或不完善的地方;若两图形重合度比较高,则说明此算法和编程过程比较好,能真实的反应偏微分方程的

19

苏佳园:二维热传导方程有限差分法的MATLAB实现

解的情况。如下图:

Time=10 Color: u Height: u252030152010105U00-10-5-20-10-30642y001x2354-15-20-25

Time=10 Color: u Height: u3422100-2-1-2321y000.5x1.512-3-44

从上图可以看出结果基本一致,重合度比较高,即说明计算差分方程的的结果比较

20