Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Sep 04, 2025 00:13

Foren-Übersicht » Programmierung » Mathematik-Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Graph mit Durchschnitt und Tendenz
BeitragVerfasst: Mi Nov 17, 2010 10:56 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Hallo zusammen,

ich versuche im Moment einen Graphen mit völlig wahllos vergebenen Werten zu analysieren.
Den Durchschnitt bzw. das arithmetische Mittel zu berechnen ist nicht schwer. Das gibt eine Konstante f(x) ≡ a.
Ich möchte gerne aber auch die Tendenz erfassen, sofern das überhaupt der richtige Begriff dafür ist.
Es soll also eine Gerade mit einer gewissen Steigung herauskommen. Die Steigung soll angeben wie sich der Graph in Zukunft verhalten könnte. siehe Anhang.

Kann mir da jemand einen Tipp geben, wo man da ansetzt? Das arithmetische Mittel aller Steigungen?

gruß
damadmax


Dateianhänge:
graph.png
graph.png [ 21.17 KiB | 6062-mal betrachtet ]

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next
Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Nov 17, 2010 11:11 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Wenn du eine Tendenz benötigst kommen die Daten sicher laufend als Stream rein, oder?

Was hältst du von einem MovingAverage-Ansatz? Das sieht dann so aus:
Dateianhang:
Dateikommentar: Quelle: http://de.wikipedia.org/wiki/Exponentielle_Gl%C3%A4ttung
841f946bad9d567b4054b3ddb9918811.png
841f946bad9d567b4054b3ddb9918811.png [ 837 Bytes | 6059-mal betrachtet ]

Bei Wikipedia steht das unter Exponentielle Glättung.
Also du nimmst immer den letzten MovingAverage-Wert y* den du hast und machst eine lineare Interpolation mit dem aktuellen Wert. alpha wäre dabei in der Gegend von 0.1, abhängig davon wie abhängig von der Vergangenheit dein MovingAverage sein soll. Vorteil: Wenn ein neuer Datenwert reinkommt musst du nicht alles neu berechnen.

Um nun deine Tendenz zu berechnen könnte man einen MovingAverage-Wert der Differenzen (= Steigung) berechnen. Da kannst du dann über Alpha einstellen wie Empfindlich das sein soll.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Nov 17, 2010 11:29 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Was ich in dem Umfeld immer mal gern gehabt hätte aber was wohl nicht ohne ne Menge rechnerrei und zwischenschritte abgeht, ist die Bestimmung von "Ausreisern" /ungewöhliche Abweichungen.
Sowas wäre sinnvoll um Messfehler zu bestimmen aber auch wenn man bei "ai-Contest" (siehe Off-Topic Forum) die Position des Gegners feststellen will und einzelne abgelegene Planeten nicht/besonders behandeln will.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Nov 17, 2010 13:48 
Offline
DGL Member

Registriert: Mo Aug 31, 2009 13:19
Beiträge: 151
Wieso geht das nicht ohne großen Rechenaufwand?
Durchschnitt aus allen Werten bilden, Differenz aus allen Werten und dem Durchschnitt bilden, und die Ursprungswerte, die eine große Abweichung vom Durchschnitt aufweisen ignorieren. Die kann man dann z.B. aus ner Liste werfen und die restlichen Werte neu mitteln...
Um Fehler bei Mittelwerten zu quantifizieren benutzt man doch auch die Wurzel aus der Summe der quadratischen Abweichungen.
Wenn du die Werte von vornherein alle gegeben hast, und eine Regressionsgerade da durch legen willst ist das btw. auch der Weg, den du einschlagen solltest: Die Summe der quadratischen Abweichungen zwischen allen Punkten f(x) auf deiner Gerade und den entsprechenden Punkten p(x) aus deinen "Messwerten" sollte minimal sein. Unter der Prämisse kriegst du mit ein wenig Rechnerei eine Steigung und einen Achsenabschnitt heraus.

P.S.: Fehlerrechnung hab ich immer gehasst :D


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Nov 17, 2010 23:32 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Vielen Dank für die Antworten.

Die Exponentielle Glättung sieht schonmal richtig schick aus (mit einem alpha von 0.15):


Dateianhänge:
graph_moving_average.png
graph_moving_average.png [ 22.2 KiB | 6020-mal betrachtet ]

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next
Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Mathematik-Forum


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.011s | 16 Queries | GZIP : On ]