Interpolation 101

Vor vielen Jahren unterstützte NumXL eine Interpolationsfunktion als Dienstprogramm oder Hilfsmethode, um die Modellierungsanforderungen unserer Benutzer zu erfüllen. Zu unserer Überraschung erhielt diese Funktion große Aufmerksamkeit, und wir beschlossen, einige der am häufigsten gestellten Fragen dazu hier zusammenzustellen.

Was ist Interpolation?

Die Interpolation ist eine numerische Methode zur Schätzung des Wertes eines neuen Datenpunktes auf der Grundlage des Bereichs einer diskreten Anzahl bekannter Datenpunkte.

Zur Veranschaulichung nehmen wir an, dass der Wert einer Funktion $y=f(x)$ als eine Menge von fünf (5) unterschiedlichen x-Werten gegeben ist, wie in der folgenden Grafik dargestellt.
Dieses Diagramm zeigt den Eingabedatensatz, der aus fünf verschiedenen X-Werten besteht.

Nun möchten wir den Wert der Funktion bei $x=5$ anhand der fünf (5) gegebenen Datenpunkte schätzen (d. h. interpolieren).

Für Interpolationszwecke muss der gewünschte Zielwert x innerhalb des Bereichs des ursprünglichen Datensatzes liegen (z. B. $2\le x\le 12$).

Bevor wir weitermachen, sollten wir einige grundlegende Fragen beantworten, die wir oft hören:

  1. Was ist mit der Extrapolation? Was ist der Unterschied?
    Unter Extrapolation versteht man den Prozess der Schätzung des Funktionswertes eines X-Wertes, der außerhalb des Bereichs eines gegebenen Datensatzes liegt.
  2. Unterstützt NumXL die Extrapolation?
    Ja, die gleiche Funktion NxINTRPL(.) kann für die Extrapolation verwendet werden. Achten Sie darauf, dem Argument "extrapolieren" den Wert "true" oder 1 zu übergeben.
  3. Sind Kurvenanpassung (z. B. Regression) und Interpolation dasselbe?
    Kurvenanpassung und Interpolation werden oft synonym verwendet, aber es gibt einen feinen Unterschied zwischen ihnen: Die Interpolation muss die Datenpunkte genau treffen, während die Kurvenanpassung so nahe wie möglich kommen muss.
  4. Sollte ich Interpolation oder Kurvenanpassung verwenden?
    Das kommt darauf an. Bei der Interpolation wird davon ausgegangen, dass die Datenpunkte perfekt (oder zumindest sehr genau) bekannt sind, während bei der Kurvenanpassung ein gewisses Maß an Rauschen in den Datenpunkten angenommen wird.

Vorbereitung der Daten

Wie wir bereits erwähnt haben, akzeptieren alle Interpolationsmethoden eine diskrete Menge bekannter Datenpunkte. Um reale Datensätze zu verarbeiten, wird die NumXL-Interpolationsfunktion (NxINTRPL) die Daten vorverarbeitet:

  • Sortieren Sie die Datenpunkte in aufsteigender Reihenfolge (basierend auf X).
  • Datenpunkte mit fehlenden Werten werden stillschweigend gelöscht.
  • Ersetzen Sie mehrere Messwerte für denselben X-Wert durch ihren Durchschnitt.

FAQ:

Q: Sollen die Datenpunkte gleichmäßig verteilt werden?

A: Nein, die Intervalllänge zwischen den Datenpunkten muss nicht einheitlich sein, aber wir empfehlen, dass die Datenpunkte über den X-Bereich verteilt sind, um die Interpolationsgenauigkeit zu verbessern und die Auswirkungen von Ausreißern zu minimieren.

