Abstand windschiefer Geraden



  • Ich habe zwei windschiefe Geraden in |R^3.

    g := x=(2|0|8)+s*(4|-6|-4)
    h := x=(4|6|-3)+t*(4|-1|1)

    Jetzt brauche ich aber den minimalsten Abstand der beiden Geraden bzw die beiden Punkte auf g und h, die diesen Abstand haben. Gesucht ist nämlich die Kugel mit dem kleinsten Durchmesser, die g und h als Tangente hat.
    Soweit so klar. 🙂

    Nun dachte ich mir, ihc nehme einen Punkt G(x,y,z) auf g und einen H(x,y,z auf h.
    Demzufolge wäre doch d(G,h) = d(H,g).
    Nun hab ich halt d(G,h)=( [(x|y|z)-(4|6|-3)] x(4|-1|1) ) / sqrt(18)
    und d(H,g)= ( [(x|y|z)-(2|0|8)] x (4|-6|-4) ) / 8 und das dann gleichgesetzt.
    Da kommen dann ziemlich lange Terme raus wie (4z+4x-40)^2 und an der Stelle hab ich erstmal aufgehört, weil ich hier mal lieber fragen wollte, ob mein Vorgehen überhaupt richtig ist.

    Ich bedanke mich schonmal. 🙂

    Nachtrag: Ich bin bei folgender Gleichung die es zu lösen gilt:
    ((y+z-3)2+(4*z-x+8)2+(-5*y+30)^2)/18 = ((-4*y+6*z-48)2+(4*z+4*x-40)2+(-6*x-4*y+12)^2)/64



  • Ich würde es so machen:
    Allgemeiner Geradenpunkt auf g:
    G(2+4s6s84s)G(2+4s|-6s|8-4s)
    und analog einer auf h:
    H(4+4t6t3+t)H(4+4t|6-t|-3+t)

    Daraus dann den Vektor GH bilden. Dieser Vektor muss nun sowohl senkrecht auf den Richtungsvektor von g als auch auf den von h stehen:
    GHmh=0\vec{G H} \bullet \vec m_h = 0
    GHmg=0\vec{G H} \bullet \vec m_g = 0

    Wenn du dieses LGS löst, bekommst du konkrete Werte für s und t raus und hast die Punkte. Der Abstand dieser Punkte ist dann der Betrag des Vektors:
    GH|\vec{G H}|



  • ein quadric läßt sich direkt aus der angabe von ebenen(oder geraden, was ja egal is im Projektiven raum) bestimmen:
    http://en.wikipedia.org/wiki/Quadric

    allerdings reichen dafür meine ich keine 2 graden.

    nur so als hinweiß.

    imho...



  • Danke dEUs.
    It auch ein cooler Weg und im Endeffekt doch etwas effektiver als meiner. 😃



  • xroads42 schrieb:

    nur so als hinweiß.

    wer hat eigentlich das hinweißen erfunden? ich wäre dafür, dieses wort zu verweißen. das wirt ja seid kurzem zum standart.



  • volkard schrieb:

    xroads42 schrieb:

    nur so als hinweiß.

    wer hat eigentlich das hinweißen erfunden? ich wäre dafür, dieses wort zu verweißen. das wirt ja seid kurzem zum stan****.

    entschuldige meine unendliche dummheit.



  • Griffin schrieb:

    Nachtrag: Ich bin bei folgender Gleichung die es zu lösen gilt:
    ((y+z-3)2+(4*z-x+8)2+(-5*y+30)^2)/18 = ((-4*y+6*z-48)2+(4*z+4*x-40)2+(-6*x-4*y+12)^2)/64

    Es gibt unendlich viele Lösungen.



  • So würde ich den minimalen Abstand windschiefer Geraden berechen:
    Wir benötigen zunächst die Formel für die Länge einer Strecke:
    √((x[t]2[/t]-x[t]1[/t])[h]2[/h]+(y[t]2[/t]-y[t]1[/t])[h]2[/h]+(z[t]2[/t]-z[t]1[/t])[h]2[/h])
    Da nehmen wir erst mal die Wurzel weg und setzen unsere Geraden ein:
    (4+t*4-(2+s*4))2+(6+t*-1-(0+s*-6))2+(-3+t*1-(8+s*-4))2
    Das ganze leiten wir dann nach s und t ab:
    d((4+t*4-(2+s*4))2+(6+t*-1-(0+s*-6))2+(-3+t*1-(8+s*-4))2,s) = 136*s-36*t-32
    d((4+t*4-(2+s*4))2+(6+t*-1-(0+s*-6))2+(-3+t*1-(8+s*-4))2,t) = 36*t-36*s-18
    Beide Ergebnisse setzen wir gleich Null und lösen nach s und t auf:
    solve(136*s-36*t-32=0 and 36*t-36*s-18=0,{s,t})
    s = 0.5 and t = 1
    S und T setzen wir dann noch in unsere Abstandsgleichung ein und ziehen die Wurzel:
    √(4+1*4-(2+0.5*4))[h]2[/h]+(6+1*-1-(0+0.5*-6))[h]2[/h]+(-3+1*1-(8+0.5*-4))[h]2[/h]
    Das Ergebnis ist dann der minimale Abstand zwischen den beiden windschiefen Geraden: 12.



  • Ist das nciht genau das was ich geschrieben hab?



  • Es gibt gewisse Gemeinsamkeiten.



  • Mir fällt eine tolle allgemeine Formel ein, die ich irgendwann beim Programmieren genutzt hab:

    ( Das dicke sind die Vektoren )

    Gerade 1: = x = a + s*b
    Gerade 1: = x = c + s*d

    dann ist der Abstand:

    d = ( a-c ) * normalize( b x a );

    Zum erklären hab ich keinen Bock, is aber leicht über die Normalenform der Ebenengleichung herzuleiten, die durch eine Gerade geht und vom Stützvektor der anderen Gerade aufgespannt wird. ( Die hessesche Normalenform gibt ja den Abstand von einer Ebene zu einem Punkt an ... )



  • ja, du hast ja dann eine Ebene, die durch eine der Geraden geht und zur anderen Parallel ist. Jetzt brauchst du nur noch einen beliebigen Punkt der parallelen Gerade nehmen, da ja alle den selben Abstand haben.



  • Dommel schrieb:

    ja, du hast ja dann eine Ebene, die durch eine der Geraden geht und zur anderen Parallel ist. Jetzt brauchst du nur noch einen beliebigen Punkt der parallelen Gerade nehmen, da ja alle den selben Abstand haben.

    Eine Ebene auf der eine der Geraden liegt... oder?



  • the_alien schrieb:

    Dommel schrieb:

    ja, du hast ja dann eine Ebene, die durch eine der Geraden geht und zur anderen Parallel ist. Jetzt brauchst du nur noch einen beliebigen Punkt der parallelen Gerade nehmen, da ja alle den selben Abstand haben.

    Eine Ebene auf der eine der Geraden liegt... oder?

    Ja. Das meint er vermutlich damit. 😉 Guter Ansetz übrigends! 👍

    Ich find die traditionellen Methoden (dEUs und mastercpp) aber trotzdem besser (Geschmackssache). 🕶



  • the_alien schrieb:

    Dommel schrieb:

    ja, du hast ja dann eine Ebene, die durch eine der Geraden geht und zur anderen Parallel ist. Jetzt brauchst du nur noch einen beliebigen Punkt der parallelen Gerade nehmen, da ja alle den selben Abstand haben.

    Eine Ebene auf der eine der Geraden liegt... oder?

    ja, hast natürlich recht... 🙄



  • Konrad a. d. K. schrieb:

    Ich find die traditionellen Methoden (dEUs und mastercpp) aber trotzdem besser (Geschmackssache).

    In dem Fall werden solche Methoden gefordert, weil man die Koordinaten der Punkte mit dem kürzesten Abstand wissen will, nicht den kürzesten Abstand.



  • Wenn man den Abstand und die Punkte wissen möchte, wie wärs dann mit einer Vektorkette? So haben wir es im Mathe-LK-Unterricht auch getan.



  • was ist denn eine Vektor-Kette??

    Aber, wenn man die Punkte hat, is der Abstand ja auch kein Problem mehr...


Anmelden zum Antworten