Matlab:熵与数字化代码长度的关系图

时间:2016-05-24 18:56:43

标签: matlab while-loop do-while entropy

[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

1 个答案:

答案 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),迭代会再次跳过它,你会回到以前遇到的问题。