system: [SYSTEM]

user: 3. 利用隐式差分格式进行数值求解 3.1. 数值解与误差分析 下面利用隐式差分格式的方法再次求解上述问题的数值解，并求出其数值解的误差的绝对值。取空间步长为1/100，时间步长为1/100，此时的步长比为1，计算固定 x = 0.5 时，时间从0.1到1秒的数值解以及数值解和精确解之差的绝对值(误差)。结果如表6所示。其次再取空间步长和时间步长分别为1/200和1/200，再次求其数值解和误差，结果如表7所示。 进一步，我们也绘制出了当空间步长和时间步长取1/10和1/20，1/20和1/40，1/40和1/80时在某一时间的误差曲线和整体的误差曲面图，如图4和图5所示。由这两个图可以看出，当空间步长和时间步长取1/10和1/20时数值解的误差较大，随着步长减小，每个坐标的误差均减小。 Table 6 Exact solution， numerical solution and absolute error at some nodes ( h = 1 / 100 ， τ = 1 / 100 (x， t) 数值解 精确解 误差 (0.5， 0.1) 1.822120583 1.822118800 1.782186e−06 (0.5， 0.2) 2.013757202 2.013752707 4.494834e−06 (0.5， 0.3) 2.225549190 2.225540928 8.261075e−06 (0.5， 0.4) 2.459616334 2.459603111 1.322333e−05 (0.5， 0.5) 2.718301086 2.718281828 1.925730e−05 (0.5， 0.6) 3.004189370 3.004166024 2.334548e−05 (0.5， 0.7) 3.320143880 3.320116923 2.695716e−05 (0.5， 0.8) 3.669326801 3.669296668 3.013383e−05 (0.5， 0.9) 4.055232931 4.055199967 3.296452e−05 (0.5， 1.0) 4.481724504 4.481689070 3.543386e−05 表6. 部分节点处精确解、数值解和误差绝对值 ( h = 1 / 100 ， τ = 1 / 100 ) Table 7 Exact solution， numerical solution and absolute error at some nodes ( h = 1 / 200 ， τ = 1 / 200 (x， t) 数值解 精确解 误差 (0.5， 0.1) 1.822119249 1.822118800 4.481301e−07 (0.5， 0.2) 2.013753836 2.013752707 1.128893e−06 (0.5， 0.3) 2.225543002 2.225540928 2.073096e−06 (0.5， 0.4) 2.459606428 2.459603111 3.316704e−06 (0.5， 0.5) 2.71828668 2.718281828 4.856486e−06 (0.5， 0.6) 3.004171899 3.004166024 5.875128e−06 (0.5， 0.7) 3.320123669 3.320116923 6.746337e−06 (0.5， 0.8) 3.669304218 3.669296668 7.550346e−06 (0.5， 0.9) 4.055208217 4.055199967 8.250381e−06 (0.5， 1.0) 4.481697926 4.481689070 8.855396e−06 表7. 部分节点处精确解、数值解和误差绝对值 ( h = 1 / 200 ， τ = 1 / 200 ) 图4. t = 1时不同步长时对应的误差曲线 图5. 不同步长时对应的误差曲面 为分析不同步长下显式差分格式的准确程度，我们固定步长比为1，依次取空间步长为1/10、1/20一直到1/640，计算在 x = 0.5 处的最大误差，以及步长细分时最大误差的比值，结果如表9所示。 根据表8中数据可知，当时间步长从1/10变化到1/640时，最大误差从0.003508减小到 8.67 × 10 − 7 ，误差大幅度减小，说明步长越小，数值解的误差越小。同时，当时间步长与空间步长同时缩小为原来的1/2时，最大误差缩小为原来1/4，最大误差的变化趋势与显式差分格式的变化趋势相似。 Table 8 Maximum error of asynchronous long time numerical solutio h τ E ∞ ( h ， τ ) E ∞ ( 2 h ， 2 τ ) / E ∞ ( h ， τ ) 1/10 1/10 0.003508 * 1/20 1/20 8.859737e−04 3.9592 1/40 1/40 2.219485e−04 3.9918 1/80 1/80 5.544056e−05 4.0034 1/160 1/160 1.385442e−05 4.0017 1/320 1/320 3.464567e−06 3.9989 1/640 1/640 8.660718e−07 4.0003 表8. 取不同步长时数值解的最大误差 3.2. 隐式差分格式的计算时间 下面计算当步长比固定为1时不同步长情况下的隐式差分格式的程序运行时间，考虑计算机运行的不稳定性，也重复运行5次，取时间的平均值，结果如表9所示，平均时间变化图如图6所示。 Table 9 Calculation time of implicit difference scheme with different step siz 次数 第一次 第二次 第三次 第四次 第五次 均值 空间步长 1/10 0.0186939 0.0009902 0.001156 0.0007517 0.001077 0.00453376 1/20 0.001981 0.0010297 0.0011978 0.0008154 0.0015323 0.00131124 1/40 0.00188 0.0022067 0.0013037 0.0022999 0.0017808 0.00189422 1/80 0.0031734 0.0039992 0.0026563 0.0040584 0.0041335 0.00360416 1/160 0.0085506 0.0071591 0.0075017 0.0075606 0.0075743 0.00766926 1/320 0.0157689 0.0157646 0.0215593 0.0180831 0.0157901 0.0173932 1/640 0.0452257 0.0463501 0.0503514 0.0506271 0.0431067 0.0471322 1/1280 0.1284789 0.1374374 0.1315172 0.133334 0.1284799 0.13184948 1/2560 0.4834762 0.521275 0.4831454 0.4791363 0.4928879 0.49198416 1/5120 1.8339433 1.8788296 1.8842463 1.8218807 1.8325131 1.8502826 表9. 不同步长下的隐式差分格式计算时间 从表9可以看出，当空间步长和时间步长为1/10和1/10时，程序运行的时间约为0.0045秒，而当空间步长和时间步长为1/5120和1/10240，运行时间约为1.85秒，时间的变化也非常大。从图6可以看出，当步长减小时，程序的运行时间逐渐增加，并且增加速度越来越快。与显式差分格式方法比较，隐式差分格式方法的运行时间较长，这说明隐式差分格式的复杂度较高。 图6. 隐式差分格式不同步长下的时间均值