Es gibt ein nichtlineares dynamisches System x_n = f(x_n,eta)
, dessen funktionale Form x[n+1] = 2*x[n] mod 1
ist. Dies ist ein chaotisches dynamisches System, das als die Sägezahnkarte oder die Bernoulli-Karte bezeichnet wird. Ich stehe vor der Schwierigkeit, die beiden durch Gleichung (4) und Gleichung (5) gegebenen Darstellungen der inversen Abbildung zu implementieren. Es folgt eine kurze Beschreibung des Problems.Matlab: Konnte keine eindeutigen Begründungen erhalten, wenn eine Formel für die Umwandlung von binären in reelle Zahlen implementiert wurde. Part1
wo die Sequenz (s[n+k])_k=1 to N-1
ist die symbolische Beschreibung des Zustandes x[n].
Diese Beschreibung ergibt sich aus der Unterteilung des Einheitsintervalls nachfolgend beschrieben.
Lassen Sie, die Anzahl der Partitionen M = 2 und das Symbol space = {0,1} und die Regel für die Zuordnung von Symbolen ist
s[n+1] = 1 if x[n] >= 0.5, otherwise s[n+1] = 0
Autoren dieses Papiers:
Linear, Random Representations of Chaos
Für Gleichung (5) Ich bekomme nicht die gleiche Zeitreihe nach Inverse, nur wenige Werte unterscheiden sich nach der Umwandlung von Binär zu Real. Kann mir bitte jemand die richtige Prozedur geben?
Ich habe versucht, die bijektive Karte für die Gleichungen (4) und (5) zu implementieren, aber es funktioniert nicht.
Code für Eq (5) - Ich bin binarisieren in 2 Möglichkeiten. x
enthält die reellen Zahlen; s
ist das binäre Äquivalent von 0/1 von jedem Real; y
ist die Antwort nach der Umwandlung s
in real. s1 ist das + 1/-1-Binäräquivalent von x; b ist die Antwort nach der Umwandlung in Real. In diesem Fall von + 1/-1, wenn ich von symbolischer Darstellung in reell umwandle, wechsle ich -1 mit 0 und wende dann die Formel in Gl (5) an. Aus den Antworten ist ersichtlich, dass y
und b
nach der Konvertierung nicht mit x
identisch sind. Ich bekomme auch negative Reals für b, wenn die ursprünglichen Reals alle unsigned rationals sind !! Wie kann ich korrekt implementieren, so dass sie beide gleich sind?
N =10;
x(1) = 0.1;
for i =1 : N
x(i+1) = mod(x(i)*2, 1);
end
y = x;
s = (y>=0.5); %generate 0/1 logicals
for n = 1: N
y(n) = 0.5*s(n+1) + 0.5*y(n+1);
end
b=x;
s1 = 2*(b>=0.5)-1; %Generate +1/-1
for k =1: N
if s1(k)== -1
s1(k) = 0;
end
b(k) = 0.5*s1(k+1) + 0.5*b(k+1);
end
Let x =
0.100000000000000 0.200000000000000 0.400000000000000 0.800000000000000 0.600000000000000 0.200000000000000 0.400000000000000 0.800000000000001 0.600000000000001 0.200000000000003 0.400000000000006
y =
0.100000000000000 0.200000000000000 0.900000000000000 0.800000000000000 0.100000000000000 0.200000000000000 0.900000000000000 0.800000000000001 0.100000000000001 0.200000000000003 0.400000000000006
b =
-0.400000000000000 0.700000000000000 0.900000000000000 -0.200000000000000 -0.400000000000000 0.700000000000000 0.900000000000000 -0.199999999999999 -0.399999999999999 -0.299999999999997 0.400000000000006
Gemäß Gleichung 4 steigt "k" von "n" auf "n + N-1". Also verwendet '\ beta_inverse (s_n)' 's_n'? Wie? Ich glaube auch nicht, dass es 's (9), ..., s (1)' verwendet. Eine andere Sache, müssen wir die ganze Frage lesen, um zu antworten? –
S_n ist ein Vektor von n Symbolen und Sie haben Recht, S_10 verwendet s_10, s_11 und so weiter. Zum Beispiel S = beta (binär_von_x) = beta (0,101) = 0,01 – SKM
Es gibt zu viele große Änderungen in Ihren Fragen OP, oft nachdem Antworten gegeben wurden. Dies ist die Nummer sechs, wenn der Speicher ordnungsgemäß funktioniert. Wenn ich Zeit habe, werde ich versuchen, diese einem Moderator zu melden. In der Zwischenzeit bitte ich von solchen wichtigen Änderungen ab. Wir behalten uns vor, Fragen in der Form zu behandeln, in der sie gestellt wurden, es sei denn, es liegen mildernde Umstände vor. – halfer