のエントロピー推定にヘルプ私は離散化バージョン(0/1)である確率変数のエントロピーを計算したいMatlab : Plot of entropy vs digitized code lengthMatlabの:この質問は、前のものに継続しているdisretized時系列
を尋ねたの連続ランダム変数x
。確率変数は、Tent Mapと呼ばれる非線形力学系の状態を示す。テントマップを反復すると、長さNの時系列が得られます。
離散化された時系列のエントロピーが動的システムのエントロピーに等しくなるとコードは終了します。理論的には、システムのエントロピーはlog_2(2)であることが知られている。コードは終了しますが、エントロピー配列のfrst 3の値は誤りです - entropy(1) = 1, entropy(2) = NaN and entropy(3) = NaN
。私はなぜこれが起こっているのか、どうやってそれを取り除くことができるのか、頭を悩ましています。コードの修正にお役立てください。ありがとうございました。
clear all
H = log(2)
threshold = 0.5;
x(1) = rand;
lambda(1) = 1;
entropy(1,1) = 1;
j=2;
tol=0.01;
while(~(abs(lambda-H)<tol))
if x(j - 1) < 0.5
x(j) = 2 * x(j - 1);
else
x(j) = 2 * (1 - x(j - 1));
end
s = (x>=threshold);
p_1 = sum(s==1)/length(s);
p_0 = sum(s==0)/length(s);
entropy(:,j) = -p_1*log2(p_1)-(1-p_1)*log2(1-p_1);
lambda = entropy(:,j);
j = j+1;
end
plot(entropy)
こんにちは。回答が入った後で、あなたの質問を削除したり、実質的に変更したり、破壊したりしないでください。あなたの最後の編集の目的がわかりません。それをロールバックした。 – halfer