此次计算物理作业为混沌效应的续篇
一,物理摆的吸引子
相比课本中的图,上图上半部分中多了一部分和下半部分对此的相图,看了一下代码,没看出来有啥不合适,如果老师能校正一下,麻烦写在评论区。。。
不加theta的角度限制时,从图上是看不出来有啥规律的。
之后观察周期加倍到系统混沌的行为
重复课本例子,将Fd =1.35、1.44和1.465下的theta-time图绘出:
由图可见周期关系:1:2:4
The Logistic Map
迭代公式:
由迭代公式,我们可以发现,不用数值方法时,此迭代式是一个一元二次方程,其通解 可表示为:
对于0解,其与 μ 的值无关,故之后不考虑,但我们也应发现,对于任意一个实数 μ ,除0以外应只有一解,由之后绘图发现用数值方法迭代计算时,发现结果并非如此
起始x值直接用了课本值由上图容易发现,对于 μ =2.0 图中仅一解0.5,易知其为方程另一个解;
而 μ =3.1时,方程的迭代最后出现了两个稳定值,约为0.75和0.55,而方程的另一个理论解应为0.677;
在μ =3.8时,方程迭代没有确定的稳定点出现,理论解应为0.737。
改变初始值再迭代绘图,此次将初始迭代的x值设为其理论值(差别只在小数点后有效位):
由图可见,初始值接近理论值时,迭代的前面一部分值保持在理论值附近,但当迭代次数n大了以后,迭代值开始发散,最后又稳定在上次绘图的稳定点附近了。
用图像解法时,易知原方程的解为两条曲线的交点横坐标:
由图易知,若初始值x在(0,1)之间,则迭代时会收敛到理论解,而若x初始值不在此区间则迭代会发散,不会收敛到理论解。
易看出,迭代时会发生震荡,不会收敛,进一步分析μ =3.1的图像,则有:
发现稳定点的存在,约为0.75和0.55,在这两个数值相互迭代会出现0.75→0.55→0.75→0.55→0.75→0.55的循环迭代,达到了稳定,就算迭代过程中x达到了理论值,也会因为不稳定而被跳过,由此可见用迭代法解方程的数值解法时,并不是通用的,应该研究一下迭代过程的可靠性。
由此我们也能得出μ =3.8 时,图像是因为在理论解附近无法稳定,且其稳定的值大概在一个比较大的区间内,因此出现了迭代结果的波动。
Lorenz Model
按照迭代式,绘图有:
相空间绘图:
r=20时,500000步迭代:
r=25时,500000步迭代:
r=30时,500000步迭代:
r=25时,1000000步迭代,x-z相图:
r=25时,1000000步迭代,y-z相图:
说实话,我已经看不懂了。。。
尝试画x=0和y=0时z-y和z-x相图,500000步迭代的程序判断语句有点多,电脑运行到崩溃好几次,遂改换步长,从dt=0.0001改换为dt=0.01,以求达到出现足够多x=0时的z-y相图点时的总时间t,因为运行程序时发现,要出现要求点则总时间t必须达到几十秒甚至几百秒
迭代总时间为100秒时的z-y(x=0)相图:
迭代总时间为25000秒时的z-y(x=0)相图:
总结
通过对周期加倍和Lorenz模型的思考和绘图,我对于混沌效应的理解更加混沌了。我们能看出,限制x=0(y=0)后,z-y(z-x)相图开始变得清晰简单起来,但是受限于计算机计算能力和我的编程能力,不好得到较长时间的运行结果,所以只是推断其之后的图像亦延续了这个趋势。通过这些绘图对这两个情况下的混沌效应有了一定了解,以及在某些情况下,对于要通过迭代的方法得到最终结果的话,普通欧拉方法很可能已经不适用了,应该具体考察一下以后再决定迭代的具体方式。
网友评论