@ Andreas, ich habe mir jetzt mal deine auf 4 Werte reduzierte Beispieldatei aus Beitrag #9 angeschaut. Ich finde, die Werte die die Formeln in dieser reduzierten Beispieldatei zurückgeben (auch die Zwischenwerte), sind nicht plausibel. Meiner Meinung nach ist da was durcheinandergeraten mit den X- und Y-Werten.
Ich bin davon ausgegangen, dass die X-Werte waagerecht (in Spalten) und die Y-Werte senkrecht sind. Zumindest habe ich so die Beispieldatei von mian1992 aus Beitrag #1 interpretiert.
Du hast das in deiner Datei gerade andersrum angenommen. Deshalb haben die Formeln auch nicht richtig gerechnet
Wenn man das richtigstellt, ergibt sich für die angegebenen Suchwerte (jeweils die Mittelwerte) einen interpolierten Wert von 2 - siehe angehängte korrigierte Beispieldatei. Auch wenn man die Werte vertauscht / transponiert ergibt sich der Wert 2. Das scheint mir jetzt nicht gar so verkehrt zu sein; und auch nicht so sehr weit weg von dem von dir aus dem Diagramm interpretierten Wert 2,5 ….
Zitat:Du rechnest in Deiner Datei einen Wert von 1,17368 für Y49 und X61 aus. Wenn Du mir nicht glaubst, dann vielleicht dem hier: Bilineare Interpolation
Wenn ich diese Werte (Y49 und X61) in diesen Online-Rechner (danke, Andreas für den Link) eingebe, erhalte ich das Ergebnis 1,737.
Ich finde, dieser Wert ist so auch plausibler als 1,2037, denn der Wert sollte ja recht nah an dem Wert für Y50 / X60 => 1,164 liegen Wenn man im online-Rechner die Punkte Q21 und Q12 vertauscht, ergibt sich übrigens der Wert 1,2037 (also auch ein X- / Y- Vertauschproblem ? ...)
(08.01.2026, 23:16)Fred11 schrieb: @ Andreas, ich habe mir jetzt mal deine auf 4 Werte reduzierte Beispieldatei aus Beitrag #9 angeschaut. Ich finde, die Werte die die Formeln in dieser reduzierten Beispieldatei zurückgeben (auch die Zwischenwerte), sind nicht plausibel.
Wenn man das richtigstellt, ergibt sich für die angegebenen Suchwerte (jeweils die Mittelwerte) einen interpolierten Wert von 2 - siehe angehängte korrigierte Beispieldatei. Auch wenn man die Werte vertauscht / transponiert ergibt sich der Wert 2. Das scheint mir jetzt nicht gar so verkehrt zu sein; und auch nicht so sehr weit weg von dem von dir aus dem Diagramm interpretierten Wert 2,5 ….
Hallo Fred, ich freue mich das Du auf diese Werte kommst, denn das ist schon mal soweit korrekt!
Wir sind noch nicht ganz am Ziel, aber der Weg ist schon mal da! Lass uns mal bei diesem einfachen Beispiel bleiben und mal anschauen woher die 2 kommt. Ich nehme mal die Koordinaten aus Deiner letzten Datei, nebenbei ob wir nun X und Y vertauschen ist wurscht, das bedeutet letzten Endes nur das wir die Fläche um die Z-Achse drehen.
Der Knackpunkt ist die Fläche selber, oder ich sag es mal vorab: Die möglichen Flächen die sich ergeben können.
Auf der Seite gibt es links ein Eingabefeld "Objekte", mach da mal diesen Text rein und dann klick auf den "Übernehmen" Button darunter:
PHP-Code:
// Punkte aus Excel Punkt A (5,10,0) f=blue Punkt B (15,10,1) f=orange Punkt C (5,20,2) f=cyan Punkt D (15,20,5) f=green Punkt BI (10, 15, 2) f=red // Oberer Knick Gerade gAD durch A und D f=green Punkt mitteAD (10, 15, 2.5) f=green // Flächen oben Polygon ObenLinks {A,D,C} f=gray ff=gray Polygon ObenRechts {A,D,B} f=gray ff=gray
Man kann mit der linken Maustaste drehen und mit dem Mausrad (ein bißchen) zoomen, ich mach mal einen Screenshot:
Das ist im Prinzip das was wir in Excel sehen, man sieht das der Punkt BI (Bilineare Interpolation) unterhalb der Fläche liegt. Warum ist das so? Nun ich bin kein Mathematiker, bitte bei Wikipedia nachlesen: https://de.wikipedia.org/wiki/Bilineare_Filterung
Okay, nun wissen wir das unsere BI nur eine Näherungsrechnung ist, aber an was nähert sich diese denn nun? Von 2,5 bis 2 sind immerhin 0,5 oder anders ausgedrückt ein Fehler von 20%!
Schauen wir uns mal an wie diese Flächen zustande kommen. Wenn wir nur die 4 Punkte nehmen und von oben ein Tuch darüber werfen und es straff ziehen, dann kommen (so ungefähr) diese Flächen dabei heraus.
Was sieht es denn nun aber aus wenn wir unser Tuch auf eine Wasseroberfläche legen und mit den Punkten in diese Eintauchen?
PHP-Code:
// Punkte aus Excel Punkt A (5,10,0) f=blue Punkt B (15,10,1) f=orange Punkt C (5,20,2) f=cyan Punkt D (15,20,5) f=green Punkt BI (10, 15, 2) f=red // Unterer Knick Gerade gBC durch B und C f=cyan Punkt mitteBC (10, 15, 1.5) f=green // Flächen unten Polygon UntenVorn {A,B,C} f=blue ff=blue Polygon UntenHinten {D,B,C} f=blue ff=blue
Nun sehen wir das sich der Knick in der Oberfläche um 90° gedreht hat und der Punkt BI über der Fläche liegt.
Die bilineare Interpolation findet also nicht auf den Flächen statt sondern zeigt uns einen Mittelwert dazwischen!
PHP-Code:
// Punkte aus Excel Punkt A (5,10,0) f=blue Punkt B (15,10,1) f=orange Punkt C (5,20,2) f=cyan Punkt D (15,20,5) f=green Punkt BI (10, 15, 2) f=red // Flächen oben Polygon ObenLinks {A,D,C} f=gray ff=gray Polygon ObenRechts {A,D,B} f=gray ff=gray // Flächen unten Polygon UntenVorn {A,B,C} f=blue ff=blue Polygon UntenHinten {D,B,C} f=blue ff=blue // Lot Punkt mitteAD (10, 15, 2.5) f=green Punkt mitteBC (10, 15, 1.5) f=green Gerade g durch mitteAD und mitteBC
Sieht dann so aus:
Also wir bekommen einen Mittelwert 2 der zwischen den Höhen 2,5 und 1,5 liegt, was im ersten Moment mal okay ist. Der mögliche Fehler der sich daraus ergibt ist jedoch immens.
Die reale natürliche Fläche die sich in den Daten des OP versteckt sieht aber mit Sicherheit nicht so geknickt aus wie das die Polygone tun die wir zur Berechnung verwenden. Da braucht man sich nur mal seine Maus anzuschauen, Oberflächen haben so gut wie immer Wölbungen / Bögen / Splines. Und auf realen Oberflächen einen Wert zu interpolieren ist alles andere als trivial.
09.01.2026, 15:17 (Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2026, 15:17 von LCohen.)
Ja, ich habe mich da geirrt. 4 Punkte ergeben einen Knick in einer aufgespannten Fläche (zwei verschiedene Knicke, sich "kreuzend", sind möglich); 3 Punkte definieren eine Fläche ohne Knick.
10.01.2026, 01:26 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2026, 01:28 von Fred11.)
@ Andreas, Ich finde, dass die Darstellung mit dem Tool, das du da gefunden hast auch nicht ganz korrekt und nur eine eher grobe Annäherung ist. Wenn ich das richtig verstanden habe, wird im Prinzip ja nicht eine viereckige Fläche dargestellt, sondern zwei aneinandergesetzte (ebene / planare) Dreiecksflächen Dadurch ergibt sich immer ein scharfer Knick, der je nach Anordnung der Dreiecke unterschiedlich verläuft (90° gedreht - wie in deinen beiden Beispielen) und es ergeben sich unterschiedliche Darstellungen der Flächen (BI-Punkt liegt einmal oberhalb und einmal unterhalb der Fläche) Ich denke, dass dieser Knick nicht der Realität entspricht
Die Fläche, die durch die vier Eckpunkte aufgespannt wird ist für mein Verständnis eigentlich eine in sich verwundene Viereckfläche. Ich habe das Beispiel mit den 4 Punkten deshalb mal im CAD dargestellt. Fläche zwischen zwei gegenüberliegenden Linien (Kanten) erstellt. Die anderen beiden Kanten ergeben sich dann automatisch und sind auch linear.
Es ergibt sich eine verwundene Fläche, so ähnlich wie ein Zeltdach. Wenn man diese Fläche parallel zu der X- oder Y-Achse schneidet, ist die Schnittkurve eine Gerade
Im Mittelpunkt ergibt sich hier nun ein (Höhen-) Maß von 2, was exakt dem errechneten Wert entspricht.
Die Höhenlinien der Flächen verlaufen so
Ich finde, dass das so deutlich genauer ist und eher der Realität entspricht, als die (eher grobe) Darstellung mit den zwei Dreiecksflächen. Aber auch diese Fläche ist letztendlich nur eine Annäherung, denn sie geht ja von einer linearen Verteilung zwischen den Eckpunkten der Viereckfläche aus (die 4 Kanten der Fläche sind gerade), was so in den echten Daten wohl nicht der Fall sein wird - wie du ja auch geschrieben hast.
In den echten Daten des OP liegen die Werte der Punkte ja auch viel enger beieinander und schwanken von Punkt zu Punkt nicht so stark wie in dem kleinen exemplarischen Beispiel mit den 4 Punkten - da wird diese Annäherung vermutlich schon ausreichen.. (was besseres gibt es halt nicht mit Excel….)
Aber das Ganze ist jetzt doch sehr theoretisch und akademisch. Vielleicht ist es manchmal besser, man macht das mehr so "nach Gefühl" …. https://www.youtube.com/shorts/g7K4uXnb2Ek
Gruß Fred
PS: Die Beschreibung auf der von dir verlinkten Wikipedia-Seite zum Thema bilineare Interpolation entspricht für mein Verständnis (bin auch kein Mathematiker…) genau dem, was auch der gestern von dir verlinkte Online-Rechner macht.
10.01.2026, 13:00 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2026, 13:00 von LCohen.)
Die Kachel zwischen 4 Punkten ist also "gebogen"; nur im Sonderfall ist sie es nicht. Oder sie hat vereinfacht einen von 2 möglichen Knicks in einer ansonsten ungebogenen Fläche. Da wir bei linearer Interpolation möglichst einfach vorgehen wollen, wäre es nun sinnvoll, bei dem gesuchten Wert im Raum die (Höhen)-Mitte der beiden möglichen "geknickten" Kacheln zu bestimmen. Dann hat man wieder ein eindeutiges Ergebnis. Jegliche Annahmen, wie die Fläche etwa rund gebogen sein KÖNNTE, ist bei linearer Interpolation hinfällig. Denn dafür gäbe es unendlich viele Möglichkeiten. Es geht jedoch bei jeder Interpolation um Vereinfachungen. Und die erzielbare "Funktions"-Genauigkeit wird ja schon durch die Feinheit der X- und Y-Skalen bestimmt. Postulat: "Genauer als das DARF SIE NICHT SEIN!" Denn dann hätten wir dafür eine Information.
Ich wäre da nie drauf gekommen - hatte nicht weit genug gedacht. Man muss also die bisherige 2dim Interpolationsformel (x, y) entsprechend erweitern, um die arithmetische Mitte (z quer) der 2 möglichen definierbaren Höhenprofile (z1, z2) an jedem Punkt zu ermitteln.
(10.01.2026, 13:00)LCohen schrieb: Ich wäre da nie drauf gekommen - hatte nicht weit genug gedacht. Man muss also die bisherige 2dim Interpolationsformel (x, y) entsprechend erweitern, um die arithmetische Mitte (z quer) der 2 möglichen definierbaren Höhenprofile (z1, z2) an jedem Punkt zu ermitteln.
Ganz genau, jetzt hast Du es!
Eine bilineare Interpolation liefert nur im Sonderfall, wenn keine Krümmung vorhanden ist (wenn die Kachel glatt ist), einen Punkt auf der Oberfläche. In jedem anderen Fall bekommen wir einen Punkt entweder über oder unter der Fläche. Wenn also jemand fragt "wie interpoliere ich einen XY-Wert" und die Methoden die hier bisher gezeigt wurden als "die Lösung" ohne ein Beiwort vorgeschlagen wird, dann ist das IMHO mindestens fragwürdig. Das ist alles was ich klarstellen wollte.
Wenn man von einer kontinuierlichen Fläche (also wie z.B. die Wölbung unserer Maus) ausgehen kann, dann kann man die nächsten Punkte die um unsere 4 Punkte herum liegen, zur Analyse hinzu ziehen. Allerdings gibt es auch hier keine 100% korrekte Lösung, denn man muss Annahmen treffen wie die Oberfläche aussehen könnte.
Und @Fred: Nein, mit Gefühl kommen wir hier überhaupt nicht weiter, im Gegenteil, es wird schlimmer.
Zeigen lässt sich das nur wenn man einen Schnitt durch die Oberfläche macht und sich die Kante anschaut, das ist dann nur noch eine Linie.
Wenn wir nun fragen welche Höhe haben wir bei X32, dann würde eine lineare Interpolation einen Wert deutlich unter 3 liefern. Der Wert auf der Oberfläche liegt aber je nachdem welche Glättungsfunktion wir benutzen über 3.