计算物理第八次作业
4.19
Study the behavior of our model for Hyperion for different initial conditions. Estimate the Lyapunov exponent from calculation of
, such as those shown in Figure 4.19. Examine how this exponent varies as a function of the eccentricity of the orbit.
1 | import numpy as np |
当离心率为 0 时,可以看到这是一个非混沌的系统,从角速度图像和相空间图可以很清楚的看出这一点。下面研究一下不同离心率情况下运动情况。
1 | for e in (0.1, 0.2, 0.3, 0.4): |
直观上很容易发现随着离心率的增大系统的混沌程度迅速增加,下面我们计算一下衡量混沌程度的 Lyapunov 指数来验证一下。
1 | k = 221 |
可以发现即使对于圆轨道,其 Lyapunov 指数仍然为正的,表明这个系统即使在圆轨道情况下也是略微混沌的。随着离心率的增加,Lyapunov 指数很明显是迅速增大的,这和我们之前的感觉是一致的。
5.7
Write two programs to solve the capacitor problem of Figure 5.6 and 5.7, one using the Jacobi method and one using the SOR algorithm. For a fixed accuracy (as set by the convergence test) compare the number of iterations,
, that each algorithm requires as a function of the number of grid elements, . Show that for the Jacobi method , while SOR . (非常正经的计算机算法研究方式^_^)
为了节约时间(生命),下面的代码已经包含了 SOR 方法和 Jacobi 方法,并直接使用 SOR 方法生成电场的图像。这里 SOR 方法的加速参数
1 | import numpy as np |
下面我们计算不同
1 | n_sor = np.array([]) |
可以发现 SOR 方法的迭代次数是显著小于 Jacobi 方法的,根据曲线和拟合得到的参数可以看出 Jacobi 方法的迭代次数有