Umkehrfunktion gesucht

45 views
Skip to first unread message

Michael Koch

unread,
Jan 12, 2022, 2:27:49 PM (9 days ago) Jan 12
to
Hallo,

ich stehe vor diesem Problem und komme nicht weiter.
Der Vektor [x1,y1,z1] ist normiert, hat also den Betrag 1.
Zu diesem Vektor wird jetzt ein gegebener Vektor [a, b, c] addiert:
[x2, y2, z2] = [x1+a, y1+b, z1+c]
Dieser Vektor wird jetzt wieder auf die Länge 1 normiert:
r = sqrt(x2^2 + y2^2 + z2^2)
[x3, y3, z3] = [x2/r, y2/r, z2/r]

Gesucht ist die Umkehrfunktion, also [x3, y3, z3] ist gegeben und [x1,y1,z1] ist gesucht. Ist das lösbar?

Gruß
Michael

Michael Koch

unread,
Jan 12, 2022, 3:02:51 PM (9 days ago) Jan 12
to
Zusätzlich können wir noch davon ausgehen, dass a, b und c im Intervall [-0.99 ... +0.99] liegen.

Rainer Rosenthal

unread,
Jan 12, 2022, 3:24:23 PM (9 days ago) Jan 12
to
Ja, ist lösbar, allerdings gibt es i.A. zwei Lösungen.

Ich schreibe
O = [ 0, 0, 0] für den Koordinatenursprung,
P1 = [x1, y1, z1] und
P2 = [x2, y2, z2] und
P3 = [x3, y3, z3] und
v = [ a, b, c].

Ich wiederhole Deine Konstruktion mit diesen Abkürzungen:
Du gelangst durch die Addition P1 + v zu einem Punkt P2.
Weil P2 durch Normierung zu P3 wird, ist P2 = L*P3, L = Länge von P.
Wir haben also P1 + v = L*P3.

Den Vorgang drehen wir jetzt um:
Auf der Geraden t*P3, t > 0, bilden wir für jedes t den Punkt
X(t) = t*P3 - v
Auf der von den X(t) gebildeten Geraden gibt es mindestens einen Punkt
X(t1) mit Abstand 1 zum Ursprung O. Im Allgemeinen wird es noch einen
zweiten Punkt X(t2) geben mit Abstand 1 zum Ursprung O.
Einer dieser Punkte ist dann der gesuchte Punkt P1, denn es gilt
X(t1) + v = t1*P3
und
X(t2) + v = t2*P3, d.h. beide erfüllen die Bedingung für P1:
P1 + v = L*P3 mit positiver reeller Zahl L.

Gruß,
Rainer

Rainer Rosenthal

unread,
Jan 12, 2022, 3:27:37 PM (9 days ago) Jan 12
to
Am 12.01.2022 um 20:42 schrieb Stefan Ram:

> der Oberfläche der Einheitskugel kennt, kann man nicht
> wissen, über welchen Zwischenpunkt (x1/r, y1/r, z1/r) der
> Weg geführt hat, und daher (x1, y1, z1) nicht mehr ermitteln.

Du hast nicht berücksichtigt, dass der Vektor v = [a, b, c] ja auch
bekannt ist.

Gruß,
Rainer

Andreas Leitgeb

