[Tent Map] [1]是一个在时间上离散的动态系统。地图的迭代产生时间序列。
当使用阈值= 0.5在0/1中离散时该系统的熵是,H = log_2(2)= 0.69。我想获得一个图表,其中Y轴为熵,X轴为样本数或时间序列长度。我已经编写了一个代码,用于通过改变时间序列的长度来获取熵。目标是看到离散时间序列的长度,我得到熵H.然而,代码无限循环并且永远不会达到熵值H.有人可以帮助获得图形吗?谢谢。
[1]: https://en.wikipedia.org/wiki/Tent_map
答案 0 :(得分:1)
您说lambda
必须完全等于log(2)
。当熵下降到log(2)
以下时,它会跳过这个值(例如,而不是精确的log(2),可能迭代次数为0.69309,这是更少)。尝试更换行
while(lambda ~=H)
与
tol=0.01;
while(~(abs(lambda-H)<tol))
这意味着只要lambda
接近H
(公差为tol
),它就会退出。
如果你的tol
太小(尝试0.001),迭代会再次跳过它,你会回到以前遇到的问题。