[关闭]
@newton2ndlaw 2016-05-26T20:15:52.000000Z 字数 1664 阅读 896

Homework 13

张琦 2013301510086


一、摘要

第十三次作业

选择5.7,利用pyhton解决偏微分方程问题。


二、背景介绍

电势在空间中的分布服从拉普拉斯方程,利用数值算法可以解出该方程的解。


三、正文

1.作业5.7题

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)为:


考虑二维问题方程为:

Jacobi方法:

simulataneous over-relaxation (SOR)方法:


根据以上递推公式,即可使用python编写程序。所有数值单位均为国际单位制。


2.测试程序,Jacobi算法

程序的特性code

选取31*31个参考点,update次数为10次、100次、1000次。

效果图:


可以看出100次与1000次update的差别已经不大了,因此下一个程序使用数值来判断每次update对结果的影响。


3.具体分析每次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后,在当前精度下无法继续提高了。


4.分析Gauss-Seidel算法

程序的特性code

通过运算得出,1054次update后,Gauss-Seidel方法继续提高了,结果得到的等势图完全形同,对比二者的update图形,发现刚开始Jacobi方法接近速度快,但update到一定次数后,Gauss-Seide方法接近结果更快,最终Gauss-Seide先到达所需结果。对比图如下:



四、结论


五、致谢

课本。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注