Gewichtung von mehrdimensionaler Funktion

Hallo,

Ich habe folgendes Problem:

Ich möchte den Wert einer Variablen aufgrund von drei anderen Variablen berechnen, also

X = f(a,b,c)

Die Funktion f ist mir bekannt. Die Funktion besitzt für verschiedene Wertebereiche von a, b, und c jeweils unterschiedliche Koeffizienten.

Da ich diese Rechnung für viele verschiedene Punkte in einem Bild durchführe, kommt es zu räumlichen Diskontinuitäten, welche ich gerne „verschmieren“ möchte.

Wäre die Funktion x = f(a), so könnte ich x relativ einfach berechnen, indem ich Gewichte einführe:

x = g1*f(a1) + (1-g1)*f(a2), g1 wäre dann proportional zum Abstand der Klassenmitte 1.

Da ich jedoch eine Funktion mit 3 Variablen habe, ist das Ganze komplizierter.

Ich bin nun auf der Suche an einem Ansatz, der dies berücksichtigt, aber trotzdem einfach zu operationalisieren ist. Der Ansatz sollte schnell gehen, da die Operation für Millionen von Punkten durchgeführt werden muss.

Danke und liebe Grüße,
coco

Wäre die Funktion x = f(a), so könnte ich x relativ einfach
berechnen, indem ich Gewichte einführe:

x = g1*f(a1) + (1-g1)*f(a2), g1 wäre dann proportional zum
Abstand der Klassenmitte 1.

Da ich jedoch eine Funktion mit 3 Variablen habe, ist das
Ganze komplizierter.

Es funktioniert im Prinzip genauso:

Bei einer Dimension hast Du eine Strecke, die durch den Punkt in zwei Intervalle geteilt wird. Die Gewichte für die Randpunkte ergeben sich aus den Längen der jeweils gegenüberliegenden Strecke.

Bei zwei Dimensionen hast Du keine Strecke, sondern ein Recheck, das durch den Punkt in vier Teilbereiche zerlegt wird (wie bei einem Fenster). Hier ergeben sich die Gewichte aus den Flächen des jeweils gegenüberliegenden Teilrechtecks.

Bei drei Dimensionen hast Du einen Quader, der durch den Punkt in acht Teilbereiche zerlegt wird. Die Gewichte ergeben sich aus dem Volumen des jeweils gegenüberliegenden Teilquaders.

Das lässt sich auf beliebig vielen Dimensionen erweitern.

Es funktioniert im Prinzip genauso:

Genau. Und das Ganze hat sogar einen Namen, nämlich bilineare bzw. trilineare Interpolation.

Hallo,

Bei zwei Dimensionen hast Du keine Strecke, sondern ein
Recheck, das durch den Punkt in vier Teilbereiche zerlegt wird
(wie bei einem Fenster). Hier ergeben sich die Gewichte aus
den Flächen des jeweils gegenüberliegenden Teilrechtecks.

Meinst Du damit folgendes:
Bei einem Rechteck wäre die Gewichtung von Punkt A (links oben) dann proportional der Fläche des Teilrechteckes recht unten?

Das kann ich mir gut vorstellen.

Bei drei Dimensionen hast Du einen Quader, der durch den Punkt
in acht Teilbereiche zerlegt wird. Die Gewichte ergeben sich
aus dem Volumen des jeweils gegenüberliegenden Teilquaders.

In meinen Worten: Wenn A die Ecke vorne, oben, rechts wäre, dann wäre das Gewicht dort der Teilquader in der Ecke hinten, unten, links?

Das hiesse, dass man die gewünschte Grösse acht mal berechnen müsste und diese dann (entsprechend gewichtet) aufsummieren.

Da die 3 Variablen physikalischer Natur sind, macht es wahrscheinlich Sinn, die Teil-Längen jeweils vor der Berechnung auf 1 zu normieren, oder?

Danke für Deine Hilfe.

Liebe Grüße,
coco

Hallo,

Super, mit dem Begriff habe ich eine gute Anleitung gefunden:

http://elib.uni-stuttgart.de/opus/volltexte/2003/145… (Seite 16-18).

Ist gar nicht so aufwendig, wie ich ursprünglich dachte.

LG,
coco