Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

In Tabelle mit verifizierten Werten kleinere Schritte interpolieren
#11
@Sulprobil
@snb

Die Frage ist jetzt welche von beiden Lösung die richtige Lösung liefert, denn die beiden Makros liefern verschiedene Ergebnisse. Ich kann es nicht wirklich mathematisch begründen, aber die Tabelle bzw. die Abstufungen in Sulprobils Lösung sehen für mich realistischer aus.

Deine Lösung ist optisch natürlich erste Sahne. @snb  19

@Sulprobil Wie kann ich denn die Ausgangstabelle um weitere Werte erweitern und neu interpolieren lassen - habe nun einiges versucht, bekomme aber keine korrekte Vorgangsweise zusammen.
Antworten Top
#12
Die Abstände sind nicht gleich 30, 35 (+5) 45 (+10), 55 (+10)
Darum fängt meine Tabelle an bei 25.
Schau mal AA702:(Spalte Name: 15) / Zeile Name 95: dort sollte 3071 stehen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • odgrg
Antworten Top
#13
(22.09.2022, 14:50)snb schrieb: Die Abstände sind nicht gleich 30, 35 (+5) 45 (+10), 55 (+10)
Darum fängt meine Tabelle an bei 25.
Schau mal AA702:(Spalte Name: 15) / Zeile Name 95: dort sollte 3071 stehen.

Die Messwerte stimmen überein mit den Positionen, das passt.
D.h. dein Makro kann quasi keine verschieden großen Abstände, oder? 

Das Problem ist einfach, dass ich da nichts umgestalten kann. Die Eckdaten aus meiner Tabelle sind empirisch gemessene Werte anhand derer ich eben interpolieren muss bei genau diesen x- und y-Achsen.

(20.09.2022, 09:40)Sulprobil schrieb: Hallo,

anbei mein Lösungsvorschlag (ohne jede Gewähr, aber ich verwende einen aktuellen Virenscanner):


Viele Grüße,
Bernd

Ich versuche und versuche es - aber ich fühl mich schön langsam zu blöd zur Bedienung deines Makros.  17

@Sulprobil: Anbei findest du einen Screenshot. Meine Mappe mit meinen weiteren Ausführungen kann ich leider nicht hineinsetzen, da empfindliche Daten darin enthalten sind.

In den roten Rechtecken siehst du die Werte, die ich neu hinzugefügt habe. Dann habe ich zuerst für x mit "WAHR" extrapoliert und dann für y mit "WAHR" extrapoliert. Dabei kamen dann diese komischen Werte in den Tabellen heraus und ich verstehe absolut nicht warum.

   
Antworten Top
#14
Hallo odgrg,

Anbei eine Version, die den Aufruf meiner Funktion vereinfachen sollte (wie immer ohne Gewähr, aber ich verwende einen aktuellen Virenscanner).
Die erste lineare Interpolation muss in x-Richtung (horizontal) erfolgen, die zweite in y-Richtung (vertikal).
Schau' Dir bitte genau die verwendeten Formeln an. In Deiner Excel Version solltest Du die Formeln normal eingeben können (ohne Matrixformel Abschluss).
Als Test für eine korrekte bilineare Interpolation könntest Du eingeben:
PHP-Code:
Interpolate Start Increment End Method Extrapolate
x 0 1 10 Linear FALSCH 
y 0 1 10 Linear FALSCH 
 
 
Input 
 0 10 
0 0 10 
10 10 20 
 
 
Intermediate table
interpolate x 
 0 1 2 3 4 5 6 7 8 9 10
0 0 1 2 3 4 5 6 7 8 9 10
10 10 11 12 13 14 15 16 17 18 19 20
 
 
Output table
interpolate y 
 0 1 2 3 4 5 6 7 8 9 10
