Zitat von
brinkee:
Liebe Community,
ich bastle zur Zeit an einem Programm, mit dem man eine mulivariate Regression für Dosis-Wirkungs-Kurven durchführen kann, also für logistische, sigmoidale Funktionen. Das mache ich mit der Methode der kleinsten Quadrate, was auch hervorragend funkioniert. Allerdings habe ich ein Geschwindigkeitsproblem: Bei vier unabhängigen Parametern, die die zu approximierende Funktion beschreiben, ergeben sich nach meiner iterativen Methode vier geschachtelte While-Schleifen... Die Berechnung dauert fast eine Minute.
Jetzt kommt meine Frage an Euch: wie kann ich das Ganze soweit optmieren, dass das Ganze nicht so lange dauert?
...
Hallo,
da bleibt nur durchzuflöhen, wo eine Berechnung durch eine schnellere Version ersetzt werden kann, und zu prüfen, ob etwas mehr als einmal berechnet wird, was man auch speichern könnte.
Was mir so auf den ersten Blick auffällt:
Power (...,2) ist sehr ungünstig, x^2 berechnet man am besten als x * x.
Wenn AsFloat ein gespeicherter Wert ist, ok, wenn es eine Funktion ist, sollte man den Wert gleich beim Speichern miterzeugen und in einem Feld abspeichern, damit nicht bei jedem Zugriff berechnet werden muss.
Grundsätzlich kann man prüfen, ob Fliesskomma nötig ist. Bei entsprechenden Daten könnte man auch z.B. mit Festkomma rechnen (also mit Integer rechnen und entsprechend interpretieren).
Gruss Reinhard