Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Polynomapproximation in VBA

Polynomapproximation in VBA
04.08.2005 10:46:18
Andreas
Hi Leute,
ich schreibe zum ersten Mal hier, habe mir aber schon viele hilfreiche Tips in diesem Forum geholt. An dieser Stelle vielen Dank für die kompetenten Antworten bei verschiedenen Problemen die andere vor mir schon hatten. Diesesmal habe ich aber leider im Archiv nichts gefunden. Ich hoffe, mir kann jemand helfen.
Ich möchte ein Polynom (2. oder 3. Ordnung) an Messdaten approximieren .
Das Problem ist im Prinzip schon längst gelöst und es gibt verschiedene Internetquellen, von denen sich der entsprechende Code herunterladen lässt (alle die ich gefunden habe führen das Problem auf ein lineares Gleichungssystem zurück und lösen dieses durch Matrizeninversion, Gauss-Verfahren).
In meinem Fall funktionieren diese Standard-Algorithmen aber nicht, da die Messdaten nur in einem sehr kleinen Intervall vorliegen. Ein Beispiel:
Approximation von y = 2,32 x^3 im Intervall 3 bis 33 mit Schrittweite 1 geht, aber dieselbe Funktion im Intervall 3 bis 3,03 mit Schrittweite 0,001 geht nicht. Ich bekomme zwar eine Lösung, diese ist aber sehr schlecht.
Das komische ist nun, dass Excel selbst die Approximation innerhalb eines Diagrammes sehr gut schafft (Trendlinie). Wie kann das sein?
Ist der Algorithmus bekannt, den Excel verwendet?
Hat jemand eine Idee, wie ich die Genauigkeit verbessern könnte? Gibt es eine Möglichkeit direkt die Routinen von Excel einzusetzen?
Herzlichen Dank im Voraus für Eure Antworten,
Andreas.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Polynomapproximation in VBA
04.08.2005 12:37:51
bst
Hallo Andreas,
Mir ist nicht ganz klar wie Du denn berechnet hast. Um ein Polynom durch 31 Wertepaare zu legen brauchst Du doch wohl eines 30. Ordnung ?
Trendlinien werden in Excel nach der Methode der kleinsten Fehlerquadrate bestimmt.
Die Koeefizienten eines 'Polynom-Trends' sollten sich mit der Funktion RGP berechnen lassen.
Du könntest bei mehreren Punkten auch Splines benutzen.
HTH, Bernd
--
http://office.microsoft.com/de-de/assistance/HP052000681031.aspx
http://www.excelformeln.de/tips.html?gruppe=1
http://www.excelformeln.de/formeln.html?gruppe=7
http://www.haw-hamburg.de/pers/Abulawi/Polynomregression.pdf
Anzeige
AW: Polynomapproximation in VBA
04.08.2005 13:02:34
Hans
Der Algorithmus ist immer der gleiche.
Das ist relativ einfach zu erklären, wenn man die Problematik von Rundungsfehlern kennt und berücksichtigt.
Bei den kleinen Schritt-Differenzen kommt es zur Rundungsfehlern (Auslöschung). Das sind meist spezielle Operationen, wo der Nenner/Multiplikator eine sehr kleine Zahl (eps) ist - nahe der Rechengenauigkeit von 15 Stellen (bei XL). Damit rutschen ungültige (unsinnige) Stellen im Ergebnis nach vorn und bei Potenzen genügen oft wenige falsche Deziumalstellen, um das Polynom-Gesamtergebnis ins Nivana zu schießen.
Vielleicht hilft es schon nach Divisionen/Multiplikationen alle Ergebnisse
|eps| &lt 1E-15
als Null zu betrachten (Null setzen)...
Gruß HW
Anzeige
AW: Polynomapproximation in VBA - Problem gelöst
04.08.2005 13:25:18
Andreas
Hi,
vielen Dank für die Antworten.
Der Tip mit RGP von Bernd (http://www.haw-hamburg.de/pers/Abulawi/Polynomregression.pdf) ist mit Abstand das beste was ich in den letzen zwei Tagen über dieses Thema gefunden habe. Vielen Dank. Das ist echt genial.
Die Approximation geht jetzt so:
y = a0 + a1 x + a2 x^2
lässt sich mit t = x^2 umschreiben zu
y = a0 + a1 x + a2 t
Auf diese Gleichung lässt sich RGP einfach anwenden, auch in VBA und das Ergebnis ist allem, was ich bisher versucht habe haushoch überlegen. Das Ergebnis ist genauso gut wie die Trendlinien in den Diagrammen. Zusätzlich kann man sich alle benötigten statistischen Größen direkt mit Excel-Bordmitteln ausgeben lassen.
Die Methode lässt sich ganz einfach und ohne Verrenkungen auf Polynome beliebiger Ordnung erweitern.
Nochmals vielen Dank für den Hinweis.
Auch an Hans vielen Dank für die Erklärung der Unterschiede zwischen den "normalen" Implementierungen der Methode und den Trendlinien in Excel.
So long, nochmals vielen Dank, das hat mich wirklich ein gutes Stück vorangebracht,
Andreas.
Anzeige
AW: Polynomapproximation in VBA
04.08.2005 22:45:21
Thomas
&gt In meinem Fall funktionieren diese Standard-Algorithmen aber nicht, ...
Ja, sicher ...
Gruss
Thomas
Risi Thomas Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige