Dies ist der zweite einer Reihe von Beiträgen darüber, wie man stückweise stetige Funktionen an Datensätze anpasst. Ich beginne jeden Beitrag mit Links zu allen anderen Beiträgen der Serie. Sie sind:
Dieser Beitrag ist zwangsläufig ein wenig „mathematisch“.
Einführung
In Teil 1 dieser Blogserie habe ich ein Beispielproblem vorgestellt, um etwas zu demonstrieren, das als „stückweises Anpassen von Funktionen“ an einen Datensatz bezeichnet wird. Diese Daten wurden in Bereiche unterteilt, in denen wir Funktionen (noch offen) einbauen möchten. Sogar die X-Standorte, die die Grenzen der Regionen definieren, sind noch unbekannt. Abbildung 1 zeigt die Daten und die vorgeschlagenen Regionen.
Figure 1Abbildung 1
Funktionen auswählen
Für jede Region möchten wir unterschiedliche Funktionen anpassen, die zur Modellierung der Daten dienen. In der nichtlinearen Plattform von JMP können Sie jeden beliebigen Ausdruck verwenden (z. B. Exponentialfunktionen, Logarithmen, Trigonometrie usw.). Im Allgemeinen hängt die Auswahl der Funktionen vollständig von der Weisheit, Einsicht und Fachkenntnis des Modellierers ab. In der folgenden Diskussion werden einfache Polynome verwendet, die den Vorteil bieten, die Mathematik bei der Festlegung von Randbedingungen zu vereinfachen. Diese haben bei mir im Laufe der Jahre gut funktioniert.
Mit einfachem Polynom meine ich eine Gleichung der Form:
Equation 1Gleichung 1
Wo:
y = die gemessene Reaktion
n = das interessierende Segment
A m = der „m-te“ unbekannte Koeffizient für das n-te Segment
x = der unabhängige Prädiktor
Abhängig von der Komplexität der anzupassenden Funktion kann das Polynom auf jede gewünschte Länge gekürzt werden.
Schauen wir uns jedes Segment von Abbildung 1 einzeln an.
Segment 1: Daten vor Testbeginn
Wie bereits beschrieben, kann dieser Bereich aus Daten bestehen, die vor dem eigentlichen Teststart erfasst werden. In diesem Fall könnte es idealerweise einen Wert von Null haben, obwohl es einen gewissen Instrumentierungsversatz geben könnte. Wir gehen davon aus, dass dies ein konstanter Wert ist, daher würden wir das Polynom für das erste Segment wie folgt festlegen:
Equation 2Gleichung 2
Segment 2: Aufnahme von Vorrichtungstoleranzen
Denken Sie daran, dass der Beispieldatensatz möglicherweise Daten einer Zugprüfmaschine darstellt, bei der eine Probe mithilfe einer Montagefigur in das Prüfgerät eingelegt wird. Das zweite Segment/die zweite Region in Abbildung 1 (zwischen X1 und X2) könnte auf eine Region hinweisen, in der Vorrichtungstoleranzen übernommen werden. Uns könnte in erster Linie daran interessiert sein, wie viel Spannkraft vorhanden ist (X2-X1) oder wie viel Kraft erforderlich ist, um die gesamte Toleranz auszugleichen.
Da es in diesem Bereich eine Krümmung gibt, habe ich mich für die Verwendung einer quadratischen Funktion zur Anpassung entschieden. Ich habe mich auch dafür entschieden, die Parameter in b statt in a zu ändern, nur um die Koeffizienten in diesem Segment von denen in Segment 1 unterscheiden zu können:
Equation 3Gleichung 3
Segment 3: Linearer/elastischer Bereich
Segment 3 ist möglicherweise der wichtigste Bereich für den Test, da unser Ziel darin besteht, den elastischen Bereich der Kurve zu verstehen. Hier ist die Beziehung zwischen x und y linear und repräsentiert möglicherweise den elastischen Bereich für unseren Beispielprüfkörper in der Zugvorrichtung. Uns würde vor allem die Steigung dieser Region interessieren, daher habe ich für diese Gleichung eine einfache Steigungs-Achsenabschnitt-Form gewählt:
Equation 4Gleichung 4
Segment 4: Ertragsinitiatoren
Segment 4 könnte in unseren Beispieltestdaten den Bereich abdecken, in dem unsere Zugprobe nachzugeben beginnt. Eine visuelle Betrachtung der Daten zeigt, dass wieder eine Krümmung vorliegt (ähnlich wie in Segment 2), daher habe ich mich erneut für eine quadratische Anpassung entschieden:
Equation 5Gleichung 5
Segment 5: Daten nach Testende
Segment 5 kann auftreten, nachdem der eigentliche Zugversuch abgeschlossen ist. Der Prüfling steht noch unter Spannung. Das Ausmaß der Dehnung (y) bleibt unverändert, sodass die Gleichung ähnlich wie in Segment 1 wäre:
Equation 6Gleichung 6
Randbedingungen festlegen
Wir haben jetzt fünf Gleichungen mit unbekannten Koeffizienten (a0, b0, b1, b2, c0, c1, d0, d1, d2 und e0) zusammen mit den vier Haltepunkten X1, X2, X3 und X4. Jeder dieser Punkte muss ermittelt werden. Es müssen jedoch noch weitere Informationen bereitgestellt werden. Insbesondere muss jede der Kurven an den Übergangsgrenzen „verbinden“.
Übergang von Segment 1 zu Segment 2
Für den Übergang Segment 1/2 wollen wir y1=y2 bei x=X1. Das heisst:
Equation 7Gleichung 7
Wenn wir nach b0 auflösen, erhalten wir:
Equation 8Gleichung 8
Dies „verbindet“ die Funktion von Segment 1 mit der Funktion von Segment 2 bei x=X1. Dies gibt uns die Möglichkeit, b0 aus allen kommenden Gleichungen zu eliminieren.
Verbleibende Segmentgrenzen
Ohne die gesamte Algebra zu buchstabieren, können wir dasselbe mit allen anderen Grenzen tun (z. B. y2(X2) = y3(X2) usw.). Wenn wir nach c0, d0 und e0 auflösen, erhalten wir:
Equation 9Gleichung 9
Equation 10Gleichung 10
Equation 11Gleichung 11
Nachdem wir mehrere Substitutionen in die Segmentgleichungen vorgenommen haben, kommen wir zu:
Equation 12Gleichung 12
Equation 13Gleichung 13
Equation 14Gleichung 14
Equation 15Gleichung 15
Equation 16Gleichung 16
Jetzt haben wir die Unbekannten auf a0, b1, b2, c1, d1, d2, X1, X2, X3 und X4 reduziert. Wie bringen wir JMP dazu, diese Unbekannten zu lösen? Begleiten Sie mich beim nächsten Blogbeitrag!