MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 17.10.2017, 10:45   #1
zaddo
Neuer Benutzer
Neuer Benutzer
Standard Frage - Polynom-Fit mit RGP: Randbedingungen einhalten

Hallo zusammen,

ich versuche, eine Datenreihe mittels eines Polynoms zu fitten. Dafür benutze ich die Funktion RGP, um ein Polynom 6. Grades (der exakte Grad ist nicht so wichtig) durch meine Daten zu legen:

A67:G67 = RGP(A36:A63;B36:G63;FALSCH;FALSCH)

Ich würde diesen Fit jedoch gern mit zwei unbedingt zu erfüllenden Randebdingungen versehen; dass nämlich der erste und der letzte Punkt exakt getroffen werden. Im Grunde genommen benötige ich also ein Polynom, das den ersten und letzten Punkt genau trifft und nur für den Rest dazwischen einen möglichst guten Fit annimmt - sollte ja möglich sein.

Glücklicherweise ist in meinem konkreten Beispiel der erste Punkt bei (0,0), wodurch diese Bedingung recht leicht zu erfüllen ist (drittes Argument von RGB auf "FALSCH", so ist y(x=0) = 0). Mir ist jedoch schleierhaft, wie ich eine ähnliche Bedingung für den letzten Punkt, d.h. y(x=x_n) = y_n in den Fit einbauen könnte.

Hat diesbezüglich jemand einen heißen Tipp für mich? Smile

Vielen Dank und viele Grüße!
zaddo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2017, 01:20   #2
Oge
MOF User
MOF User
Standard

Hallo z...,

Warum?

bzw. was möchtest du erreichen?

Mit der RGP-Funktion wird es wohl nicht gehen, da diese Funktion das passendste Polynom nach der Methode der kleinsten Quadrate berechnet und hierbei die einzelenen Messpunkte nicht unterschiedlich bewertet werden können.

Da du aber den Grad des Polynoms nicht vorbestimmen möchtest und Polynome unterschiedlichen Grades bei gleichen Messpunkten zu ganz unterschiedlichen Kurven führen, wofür überhaupt eine Polynomanpassung?

Reicht da nicht eine Anpassung ähnlich wie die "geglätteten Linien" in Exceldiagrammen?

Unter den Suchbegriffen "Excel spline" findet man im Netz Dateien, in denen für Messpunkte Kurven ermittelt werden, die aus Polynomen 4. Grades zusammengestellt werden die
1. jeweils durch zwei benachbarte Messpunkte gehen und
2. an den Übergängen (Messpunkten) die gleiche Steigung und Krümmung haben.
(Ähnlich den geglättetet Linien in Excel)

ps: Eine Datei zur Anpassung von Messpunkten durch Splines findet man hier:
Datei 31580.xls in
http://www.herber.de/forum/archiv/73...e_Splines.html

__________________

helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.

Geändert von Oge (18.10.2017 um 02:09 Uhr).
Oge ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2017, 08:18   #3
zaddo
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Oge,
vielen Dank für deine Antwort. Ich habe mich nicht ganz deutlich ausgedrückt; ich gebe den Grad des Polynoms natürlich schon fest vor. Da die Daten aber (sehr grob gesagt) einem etwa quadratischen Verlauf entsprechen, d.h. bereits mit einer quadratischen Funktion ordentlich angenähert werden können, ist es letztlich nur eine Frage der Genauigkeit, ob ich ein Polynom 3. oder 6. oder 10. Grades verwende. Es geht ja um einen Fit, nicht um ein Polynom, das sich wild durch die Punkte schlängelt und alle exakt trifft. Im Moment verwende ich RGP mit einem Polynom 6. Grades. Wenn allerdings jemand eine Lösung hätte, die nur mit Polynomen 3. oder 7. Grades funktioniert, würde ich die natürlich auch nehmen; insofern ist der exakte Grad nicht so wichtig.

Wichtiger ist mir, dass die Start- und Endpunkte exakt getroffen werden. Warum? Grob gesagt geht es um die Form eines Balkens, die ich gern durch eine (einfache=polynomiale) Funktion beschreiben möchte. Der Verlauf soll gut angenähert sein; wichtig ist dabei aber, dass eben die Endpunkte des Balkens exakt getroffen werden, damit der polynomiale Verlauf im Kontext der anderen, daran angeschlossenen mechanischen Bauteile "passt".

Mit Splines ist mir nicht so richtig geholfen, da ich ja nicht jeden Datenpunkt treffen möchte, sondern mit einem Fit nur die Form annähern will. Zudem wäre die Beschreibung von Splines wiederum als Funktion recht kompliziert.
zaddo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2017, 10:53   #4
losgehts
MOF User
MOF User
Standard

Hallo,

ich habe auf Office-loesung.de dazu geantwortet. Bei meiner Lösung dort kannst du den Grad des Polynoms frei wählen.

Erstaunlicher Weise ergibt bei mir eine Herleitung der Summe der kleinsten Fehlerquadrate auch, dass eine Wichtung einzelner Fehler nicht wirklich möglich ist. Aber wenn ich es ausprobiere, dann klappt das ganz gut. => Vielleicht irgendwo in der Handrechnung ein Denkfehler?!

Leider hört sich dein Problem "Form eines Balkens" eher nach einem Darstellungsproblem an. Dein Fit scheint ja schon recht gut zu passen. Dann würde ich einfach eine Gerade zu dem Fit addieren, sodass Anfang und Ende dort sind, wo du sie auch haben möchtest - fertig. Bei einer Visualisierung kommt es ja meist darauf an, dass es qualititativ stimmt und unphysikalische Effekte wie Unstetigkeiten nicht das Bild stören. Solang man davon nichts abliest, kann man ja ruhig ein wenig "pfuschen".

Grüße, Ulrich
losgehts ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2017, 12:37   #5
Oge
MOF User
MOF User
Standard

Hallo z...,

da ich glaube dein Anliegen noch immer nicht genau verstanden zu haben, hier drei unterschiedliche Ideen.

A) Verringerung der Stützstellen für RGP
Da deine Daten "einem etwa quadratischen Verlauf entsprechen" könntest du für ein Polynom n-ten Grades n+1 signifikante Messtellen (Endstellen und Punkte nahe Extrema und Wendepunkte) auswählen. Das Polynom würde dann auch durch die Endpunkte gehen.

B) Erhöhung des Grades des Polynoms
Meines Wissens ist RGP nicht auf Polynome des Grades <= 6 begrenzt. Wenn du den Grad erhöhst (Messpunkte -1) bekommst du ein Polynom ähnlich einer Spline-Funktion die durch alle Messpunkte geht.

C) Nachbilden der RGP-Funktion mit dem Solver mit stärkerer Gewichtung der Differenz an der Obergrenze.
Die RGP-Funktion ermittelt die Parameter für das Polynom nach der Methode der kleinsten Quadrate.
Hierbei werden für die Polynomparameter die Differenzen der Polynomwerte zu den jeweiligen Y-Werten der Messwerte quadriert und dann addiert.
Über Variation der Parameter wird diese Summe dann minimiert.
Wenn man dieses über den Solver nachbildet (siehe Anlage) erhält man das gleiche Ergebnis. Um ein Polynom zu erhalten, dass an dem Endpunkt beliebig nahe am Messwert liegt, kann man die Differenz an diesem Punkt mit einem Faktor >1 wichten.
Achtung! Wenn der Faktor zu gross gewählt wird spielen die Differenzen an den anderen Messpunkten eine sehr kleine Rolle und man erhält ein Polynom, dass wenig mit den Messpunkten zu tun hat. Daher den Faktor schrittweise erhöhen, bis der Polynomwert am Endpunkt nahe genug am Messwert liegt.
Angehängte Dateien
Dateityp: xlsx RGP.xlsx (20,2 KB, 4x aufgerufen)

__________________

helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.

Geändert von Oge (18.10.2017 um 12:40 Uhr).
Oge ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.10.2017, 15:18   #6
zaddo
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hi Oge,

vielen Dank für deine Lösung. Eine gute Idee, den Excel-Solver zu verwenden. Auf Office-Lösung.de hat ein anderer Nutzer eine ähnliche Lösung in Form eines Makros gepostet, die ich mal so als endgültige Lösung auch hier vorstellen möchte:
http://www.office-loesung.de/p/viewt...8605&p=3095450
Sie trifft die Punkte zwar nicht exakt, aber sie können ebenso wie in deinem Vorschlag gewichtet werden.

Vielen Dank für die Hilfe!
zaddo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.