unread,
Jan 12, 2022, 3:34:39 PM (9 days ago) Jan 12
to
Für irgendeine positive (unbekannte) Skalierung von [x3, y3, z3],
sagen wir r'*[x3, y3, z3] mit r'>0
ist also r' * [x3, y3, z3] - [a, b, c] == [x1,y1,z1], und [x1,y1,z1]
liegt auf der Einheitskugel - mehr wissen wir davon nicht mehr,
also: (r'*x3-a)^2+(r'*y3-b)^2+(r'*z3-c)^2 == 1 nach r' auflösen.

Da die Normierung ([x2, y2, z2] -> [x3, y3, z3]) jedenfalls mit einem
positiven r passiert sein musste, kann man negative Lösungen für r'
ausschließen, aber je nach [a, b, c] ist es durchaus möglich, dass die
hier umzukehrende Operation gar nicht injektiv war, eine eindeutige
Rückrechnung also gar nicht immer möglich ist, sondern nur dann, wenn
r' eine Doppellösung ist, oder die zwei Lösungen für r' verschiedenes
Vorzeichen haben.

Auf der Einheitskugel gibt es je nach [a, b, c] auch Vektoren, die
nicht auf dem beschrieben Weg zustandegekommen sein können, und zwar
d.u.n.d. wenn die Länge des Vektors [a, b, c] echt größer als 1 ist.
Je länger der Vektor [a, b, c] (jenseits der Länge 1), desto kleiner
die Bildmenge der Operation.

Andreas Leitgeb

unread,
Jan 12, 2022, 3:44:00 PM (9 days ago) Jan 12
to
Nachtrag zur Zusatz-angabe, dass [a,b,c] eine Länge < 1 hat:

Damit ist nun gewährleistet, dass jedes [x3,y3,z3] auf der
Einheitskugel ein eindeutiges [x1,y1,z1] hat.

Die Eindeutigkeit ergibt sich dann dadurch, dass der "+/- wurzel(...)"-teil
bei der Lösung der quadratischen Gleichung dann stets (betragsmäßig)
größer ist, als der Teil vor der Wurzel, und somit nur das "+"
zu einer positiven Lösung für r' führt.

Andreas Leitgeb

unread,
Jan 12, 2022, 3:46:56 PM (9 days ago) Jan 12
to
Stefan Ram <r...@zedat.fu-berlin.de> wrote:
> Ich hatte den Teiltext "[x3, y3, z3] ist gegeben und
> [x1,y1,z1 ] ist gesucht" berücksichtigt.
>
> Das, was Du meinst, wäre meiner Meinung nach statt dessen:
> "[ x3, y3, z3 ]und[ a, b, c ]sind gegeben und[ x1, y1, z1 ]
> ist gesucht".

Weiter oben im Text des OP: "... ein gegebener Vektor [a, b, c] ..."
also ist auch [a, b, c] gegeben.

Michael Koch

unread,
Jan 12, 2022, 3:52:28 PM (9 days ago) Jan 12
to

>
> Weiter oben im Text des OP: "... ein gegebener Vektor [a, b, c] ..."
> also ist auch [a, b, c] gegeben.

ja, es war so gemeint dass auch bei der Suche nach [x1, y1, z1] der Vektor [a, b, c] gegeben ist.
Wir können auch davon ausgehen dass der Betrag des Vektors [a, b, c] kleiner als 1 ist.

Gruß
Michael

Andreas Leitgeb

unread,
Jan 12, 2022, 4:17:22 PM (9 days ago) Jan 12
to
Hast du meine direkte Antworten auf deine ursprüngliche Frage auch
gesehen, oder nur meinen Kommentar an Stefan?

Rainer Rosenthal

unread,
Jan 12, 2022, 5:01:35 PM (9 days ago) Jan 12
to
Am 12.01.2022 um 21:52 schrieb Michael Koch:

> Wir können auch davon ausgehen dass der Betrag des Vektors [a, b, c] kleiner als 1 ist.

Damit gibt es stets zwei Lösungen.
Die eindeutige Lösung ergibt sich nämlich nur in dem Fall, dass P3
senkrecht ist zu P1.
Und dann ist |t*P3-P1| minimal für t = 0.
Wir wissen, dass P1 = X(t) = t*P3 - v ist, also v = t*P3 - P1.
Darum |v| = |t*P3-P1| >= |0*P3-P1| = |O-P1| = |P1| = 1.
Eindeutige Lösung P1 gibt es also nur für v >= 1.

Gruß,
Rainer

Rainer Rosenthal

unread,
Jan 12, 2022, 5:10:54 PM (9 days ago) Jan 12
to
Am 12.01.2022 um 21:43 schrieb Andreas Leitgeb:
> Nachtrag zur Zusatz-angabe, dass [a,b,c] eine Länge < 1 hat:
>
> Damit ist nun gewährleistet, dass jedes [x3,y3,z3] auf der
> Einheitskugel ein eindeutiges [x1,y1,z1] hat.
>
Oh, das ist ja lustig. Nach meinen Überlegungen und Skizzen ist es
gerade umgekehrt. Ich hatte gerade bewiesen, dass nur mit Länge >= 1
eine eindeutige Lösung erreichbar ist. Ich nenne wieder [a,b,c] = v.
Der Fall "Länge von v = 1" hat die eindeutige Lösung
P1 = X(0) = 0*P3 - v = -v. Wie man sieht, ist |P1| = |-v| = |v| = 1.

Gruß,
Rainer

Rainer Rosenthal

unread,
Jan 12, 2022, 5:49:55 PM (9 days ago) Jan 12
to
Am 12.01.2022 um 21:24 schrieb Rainer Rosenthal:

>
> Ja, ist lösbar, allerdings gibt es i.A. zwei Lösungen.
>

Irgendwie ist es wohl etwas spät ...
Das muss ich mir morgen nochmal in Ruhe anschauen, sorry.

Gruß,
RR

Andreas Leitgeb

unread,
Jan 12, 2022, 5:51:29 PM (9 days ago) Jan 12
to
Rainer Rosenthal <r.ros...@web.de> wrote:
> Am 12.01.2022 um 21:43 schrieb Andreas Leitgeb:
>> Nachtrag zur Zusatz-angabe, dass [a,b,c] eine Länge < 1 hat:
>> Damit ist nun gewährleistet, dass jedes [x3,y3,z3] auf der
>> Einheitskugel ein eindeutiges [x1,y1,z1] hat.
> Oh, das ist ja lustig. Nach meinen Überlegungen und Skizzen ist es
> gerade umgekehrt. Ich hatte gerade bewiesen, dass nur mit Länge >= 1
> eine eindeutige Lösung erreichbar ist.

Abgesehen davon, dass ich auch selber einen Denkfehler haben könnte,
bin ich mir meiner Deutung schon ziemlich sicher:

Denke dir mal einfach einen "ganz kurzen" v, also etwa von der Länge
eines eps. Wenn du dieses v zu einem Punkt auf der Einheitskugel addierst
und dann normierst, also entlang der Geraden durch den Ursprung den
Punkt wieder auf die Einheitskugel setzt, ohne dabei an 0 vorbeizugehen,
glaubst du dann wirklich, dass noch ein anderer ursprünglicher Punkt P1
zum gleichen Ergebnis P3 führen könnte?

Nun zum anderen Fall: denke dir einen v = [ 0, 0, Ackermann(42,42)]
Egal, zu welchem Punkt der Einheitskugel man das dazuzählt, und dann
normiert, wird das Ergebnis "verdammt nah" zum Nordpol sein. Ob der
Punkt P1 nun auf der selben Hemisphäre wie das sich ergebende P3 ist,
oder auf der anderen... ist da nachträglich nicht mehr festzustellen:
also 2 mögliche Lösungen.

Rainer Rosenthal

unread,
Jan 12, 2022, 6:00:59 PM (9 days ago) Jan 12
to
Am 12.01.2022 um 23:51 schrieb Andreas Leitgeb:

>
> Abgesehen davon, dass ich auch selber einen Denkfehler haben könnte,
> bin ich mir meiner Deutung schon ziemlich sicher:
>
> Denke dir mal einfach einen "ganz kurzen" v, also etwa von der Länge
> eines eps. Wenn du dieses v zu einem Punkt auf der Einheitskugel addierst
> und dann normierst, also entlang der Geraden durch den Ursprung den
> Punkt wieder auf die Einheitskugel setzt, ohne dabei an 0 vorbeizugehen,
> glaubst du dann wirklich, dass noch ein anderer ursprünglicher Punkt P1
> zum gleichen Ergebnis P3 führen könnte?
>

Danke, wie ich schon sagte, es war wohl schon etwas spät.
Ich hatte anscheinend plötzlich ein anderes P3 mitspielen lassen.

Morgen werde ich es sicher besser durchschauen.
Es war ja nicht alles schlecht, was ich da gezeichnet hatte :-)
Hoffe ich ...

Gruß,
Rainer

Andreas Leitgeb

unread,
Jan 12, 2022, 7:18:02 PM (9 days ago) Jan 12
to
Noch was: Ich habe nicht gemeint, dass mit |v|>1 eine Umkehrung für
jedes P3 uneindeutig wäre, sondern dass es nur mit so einem v
die Operation nicht mehr injektiv ist.

Mit einem netten kleinen CAS am Handy ("HiPER Calc")
habe ich mir mal die quadratische Gleichung nach r lösen lassen,
wobei hier die Variablen nach v = [a,b,c] und P3 = [x,y,z]
definiert sind. Da P3 auf dem Einheitskreis vorausgesetzt wird,
lass ich den Quotienten weg, der da sonst (x^2 + y^2 + z^2)
gewesen wäre:

r = a x + b y + c z +/-
sqrt( 2 a b x y + 2 a c x z + 2 b c y z
+ x^2 - b^2 x^2 - c^2 x^2
+ y^2 - a^2 y^2 - c^2 y^2
+ z^2 - a^2 z^2 - b^2 z^2 )

das ist weiter gleich:

r = a x + b y + c z +/-
sqrt( 2 a b x y + 2 a c x z + 2 b c y z
+ x^2 ( 1 - b^2 - c^2 )
+ y^2 ( 1 - a^2 - c^2 )
+ z^2 ( 1 - a^2 - b^2 ) )

