Wie setzte ich die rekursive gleitende Mittelwertformel in C++ um(Mathematisches Problem)? Ich glaube, ich habe da einen Denkfehler?
Das ist die besagte Formel:
Nun wollte ich das so umsetzten, dass ich anfangs einen Ringspeicher habe, der mit Nullen befüllt ist, z.B bei N = 5 wäre das Array 'arr' = [0, 0, 0, 0, 0]. So weit so gut.
Nun setze ich eine Variable x̄_temp = 0, welche den zuvor berechneten gleitenden Mittelwert hält.
Wenn ich nun die Formel beim ersten Durchlauf anwenden möchte, stoße ich auf folgendes Problem. Berechnen will man x̄_0+1 = x̄_1. Man stell die Formel so um, dass sich 'x̄_i - (x_(i-N+1 + x_(i+1))/N' ergibt. Nun setze ich meine Anfangswerte ein:
x̄_0 - (x_(0-5+1) + x_(0+1)/5 = 0 - (x_(-4) + x_1)/5.
Mittels Modulo greife ich auf den Ringspeicher zu, doch da scheint schon etwas nicht so zu klappen, wie ich mir das vorgestellt habe.
x_(-4) ist der Wert, welcher sich am Index 1 im Array befindet, da 0->5->4->3->2. x_1 ist aber auch der Wert, der sich am Index 1 im Array befindet, da 0->1...
Was genau mache ich da falsch?