Gibts dafür ne Lösung? (art optimierung)



  • Hallo!

    Beim bwinf gabs dieses Jahr ne Aufgabe, die in etwa so war:

    A   H   M
    1   3   5
    2   1   6
    ... ... ...
    

    Die Ausgabe war im Groben, 3 Zahlen f1, f2, f3 zus bestimmen, damit diese GLeichung möglichst gut erfüllt ist:

    Af1 + Hf2 = Mf3

    gut erfüllt bedeutet, dass Af1+Hf2 möglichst genau Mf3 sein soll, und das bei allen Zeilen in der Tabelle.

    Eine Lösung is Brute-Force, is klar :xmas2:
    Gibts dafür auch mathematische Gleichungen, um die 3 Faktoren auszurechnen? Wenn ja, wie heißt die, wonach muss ich suchen und wo find ich am besten die Herleitung dafür?

    Gruß, Maxi



  • Was bedeutet denn "möglichst gut passen"? Reicht es dafür, wenn

    (A1 f1 + H1 f2 - M1 f3) + (A2 f1 + H2 f2 - M2 f3) + ... + (An f1 + Hn f2 - Mn f3)

    minimal wird, oder welche Kriterium liegt da vor?



  • naja, es die summe der fehler (also die beträge) sollen minimal werden. Ich habs mir mitm Quadrat der fehler hergeleitet, aber hab dabei einen fehler gemacht, aber es kommt das richtige raus komischerweise. Deswegen woill ich ja die richtige herleitung haben...
    also die summe der abweichungen sollte möglichst klein sein



  • bei der Aufgabe gab es folgende Kriterien:
    - die Abweichungen sollten möglichst gering sein
    - die Faktoren sollten möglichst klein sein
    - 3 Messergebnisse durften als "Fehlmessungen" ausgeschlossen werden

    Mir ist auch nichts anderes eingefallen als das BruteForce zu machen. In den nächsten Tagen sollten ja die Ergebnisse kommen, dann sehen wir ja, obs gereicht hat...



  • Du könntest dir mal "Multilineare Regression" oder "Gaussapproximation" angucken.



  • Ich habs auch mit multilinearer Regression gemacht. Unter http://de.wikibooks.org/wiki/Mathematik:_Statistik:_Regressionsanalyse#Multiple_Regression finden sich ausreichende Informationen.

    Interpretiert man die ersten zwei Spalten als Eingabematrix X und und die dritte Spalte als Ausgabevektor y, so ergibt sich der zweidimensionale Parametervektor p als
    p = (XT😵-1XTy
    Splittet man die Inversion auf (Komplementäre durch Determinante), kann man Rundungsfehler minimieren mit:
    p = (XT😵#XTy/det(XT😵
    Da es sich immer um zwei Spalten handelt, kann man die Rechnung stark vereinfachen. (XT😵# lässt sich in einer Schleife über alle Zeilen berechnen, und auch die anschließende Multiplikation mit X und y lässt sich zusammenfassen. Hab den Quelltext jetzt nicht hier, da ich nicht zuhause bin. Im Ausgabevektor p sind schließlich die Parameter der Regressionsebene enthalten (f1/f3 bzw. f2/f3). Diese muss man dann nur noch geschickt erweitern um drei vernünftige ganzzahlige Parameter ausgeben zu können.

    MfG D1B


Anmelden zum Antworten