@newton2ndlaw
2016-05-26T20:15:52.000000Z
字数 1664
阅读 896
张琦 2013301510086
第十三次作业
选择5.7,利用pyhton解决偏微分方程问题。
电势在空间中的分布服从拉普拉斯方程,利用数值算法可以解出该方程的解。
Write two programs to solve the capacitor problems of Figures 5.6 and 5.7, one using the Jacobi method an done using the SOR algorithm. For a fixed accuracy (as set by the convergence test) compare the number of iteractions, , that each algorithm requires as a function of the number of grid elements, L. Show that for the Jacobi method , while with SOR .
电势的分布方程(3D)为:
根据以上递推公式,即可使用python编写程序。所有数值单位均为国际单位制。
程序的特性code
选取31*31个参考点,update次数为10次、100次、1000次。
效果图:
可以看出100次与1000次update的差别已经不大了,因此下一个程序使用数值来判断每次update对结果的影响。
程序的特性code
0-1000次update效果图:
太多了,以下给出0-100的部分:
给出几个比较重要的值列表:
0 | 0.25 |
2 | 0.078125 |
23 | 0.00968354926584 |
302 | 9.90377764121e-06 |
595 | 9.85517079055e-09 |
1502 | 6.93889390391e-18 |
1503 | 0 |
也就是说Jacabi方法到1502次update后,在当前精度下无法继续提高了。
程序的特性code
通过运算得出,1054次update后,Gauss-Seidel方法继续提高了,结果得到的等势图完全形同,对比二者的update图形,发现刚开始Jacobi方法接近速度快,但update到一定次数后,Gauss-Seide方法接近结果更快,最终Gauss-Seide先到达所需结果。对比图如下:
课本。