0 0 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10 11
2 2 3 4 5 6 7 8 9 10 11 12
3 3 4 5 6 7 8 9 10 11 12 13
4 4 5 6 7 8 9 10 11 12 13 14
5 5 6 7 8 9 10 11 12 13 14 15
6 6 7 8 9 10 11 12 13 14 15 16
7 7 8 9 10 11 12 13 14 15 16 17
8 8 9 10 11 12 13 14 15 16 17 18
9 9 10 11 12 13 14 15 16 17 18 19
10 10 11 12 13 14 15 16 17 18 19 20 
Du kannst diese korrekte Interpolation im Tabellenblatt Test_Bilinear nachvollziehen.
Vergleiche gern mit snb's Ansatz.

Have fun,
Bernd


Angehängte Dateien
.xlsm   CEF_bilinear_sbInterp.xlsm (Größe: 1,87 MB / Downloads: 3)
[-] Folgende(r) 1 Nutzer sagt Danke an Sulprobil für diesen Beitrag:
  • odgrg
Antworten Top
#15
Besten Dank - ich widme mich heute Abend der Thematik, versuche es wieder und melde mich bei Fragen nochmal zurück! Schönen Start in die Woche!

LG
Antworten Top
#16
Für mich sieht das ziemlich merkwürdig aus: eine Tabelle mit X-Achse mit Abstände van 2,5 Punkte und Y_Achse mit Abstände von 10 Punkten, und dann nur eine Ausnahme : 30 statt 25.
Mache es dir gemütlich:
Wenn Zelle M6 30/40 Wert 3717 hat und Zelle M7 (35/40) Wert 4186, bedeutet das, dass du nur ändern muß:

M6: 3717 wird 3248  M6= M6- (M7-M6)
A6: wird 25 statt 30

Der Makro bleibt unverändert.


Angehängte Dateien
.xlsb   __bilinear_interpoleren_snb_002.xlsb (Größe: 22,84 KB / Downloads: 0)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#17
(26.09.2022, 10:52)snb schrieb: Für mich sieht das ziemlich merkwürdig aus: eine Tabelle mit X-Achse mit Abstände van 2,5 Punkte und Y_Achse mit Abstände von 10 Punkten, und dann nur eine Ausnahme : 30 statt 25.
Mache es dir gemütlich:
...
Mache es bitte lieber einmal richtig.
Falls neue Ablesewerte zwischen diesen von Dir berechneten Werten eingegeben würden, müssten alle "gemütlichen" Werte neu berechnet werden.
Der Witz einer (korrekten!) bilinearen Interpolation besteht gerade darin, daß auch nicht-equidistante Ausgangswerte existieren können. Die Formeln dafür sind recht simpel. Schon drei Punkte, die nicht auf einer Geraden liegen, spannen eine Ebene auf.
Antworten Top
#18
(27.09.2022, 13:36)Sulprobil schrieb: Mache es bitte lieber einmal richtig.
Falls neue Ablesewerte zwischen diesen von Dir berechneten Werten eingegeben würden, müssten alle "gemütlichen" Werte neu berechnet werden.
Der Witz einer (korrekten!) bilinearen Interpolation besteht gerade darin, daß auch nicht-equidistante Ausgangswerte existieren können. Die Formeln dafür sind recht simpel. Schon drei Punkte, die nicht auf einer Geraden liegen, spannen eine Ebene auf.

Hallo Sulprobil,

ich möchte die Tabelle nun für ein weiteres Produkt verwenden und muss diese daher nun gemäß des folgenden Bildes erweitern.

   

Ich habe alles für mich logische versucht, aber es haut mit den Erweiterungen in x- und y-Richtung leider nicht hin.

Ich habe die Input-Tabelle in x- und y-Richtung angepasst und erweitert. Oben in Start- und Endwerte angepasst und die x- und y-Achse auch in der intermediate- und output-table angepasst. Dann habe ich meine neuen Werte als in die Input-Tabelle kopiert. Es wird zwar interpoliert, aber in x-Richtung nur bis 37,5 und in y-Richtung nur bis 80 - ich kann mir nicht erklären warum.

Bitte um Hilfe.

Grüße
odgrg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste