Skip to main content

C Code Exponentiell Gleitender Durchschnitt


Ich weiß, dies ist erreichbar mit Boost wie pro: Aber ich möchte wirklich vermeiden, mit Boost. Ich habe gegoogelt und keine geeigneten oder lesbaren Beispiele gefunden. Grundsätzlich möchte ich den gleitenden Durchschnitt eines laufenden Stroms eines Gleitkommazahlstroms mit den letzten 1000 Zahlen als Datenprobe verfolgen. Was ist der einfachste Weg, um dies zu erreichen, experimentierte ich mit einem kreisförmigen Array, exponentiellen gleitenden Durchschnitt und einem einfacheren gleitenden Durchschnitt und festgestellt, dass die Ergebnisse aus dem kreisförmigen Array meine Bedürfnisse am besten geeignet. Wenn Ihre Bedürfnisse sind einfach, können Sie nur versuchen, mit einem exponentiellen gleitenden Durchschnitt. Setzen Sie einfach, Sie eine Akkumulator-Variable, und wie Ihr Code sieht auf jede Probe, aktualisiert der Code den Akkumulator mit dem neuen Wert. Sie wählen eine konstante Alpha, die zwischen 0 und 1 ist, und berechnen Sie: Sie müssen nur einen Wert von Alpha zu finden, wo die Wirkung einer gegebenen Probe nur für etwa 1000 Proben dauert. Hmm, Im nicht wirklich sicher, dass dies für Sie geeignet ist, jetzt, dass Ive es hier. Das Problem ist, dass 1000 ist ein ziemlich langes Fenster für einen exponentiellen gleitenden Durchschnitt Im nicht sicher, gibt es ein Alpha, die den Durchschnitt über die letzten 1000 Zahlen, ohne Unterlauf in der Gleitkomma Berechnung. Aber, wenn Sie einen kleineren Durchschnitt wünschen, wie 30 Zahlen oder so, dieses ist eine sehr einfache und schnelle Weise, es zu tun. Beantwortet Jun 12 12 at 4:44 1 auf Ihrem Beitrag. Der exponentielle gleitende Durchschnitt kann zulassen, dass das Alpha variabel ist. Somit kann dies dazu verwendet werden, Zeitbasisdurchschnitte (z. B. Bytes pro Sekunde) zu berechnen. Wenn die Zeit seit dem letzten Akkumulator-Update mehr als 1 Sekunde beträgt, lassen Sie Alpha 1.0 sein. Andernfalls können Sie Alpha zulassen (usecs seit letztem Update / 1000000). Ndash jxh Grundsätzlich möchte ich den gleitenden Durchschnitt eines laufenden Stroms eines Gleitkommazahls mit den neuesten 1000 Zahlen als Datenbeispiel zu verfolgen. Beachten Sie, dass im Folgenden die Summe als Elemente ergänzt / ersetzt wird, wodurch kostspielige O (N) - Transversionen vermieden werden, um die Summe zu berechnen, die für den durchschnittlichen Bedarf benötigt wird. Insgesamt wird ein anderer Parameter von T gebildet, um z. B. Mit einer langen langen, wenn insgesamt 1000 lange s, eine int für char s, oder eine doppelte bis total float s. Dies ist ein wenig fehlerhaft, dass Nennsignale an INTMAX vorbeiziehen könnten - wenn Sie darauf achten, dass Sie ein langes langes nicht signiertes verwenden konnten. Oder verwenden Sie ein zusätzliches Bool-Datenelement, um aufzuzeichnen, wenn der Container zuerst gefüllt wird, während numsamples rund um das Array (am besten dann umbenannt etwas harmlos wie pos). Man nehme an, daß der quadratische Operator (T-Abtastwert) tatsächlich quadratischer Operator (T-Abtastwert) ist. Ndash oPless Jun 8 14 um 11:52 Uhr oPless ahhh. Gut beobachtet. Eigentlich meinte ich, dass es sich um void operator () (T sample) handelt, aber natürlich könntet ihr auch irgendeine Notation verwenden, die ihr mochtet. Wird beheben, danke. Ndash Tony D Ich bin nicht sicher, der richtigen Lösung aber seit Summierung der Durchschnitt jeder Probe würde eine angemessene Menge von Rundungsfehler führen. Hmm Ich frage mich, wenn die Trennung der gebrochenen Teil aus dem ganzen Teil helfen würde. Teilen Sie den ganzen Teil jeder Zahl durch den Zähler. Halten Sie drei laufende Summen: 1) der Durchschnitt der ganzen Teile, 2) der Rest von jeder Division und 3) der Bruchteil einer jeden Zahl. Jedes Mal, wenn der ganze Teil einer Zahl geteilt wird, wird das gesamte Teilergebnis zu der durchschnittlichen laufenden Summe addiert, und der Rest wird zu der verbleibenden laufenden Summe addiert. Wenn die verbleibende laufende Summe einen Wert größer oder gleich dem Zählwert erhält, wird sein dividiert durch die Zählung mit dem gesamten Teilergebnis zu der durchschnittlichen laufenden Summe addiert, und der Rest wird zu der restlichen laufenden Summe addiert. Auch wird bei jeder Berechnung der Bruchteil zur Bruchlaufsumme addiert. Wenn die Mittelung beendet ist, wird die verbleibende laufende Summe durch die Zählung geteilt, und das Ergebnis wird der durchschnittlichen laufenden Summe als eine fließende Zahl hinzugefügt. Zum Beispiel: Nun, was mit der fraktionalen laufenden Summe zu tun. Die Gefahr des Überlaufs ist hier viel weniger wahrscheinlich, obwohl es immer noch möglich ist, so dass man damit umgehen würde, wäre es, die gebrochene laufende Summe durch den Zähler am Ende zu teilen und es zu unserem Ergebnis hinzuzufügen: Eine Alternative wäre, den fraktionalen Betrieb zu überprüfen Summe bei jeder Berechnung, um zu sehen, ob sie größer oder gleich count ist. Wenn das passiert, tun Sie einfach das Gleiche, was wir mit der restlichen Summe machen. Excellent Jomit Vaghela 6-Mar-07 21:00 Ich mochte, was Sie gesagt haben kleine Jobs schnell zu großen Arbeitsplätzen. Denken an Optimierung während Codierung ist eine gute Praxis. Vielen Dank Mike DiRenzo 5-Mar-07 16:26 Dies ist das erste Mal, dass ich auf einen Ihrer Artikel reagiert haben. Ich bin aber ein sehr begeisterter Leser. Während des Studiums musste ich gewichtete gleitende Durchschnitte und einfache auch berechnen. Heck, hatte ich sogar einige meiner eigenen gleitenden durchschnittlichen Algorithmen in einer benutzerdefinierten ERP-Implementierung vor einiger Zeit auf der Grundlage einiger der gleichen Formeln, die ich in Operations 101 gelernt zu schaffen. Aber diese Umsetzung, mit Generika, weit überwiegt alles in Bezug auf die Optimierung, Einfachheit und verdammt richtige Coolness. Vielen Dank dafür. Einer Ihrer vielen Fans, In Ruhe und Stille, die Wahrheit wird klar. Ewma gobgob 5-Mar-07 5:30 Wenn Ihr versuchen, einen einfachen gleitenden Durchschnitt zu berechnen, müssen Sie eine Sammlung zu halten, die sehr komplex für eine solche einfache Aufgabe ist. Wie wäre es mit einem ewma Seine 2 Zeilen Code, viel einfacher. Re: ewma Marc Clifton 5-Mar-07 5:47 Wie wäre es mit einer ewma Interessante Idee. Für Leser, die nicht wissen, was ein ewma ist, ist es ein exponentiell gewichtet Moving Average. Die Leute sind nur notorisch unmöglich. --DavidCrow Theres Keine Entschuldigung für nicht kommentieren Ihren Code. - John Simmons / outlaw Programmierer Leute, die sagen, dass sie ihren Code später umgestalten, um es gut zu machen nicht verstehen Refactoring, noch die Kunst und Handwerk der Programmierung. - Josh Smith Re: ewma pwasser 5-Mar-07 13:21 Eine Schätzung des gleitenden Mittelwertes, wenn die Behältergröße für den gleitenden Durchschnitt n ist, kann erhalten werden durch: NewAverage (((n-1) OldAverage) newValue) / n Dies funktioniert, sobald der Behälter voll ist (Probennummer n). Der Behälter, der teilweise voll ist, wird häufig behandelt, indem ein Samenwert für den anfänglichen gleitenden Durchschnitt (OldAverage) verwendet wird und dann diese Berechnung verwendet wird. Dies nimmt eine normale Verteilung der Werte etc. Sie waren beschäftigt Colin Angus Mackay 4-Mar-07 12:37 Posting zwei Artikel heute Abend. Große Arbeit Ich weiß nicht, wie Sie es tun. Ive erhielt ungefähr 4 oder 5 Artikel halb fertig und ich scheine nie, die Zeit zu finden, sie zu vollenden. Gut. Vielleicht, wenn ich aus der Lounge Id verwalten. Re: Sie waren schon beschäftigt Marc Clifton 4-Mar-07 14:25 Colin Angus Mackay hat geschrieben: Posting zwei Artikel heute Abend. Große Arbeit Dank schrieb ich tatsächlich den Artikel auf dem laufenden Durchschnitt und erkannte, dass die kreisförmige Liste tatsächlich ein wirklich guter Stand-alone-Artikel wäre. Plus, sie sind leichte Artikel. Ich kann sie ziemlich schnell wegdrehen. Sein gerade hartes, an nützliches aber einfaches Material zu denken. Stellt sich heraus, ich brauchte diese beiden Klassen sowieso. Die Leute sind nur notorisch unmöglich. --DavidCrow Theres Keine Entschuldigung für nicht kommentieren Ihren Code. - John Simmons / outlaw Programmierer Leute, die sagen, dass sie ihren Code später umgestalten, um es gut zu machen nicht verstehen Refactoring, noch die Kunst und Handwerk der Programmierung. - Josh Smith Re: Sie waren beschäftigt JeffPClark 8-Mar-07 1:07 Von dem, was Ive von Marc gelesen, hat er wahrscheinlich ein Programm, das ein Stück Code untersuchen und erklären kann die komplizierten Details, dann veröffentlichen sie direkt zu Code Project . Jeff Clark Systems Architect JP Clark, INC. Columbus, Ohio Letzte Aktualisierung: 23-Dec-16 16:27 Allgemeine Nachrichten Vorschlag Frage Bug Antwort Joke Lob Rant Admin Verwenden Sie CtrlLeft / Right zu wechseln CtrlUp / Down, um die Threads zu wechseln, CtrlShiftLeft / Right, um die Seiten zu wechseln.

Comments

Popular posts from this blog

Forex Trading Coach Nz Herold

NZForex bietet eine intelligente Alternative zu den Banken bei internationalen Transaktionen. Unsere Kunden profitieren von wettbewerbsfähigen Wechselkursen, niedrigen Gebühren und der fokussierten Devisen-Kompetenz unserer akkreditierten Händler. Im Jahr 2001 gegründet, ist NZForex Teil der OzForex-Gruppe, die seit 1998 zu einem der worldrsquos größten Online-Devisen-Unternehmen gewachsen ist. Mit Geschäften in London, Sydney und Toronto, bietet NZForex internationale Geldtransfer-Dienstleistungen für Kunden auf der ganzen Welt. Im Laufe der companyrsquos-Geschichte wurde die Gruppe mit dem 6. Platz in der BRW Fast 100 und vier Mal mit einem Platz in der Deloitte Technology Fast 50 Australia ausgezeichnet. Unser anhaltendes Wachstum in Neuseeland und im Ausland hat uns zu einem bedeutenden Akteur im globalen Devisenmarkt gemacht. NZForex wird durch das Gesetz zur Regulierung und Beilegung von Finanzdienstleistern 2008 reguliert. Unsere Online-Plattform ist 128bit SSL-verschlüsselt, um...

Forex Gewinn Formel Trading System

Forex Gain Formula ist eine manuelle Trading-Strategie, die Sie verwenden können, um Gewinne aus Forex-Markt zu generieren jeden Monat. Es wurde entwickelt, um sehr einfach und sehr leistungsstark zugleich sein. Und im Gegensatz zu den meisten Trading-Systemen auf dem Markt, ist dieses System für eine lange Zeit getestet und erwies sich als rentabel, auch in den schlechtesten Marktbedingungen. Der Grund dafür ist, dass auf der Grundlage der mächtigsten Handelsmethoden wie Trendfolgen und Wellenhandel konzipiert wurde. Gleichzeitig sollte das System sehr einfach sein. Sie don8217t müssen ein erfahrener Trader sein, um es zu benutzen. In der Tat, auch wenn Sie keine Handelserfahrung überhaupt haben, würden Sie immer noch eine Menge Geld daraus machen, genau wie Profi-Händler. Es gibt viele Menschen, die sich für den Handel mit Forex, dass don8217t verstehen oder nehmen Sie sich die Zeit zu lernen, wie und warum Forex Handel. Es gibt viele Risiken im Handel jede Art von Vermögenswert, ob ...

Forex Nairobi Börse

NSEs Frauen Milliardäre gewinnen Sh2 Milliarden in sechs Monaten Frauen Aktienmarkt Milliardäre hinzugefügt fast Sh2 Milliarden zu ihrem Papier Reichtum in den vergangenen sechs Monaten Reiten die Welle der stetigen Preis Rallyes auf ausgewählten Zähler, wo sie eine Präsenz haben. Rechtsanwalt Jane Wanjiru Michuki übersteigt die Liste der großen Gewinnern, die ihr Portfolio Zunahme um Sh1.2 Milliarde vor Geschäftsfrau Jane Wangui sahen, die Sh768.9 Million gewann. Lesen Sie mehr Hold Co-op, Britam, erwägen, NBK Co-op Bank zu verlassen: In der vergangenen Woche kündigte die Genossenschaftsbank 12 Prozent Dip in ihrem Jahresüberschuss für das Gesamtjahr Dezember 2014. Dies war ein Sh1,1 Milliarden Netto Tropfen zu Sh8 Milliarde von Sh9.1 Milliarde verzeichnete das vorhergehende Jahr. Die Kontraktion der Erträge hat die Bank auf die im vergangenen Jahr durchgeführten Entlassungskosten von 160 Führungskräften zurückgeführt. Die Bank verbrachte Sh1,3 Milliarden in das Programm. Lesen Sie me...