2016-05-24 9 views
0

[Zeltkarte] [1] ist ein dynamisches System, das in der Zeit diskret ist. Iterationen der Karte ergeben eine Zeitreihe.Matlab: Diagramm der Entropie gegen digitalisierte Codelänge

Die Entropie dieses Systems, wenn es in 0/1 mit einer Schwelle = 0,5 diskretisiert wird, ist H = log_2 (2) = 0,69 approx. Ich möchte ein Diagramm mit Y-Achse als Entropie und X-Achse als die Anzahl der Proben oder die Länge der Zeitreihe erhalten. Ich habe einen Code geschrieben, um die Entropie zu überprüfen, indem ich die Länge der Zeitreihe variiere. Das Ziel ist es zu sehen, mit welcher Länge der diskretisierten Zeitreihe die Entropie H erhalten wird. Der Code läuft jedoch unendlich und erreicht nie den Entropiewert H. Kann jemand bitte helfen, den Graphen zu erhalten? Vielen Dank.

[1]: https://en.wikipedia.org/wiki/Tent_map 

Antwort

1

Sie sagen, dass lambda muss log(2) GENAU gleich sein. Wenn die Entropie unter log(2) fällt, überspringt sie diesen Wert (zum Beispiel statt genau log (2) ist vielleicht eine Iteration 0,69309, was weniger ist). Versuchen Sie, die Linie ersetzt

while(lambda ~=H) 

mit

tol=0.01; 
while(~(abs(lambda-H)<tol)) 

Dies bedeutet, dass immer dann, wenn es beendet wird lambda zu H Nähe (mit in der Toleranz tol).

Wenn Ihr tol zu klein ist (Versuch 0,001), würde eine Iteration wieder darüber springen und Sie wären zurück zu dem Problem, das Sie vorher hatten.

+0

Nur FYI, ich habe das auf meiner Maschine getestet. Das Ausführen des Codes mit meinen Änderungen wird beendet, wie Sie es möchten, aber ich habe nicht überprüft, dass die Ergebnisse physisch sind. Fröhliche Codierung/Physik! – chessofnerd

+0

Vielen Dank für Ihre Antwort. Wenn ich den mit Ihrer Antwort korrigierten Code ausspreche, wird Code manchmal beendet, wenn j = 174, und wenn ich ihn erneut leite, dauert es einige Minuten, in welchem ​​Fall j einige Millionen ist. Was ist die beste Vorgehensweise in diesem Fall, damit ich einen stabilen Wert des Zählerwerts erhalten kann, j. Könnten Sie bitte auch den Befehl plot anzeigen, um den Graphen zu erhalten? Danke – SKM

+0

ALso enthalten die ersten 2 Werte des Entropie-Arrays die meiste Zeit NaN, d.h. Entropie (1) = 1, Entropie (2) = NaN, Entropie (3) = NaN. Können Sie mir bei der Lösung dieser Probleme helfen? – SKM