Maximas finden



  • Hallo zusammen,
    ich will die lokalen Maximas von x - y Werten ermitteln es sind insgesamt 250 x-Werte dazugehörige 250 y-Werte, Werte sind schwankend
    z.B.
    x y
    40000 200 --> x[0] und y[0]
    40100 50 --> y[1] und y[1]
    40200 430...

    Ich möchte nur Werte ab einen y-Wert von über 1500 betrachten. Wie kann ich das am geschicktesten machen? Ich möchte auch Maximas ermitteln (x- und y-Werte der Maximas abspeichern) die zwischen zwei Maximas nicht unter 1500 fallen. Das größte Maxima ist leicht zu ermitteln, aber andere, die nicht so groß sind, find ich nicht so leicht.
    Könnt ihr mir irgendwie weiterhelfen? Ich will auch Maximas ermitteln, die z.B. y[150] = 143, y[151] = 2433, y[152] = 124 haben, also nur kurz über 1500 sind.

    Wert_zuvor = 0;
    for (i=0;i<=249;i++)
    if (y[i]>1500 && y[i] > Wert_zuvor){
    Wert_zuvor = y[i];
    max_value = y[i];
    Position = i;
    }
    Danke im voraus
    Servus
    Grabl



  • Schleife über alle y-Werte:

    wenn y[i-1] < y[i] und y[i] > y[i+1] und y[i] > 1500 => Maximum
    ?



  • naja, so leicht is es auch wieder nicht... 🙂



  • Ich wollte es irgendwie so machen...
    dass min 3 Werte zum Maxima aufsteigend sind und 3 Werte vom Maximum weg abfallend sind um sicherzustellen, dass es wirklich ein Maximum ist. Und wenn nur kurzzeitig ein Maximum ist von z.B. 123 -> 2345 --> 234 will ich es erkennen können, aber gesondert abspeichern



  • grabl1 schrieb:

    Hallo zusammen,
    ich will die lokalen Maximas von x - y Werten ermitteln

    Wie definierst du das Maximum?


  • Mod

    grabl1 schrieb:

    Ich wollte es irgendwie so machen...
    dass min 3 Werte zum Maxima aufsteigend sind und 3 Werte vom Maximum weg abfallend sind um sicherzustellen, dass es wirklich ein Maximum ist. Und wenn nur kurzzeitig ein Maximum ist von z.B. 123 -> 2345 --> 234 will ich es erkennen können, aber gesondert abspeichern

    wenn y[i-3]<y[i-2] und y[i-2]< y[i-1] und y[i-1] < y[i] und y[i] > y[i+1] und y[i+1]>y[i+2] und y[i+2]>y[i+3] und y[i] > 1500 => (ganz komisch definiertes) Maximum
    ?



  • Wenn das Messwerte sind, dann solltest du die Rohdaten erstmal vorverarbeiten, z.B. glaetten. Es ist auch hilfreich zu wissen, woher diese stammen und wofuer du die Daten/Maxima verwenden willst.


  • Mod

    Mal als Gegenfrage: Hast du eher ein Problem damit, dass du gar nicht weißt, wie du Maximas sinnvoll definieren sollst? Hast du Probleme damit, zu einer Definition einen passenden Suchalgorithmus zu entwickeln? Oder hast du Probleme damit, einen Algorithmus in C umzusetzen?



  • maximum - das Größte
    maxima - die Größten (Mehrzahl von maximum)

    Wem das zu blöd klingt, der kann ja einfach die eingedeutschen "Maximalwerte" stattdessen verwenden.

    Sorry, das musste sein 🙂

    "Ein Spaghetti" lasse ich mir ja als eingedeutsches Importnationalgericht der Miracoli-Generation noch eingehen, aber es gibt auch schöne Deutsche Wörter wie "Höchstwert" statt Maximum...
    🤡

    Zum Thema trage ich lieber nichts bei - da gibts hier viel viel bessere als mich 🙂



  • ChrisIT schrieb:

    aber es gibt auch schöne Deutsche Wörter wie "Höchstwert" statt Maximum...

    Wie definierst du den Höchstwert?



  • #define HOECHSTWERT "Maximas"
    ...
    😃



  • Die Ausführungen des Autors deute ich übrigens in etwa wie folgt:

    Folgen 3 Wert-Erhöhungen aufeinander, ist die dritte Steigerung als Maximum anzusehen. Andernfalls will er den Wert, der größer als der vorherige war vermerken und das nächste "Maximum" nach seiner Definition suchen. Analog dazu mit den Minima.

    Ich gehe mal davon aus, dass die "vermerkten" Werte dann als Abgleich verwendet werden, ob das angebliche Maximum auch wirklich nicht schon einmal von einem "kurzfristigen Höchstwert" (ohne 3 aufeinander folgende Wert-Erhöhungen) übertroffen wird.

    kleines Beispiel:

    1 - 9 - 3 - 12 - 17 - 5 => 17 ist das Maximum
    1 - 25 - 2 - 15 - 22 => 25 ist der höchste Wert, aber laut Definition ja kein Maximum, das wäre 22 - aber halt nur, wenn es kein 25 gäbe ;o)

    Also ganz klar ist mir die Sache wohl noch nicht 🙂 Realisierbar wäre die Abprüfung nach dem "Maximum" mit verschachtelten Schleifen...


Anmelden zum Antworten