Aus "Symmetrie-gründen" kann man nun z.B. P3 als [0,0,1] festlegen:

r = c +/- sqrt( 1 - a^2 - b^2 )

Da sieht man schon: wenn die auf P3 normal stehende Komponente von v
länger als 1 ist, dann gibts keine Lösung, wenn diese Komponente
genau 1 ist, gibts eine doppellösung

und wenn man dann den v über Länge R und vertikal-komponente c
parametrisiert:

r = c +/- sqrt( 1 - (R^2 - c^2) ) =
c +/- sqrt( c^2 + 1 - R^2 )

dann kriegt man schon ein Gefühl, wie es bei R < 1 keine negative
Determinante geben kann, und der Wurzel-ausdruck garantiert größer
ist, als das c davor, und somit die Lösungen verschiedenes Vorzeichen
haben, und nur eine davon dann gilt.

Ist jedoch R ein bisschen größer als 1, dann ist es genau umgekehrt,
und man kriegt einen Wurzelausdruck der etwas kleiner als c ist, und
somit je nach c zwei positive oder zwei negative(also keine) Lösungen.

qed ;-)

Michael Koch

unread,
Jan 14, 2022, 7:56:53 AM (7 days ago) Jan 14
to
Ich möchte mich ganz herzlich für eure Antworten bedanken, die mir sehr weitergeholfen haben.
Die Anwendung, bei der ich auf dieses Problem gestoßen bin, ist folgende:
Ein Projektor mit einem 180° Fisheye-Objektiv wirft ein Bild in eine halbkugel-förmige Planetariums-Kuppel. Die Frage war, wie man das Bild verzerren muss, wenn sich das Projektionsobjektiv nicht im Zentrum der Kuppel befindet, sondern seitlich oder in der Höhe versetzt ist. Dank eurer Hilfe ist das Problem jetzt gelöst!

Gruß
Michael
Reply all
Reply to author
Forward
0 new messages