Matlab:熵与数字化代码长度的关系图
Matlab : Plot of entropy vs digitized code length
[帐篷地图][1]是一个时间离散的动力系统。映射的迭代产生时间序列。
当使用阈值 = 0.5 以 0/1 离散化该系统的熵时,H = log_2(2) = 0.69 大约。我想获得一个以 Y 轴为熵,以 X 轴为样本数或时间序列长度的图表。我写了一个代码,通过改变时间序列的长度来获得熵。 objective 是为了查看离散化时间序列的长度,我得到熵 H。然而,代码无限循环,永远不会达到熵值 H。有人可以帮忙获取图表吗?谢谢。
[1]: https://en.wikipedia.org/wiki/Tent_map
你是说 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),迭代将再次跳过它,您将回到之前遇到的问题。
[帐篷地图][1]是一个时间离散的动力系统。映射的迭代产生时间序列。
当使用阈值 = 0.5 以 0/1 离散化该系统的熵时,H = log_2(2) = 0.69 大约。我想获得一个以 Y 轴为熵,以 X 轴为样本数或时间序列长度的图表。我写了一个代码,通过改变时间序列的长度来获得熵。 objective 是为了查看离散化时间序列的长度,我得到熵 H。然而,代码无限循环,永远不会达到熵值 H。有人可以帮忙获取图表吗?谢谢。
[1]: https://en.wikipedia.org/wiki/Tent_map
你是说 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),迭代将再次跳过它,您将回到之前遇到的问题。