Interpolationsmethoden

  1. Stufeninterpolation 1: Flache Vorwärtsinterpolation:

    Die Stufeninterpolationsmethoden modellieren die unbekannte Funktion flach/konstant zwischen bekannten Datenpunkten, wobei der letzte bekannte Wert verwendet wird.
    Diese Grafik zeigt die Interpolationsmethode 'Forward Flat'.

  2. Stufeninterpolation 2: Flache Rückwärtsinterpolation:

    Bei der Backward-Flat-Methode wird die unbekannte Funktion ebenfalls als flach/konstant zwischen den bekannten Datenpunkten modelliert, aber es wird das Niveau des unmittelbar nächsten Datenpunktes verwendet.
    Dieses Diagramm zeigt die 'Backward Flat'-Interpolationsmethode.

  3. Schritt Interpolation 3: Nächste-Nachbarn-Interpolation:

    Bei der Methode des nächsten Nachbarn wird die unbekannte Funktion immer noch als flach/konstant modelliert, aber ihr Niveau wird durch das Niveau des nächstgelegenen Datenpunktes bestimmt.
    Dieses Diagramm zeigt die 'Nearest Neighbor'-Interpolationsmethode.

  4. Lineare Interpolation:

    Bei der linearen Interpolation verbinden wir jeden Datenpunkt mit seinen Nachbarn durch gerade Linien.
    Dieses Diagramm zeigt die 'lineare' Interpolationsmethode.

    Beachten Sie, dass die Werte der Funktion zwischen zwei Datenpunkten ausschließlich durch diese beiden Datenpunkte bestimmt werden.

  5. Kubische Spline: Natürliche Spline:

    Mithilfe der kubischen Spline-Methode konstruieren wir für jedes Intervall ein stückweises kubisches Polynom mit übereinstimmenden ersten und zweiten Ableitungen an den angegebenen Datenpunkten. Die zweite Ableitung wird so gewählt, dass sie am ersten und am letzten Punkt Null ist.
    Diese Grafik zeigt die Interpolationsmethode 'Natural Spline'.

    Die resultierende Kurve ist glatt, aber nicht "lokal", d. h., wenn die Funktionen eine große Änderung vornehmen (z. B. x=4), ist die Kurve um die umgebenden Punkte "wackelig" (d. h., sie überschießt an Zwischenpunkten).

  6. Kubische Spline: AKIMA Spline:

    Um die wackelige Kurve des natürlichen kubischen Splines zu vermeiden, lockern wir die Kontinuität der zweiten Ableitung um die Datenpunkte (Knoten), was zu nicht abgerundeten Ecken führt.
    Diese Grafik zeigt die Interpolationsmethode 'AKIMA Spline'.

    Wie in der obigen Abbildung zu sehen ist, ist die Kurve um die Datenpunkte kontinuierlich, aber nicht glatt.

  7. Kubische Spline: Steffen-Spline:

    Steffens Spline fügt eine neue Bedingung hinzu: Das kubische Spline-Segment ist zwischen den Datenpunkten monoton. Es gibt kein Taumeln, Punkt.
    Diese Grafik zeigt die Interpolationsmethode 'Steffen Spline'.

    Die sich ergebende Kurve ist um die Datenpunkte herum glatt und weist zwischen den Punkten keine Schwankungen auf. Daher können Minima und Maxima nur genau an den Datenpunkten auftreten.

    Steffens Spline und seine erste Ableitung sind garantiert stetig, die zweite Ableitung kann jedoch unstetig sein.

  8. Kubischer Spline: Constrained (Kruger) Spline:

    Kruger schlug einen eingeschränkten kubischen Spline vor, um ein Überschießen auf Kosten der Glattheit zu verhindern, so dass wir nicht mehr an jedem Punkt eine kontinuierliche zweite Ableitung benötigen und den Wert der ersten Ableitung numerisch anhand der umliegenden Punkte berechnen.
    Diese Grafik zeigt die Interpolationsmethode 'Constrained (Kruger) Spline'.

    Durch die Verwendung des gebundenen (Krüger-)Splines konnte der wobblerische Effekt des kubischen Splines vermieden werden, und es war nicht notwendig, Monotonizitätsbeschränkungen hinzuzufügen.

Es gibt noch andere Arten von kubischen Splines, aber wir haben nur die vorgestellt, die derzeit in NumXL Version 1.68 unterstützt werden.

FAQs:

Q: Welche Art von kubischem Spline sollte ich verwenden?

A: Dies hängt von der Art Ihrer Daten und der Bedeutung einer glatten Kurve und/oder des Nebeneffekts "Überschwingen" ab. In vielen Fällen empfiehlt es sich, den gebundenen (Krüger-) kubischen Spline als sichere Methode zu wählen.

Q: Ich sehe zwei Interpolationsfunktionen in NumXL: INTERPOLATE(.) und NxINTRPL(.). Welche sollte ich verwenden?

A: Die Funktion INTERPOLATE(.) war unsere frühe Implementierungsfunktion, aber sie ist jetzt veraltet. Alle oben genannten Interpolationsmethoden sind nur in NxINTRPL(.) verfügbar, daher sollten Sie nur diese Funktion verwenden.

Q: Die Funktion NxINTRPL(.) akzeptiert sowohl einen Einzelwert als auch ein Array als Zielargument. Warum?

A: NxINTRPL(.) läuft schneller, wenn Sie für mehrere Werte auf einmal interpolieren, anstatt für jeden Wert einzeln aufzurufen. Wir empfehlen, alle x-Werte in mehreren Funktionsaufrufen zu übergeben.

  Anhänge

Kommentare

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich