Ellipsoid

Hallo,
ich versuche seit grausamer Zeit den Schnittpunkt einer Geraden mit einem Ellpsoid im 3-D-Raum zu finden.
Das sind die gleichungen eines Ellipsiod. ich hab dafür die Gleichungen 3,4, und 5 genommen…
http://mathworld.wolfram.com/Ellipsoid.html
als Beispiel:
Gerade x:frowning:0 0 0) +t(1 2 3)
für die Ellipsiod z.b. a=0.5, b=0.6,c=0.8
gesucht sind die winkel phi und Tetha und t …
sollte lösbar sein, 3 Gleichungen mit drei unbekannten.
Danke und Gruß

MOD: Tippfehler im Titel für Archiv korrigiert

Hallo Sami !

In der Gleichung des Ellipsoids steht ja x für x1, y für x2, und z für x3. Aus deiner Geradengleichung kannst du entnehmen, dass x1=t, x2=2t und x3=3t.
Wenn du das in die Ellipsoidgleichung einsetzt erhälst du eine quadratische Gleichung für t. Die kann entweder eine, zwei oder gar keine Lösung haben, je nachdem ob die Gerade den Ellipsoid in einem, zwei oder gar keinem Punkt schneidet. Wenn du t hast kannst du x,y und z ausrechnen. Wenn du Probleme hast von x,y und z auf r, phi und theta zu kommen, schreib einfach nochmal.
Ich hoffe, dass hilft dir erst mal weiter.

hendrik

Hallo Hendrik,
Danke…
bin aber nicht weitergekommen… danach werden die Gleichungen etwas wild…
wenn ich allgemein löse…

aus Gleichung (5) aus dem link…wird

t= c/z1*cos(tetha)

in (4) y1*c/z1 *cos(tetha) = b*sin(phi) * sin(tetha)
–>>phi = arsin(y1*c/z1*cos(tehta)/b/sin(theta) )

phi = arsin(y1*c/z1/b/tan(tetha))

t und phi in (3) einsetzen

x1*c/z1*cos(tetha) = a*cos(arsin(y1*c/z1/b/tan(tetha)))* sin(tetha)

wenn ich richtig gelöst habe,
dann komme ich nicht weiter, ausklammern nach tetha, wie soll gehen??

aus Gleichung (5) aus dem link…wird

t= c/z1*cos(tetha)

in (4) y1*c/z1 *cos(tetha) = b*sin(phi) * sin(tetha)
–>>phi = arsin(y1*c/z1*cos(tehta)/b/sin(theta) )

phi = arsin(y1*c/z1/b/tan(tetha))

t und phi in (3) einsetzen

x1*c/z1*cos(tetha) = a*cos(arsin(y1*c/z1/b/tan(tetha)))*
sin(tetha)

wenn ich richtig gelöst habe,
dann komme ich nicht weiter, ausklammern nach tetha, wie soll
gehen??

Wenn du die Aufgabe mit einem Computerprogramm lösen willst. würde ich dir davon abraten trigonometrische Funktionen zu verschachteln.
Aus Gleichung (5) bekommst du phi=arccos(z/c) was der Computer gut rechnet wenn |c| groß genug ist.
Wenn du Gleichung (3) durch a und Gleichung (4) durch b teilst und dann beide quadrierst und addierst kriegst du
(x/a)2+(y/b)2=sin2(phi),
denn cos2(theta)+sin2(theta)=1.
Wenn also |c| sehr klein ist kannst du auch
phi=arcsin(sqrt((x/a)2+(y/b)2)) berechnen.

Wenn du Gleichung (4) durch Gleichung (3) teilst erhälst du
y/x=(b/a)*tan(theta), also theta=arctan(ay/bx).
Das geht wenn |bx| groß genug ist.
Wenn |bx| sehr klein ist kann man sich so helfen:
Man multipliziert Gleichung (5) mit (1/c)*cos(theta) und dividiert Gleichung (3) durch a. Dann quadriert man beide, addiert dann und erhält
(x/a)2+(z/c)2*cos2(theta)=cos2(theta),
also theta=arccos(xc/(a*sqrt(c2-z2))).
Jetzt hat man natürlich Probleme wenn |a*sqrt(c2-z2)| sehr klein ist. Falls das daran liegt, dass |a| sehr klein ist hat man noch die Chance
theta=arcsin(yc/(b*sqrt(c2-z2))).
Falls aber |sqrt(c2-z2)| sehr klein ist oder eben |b| hilft einem das auch nicht weiter. Es sollte allerdings selten vorkommen, dass man keine der Formeln anwenden kann.
Wie das mit r aussieht kann ich dir leider nicht beantworten, vermutlch kann man r schon aus a,b und c berechnen.

So ich hoffe das ist jetzt nicht zu kompliziert geworden und hilft dir weiter.

hendrik