8 svar
108 visningar
Arvin 71
Postad: 5 apr 09:00 Redigerad: 5 apr 09:00

Linjär Algebra avstånd två linjer mha projektion

Hej, jag skrev en tenta i onsdags och är lite osäker på ifall jag har projicerat vektorn på rätt riktningsvektor. 
Mina beräkningar är något otydliga så jag kan förklara vidare ifall det är något som är oklart.

Kom gärna med era egna svar (lösning behövs ej), mitt syfte är att förstå ifall jag tänkt rätt. 

Frågan löd:

  • Om vi har två linjer L1, och L2 som på parameterform skrivs:
  • L1= (1,0,1)+s(1,2,3)
  • L2= (2,1,1)+t(101)

Där s och t är godtyckliga tal. Vad är avståndet d mellan dessa linjer?  


En sista kommentar. 
Jag ändrade min valda riktningsvektor i sista stund och därför skiljer den sig från det jag beskrivit i lösningstexten och beräkningen. 

Jag är tacksam för den som kan hjälpa mig.

Bedinsis 2998
Postad: 5 apr 09:44 Redigerad: 5 apr 09:53

Jag vill ha det till att om man bildar det plan som har utsträckning i riktningarna

s(1,2,3)

och

t(1,0,1)

så har man det plan vars normal pekar rätt emellan de två punkterna som ligger närmast varandra på de två linjerna. Denna normal kan man få fram genom kryssprodukt. Projicerar man en vektor mellan de två linjerna på den normalen borde man få den vektor som pekar mellan de två närmsta punkterna på linjerna.

Då jag tittar på din lösning undrar jag om du har gjort rätt. Jag får det till att du räknar med att (2,1,1) definitivt är den punkt på L2 som ligger närmast L1. Jag kan dock ha fel. Vad skulle du fått för lösning om du tagit en annan punkt på L2?


Eller om vi bildar ett annat exempel:

Vad är minsta avstånd mellan L2= (100,0,0)+t*(1,0,0) och L1= (0,100,1)+s*(0,2,0)?

Nu har jag medvetet valt att minsta avstånd är mellan (0,0,0) och (0,0,1) dvs. 1.

Kryssprodukten blir (1,0,0) x (0,2,0) = (0,0,2).

Projicerar man (0,100,1)-(100,0,0)= (-100,100,1) på den vektorn så får man

(-100,100,1)*(0,0,2)/(||(0,0,2)||^2) (0,0,2) = 2/4 (0,0,2) = (0,0,1)

Jo, det verkar stämma.


Då prövar vi med din metod:

AB= (-100,100,1)

L1:s riktningsvektor: (1,0,0)

proj(AB)= (-100,100,1)*(1,0,0)/(||(1,0,0)||^2) (1,0,0) = (-100,0,0)

Q= AB-proj(AB)= (0,100,1)

||Q||= ett helt annat värde än 1.

Sedan tycks det som att du inte projicerade på (1,2,3) utan på (1,0,1) som var en punkt på linjen, ej en riktningsvektor. EDIT: Och detta var något du redan skrivit om, ursäkta, jag borde läst hela ditt inlägg.

Arvin 71
Postad: 5 apr 10:01
Bedinsis skrev:

Jag vill ha det till att om man bildar det plan som har utsträckning i riktningarna

s(1,2,3)

och

t(1,0,1)

så har man det plan vars normal pekar rätt emellan de två punkterna som ligger närmast varandra på de två linjerna. Denna normal kan få fram genom kryssprodukt. Projicerar man en vektor mellan de två linjerna på den normalen borde man få den vektor som pekar mellan de två närmsta punkterna på linjerna.

Då jag tittar på din lösning undrar jag om du har gjort rätt. Jag får det till att du räknar med att (2,1,1) definitivt är den punkt på L2 som ligger närmast L1. Jag kan dock ha fel. Vad skulle du fått för lösning om du tagit en annan punkt på L2?

Eller om vi bildar ett annat exempel:

Vad är minsta avstånd mellan L2= (100,0,0)+t*(1,0,0) och L1= (0,100,1)+s*(0,2,0)?

Nu har jag medvetet valt att minsta avstånd är mellan (0,0,0) och (0,0,1) dvs. 1.

Kryssprodukten blir (1,0,0) x (0,2,0) = (0,0,2).

Projicerar man (0,100,1)-(100,0,0)= (-100,100,1) på den vektorn så får man

(-100,100,1)*(0,0,2)/(||(0,0,2)||^2) (0,0,2) = 2/4 (0,0,2) = (0,0,1)

Jo, det verkar stämma.

Då prövar vi med din metod:

AB= (-100,100,1)

L1:s riktningsvektor: (1,0,0)

proj(AB)= (-100,100,1)*(1,0,0)/(||(1,0,0)||^2) (1,0,0) = (-100,0,0)

Q= AB-proj(AB)= (0,100,1)

||Q||= ett helt annat värde än 1.

Sedan tycks det som att du inte projicerade på (1,2,3) utan på (1,0,1) som var en punkt på linjen, ej en rikningsvektor.


Jag förstår hur du har tänkt och det låter logiskt. Jag ska titta på uppgiften igen ikväll i lugn och ro och fundera vidare. 
För att förtydliga lite: det jag försökt skriva är att man kan välja vilken punkt som helst på en av linjerna. Om man sedan proj den på riktningsvektor som är 101 på L2 (101 råkar också vara en punkt på L1) får man vektorn som är i samma riktning som linjen. Men vi vill ju ha vektorn mellan vektorerna som är vinkelrät mot den projicerade vektorn. Och ifall vi tänker att vektor AB (som vi beräknade till 1,1,0) är hypotenusan av en triangel och riktningsvektorn då är närstående katet så borde vektorn som är vinkelrät (samma som vektor mellan linjerna) vara AB-proj(AB). Men jag är osäker. Detta beräknar kanske bara ETT avstånd och inte avstånden. För det kan väl variera? 

Bedinsis 2998
Postad: 5 apr 10:08

Ja, avståndet kan variera beroende på vilka punkter man mäter avstånd emellan. Man använder sig av projiceringar o dylikt för att hitta de punkter som har minst avstånd. Det som du fick fel på är att du nu räknat med att en av punkterna som du skall mäta avstånd till definitivt var (2,1,1).

Jag tror dock att man från denna riktningsvektor kan få svaret genom att anta att -Q pekar från (2,1,1) till den närmsta punkten på andra linjen, och få fram den verkliga vektorn mellan de närmsta punkterna genom att ta -Q minus -Q:s projektion på den andra riktningsvektorn.

Arvin 71
Postad: 5 apr 11:03
Bedinsis skrev:

Ja, avståndet kan variera beroende på vilka punkter man mäter avstånd emellan. Man använder sig av projiceringar o dylikt för att hitta de punkter som har minst avstånd. Det som du fick fel på är att du nu räknat med att en av punkterna som du skall mäta avstånd till definitivt var (2,1,1).

Jag tror dock att man från denna riktningsvektor kan få svaret genom att anta att -Q pekar från (2,1,1) till den närmsta punkten på andra linjen, och få fram den verkliga vektorn mellan de närmsta punkterna genom att ta -Q minus -Q:s projektion på den andra riktningsvektorn.

Aha, så även ifall min logik hade varit rätt, då har jag ändå projicerat på fel linje? Den skulle alltså projicerats på 123 som jag skrev i texten, men som jag i beräkningen ändrade till 101? 

Bedinsis 2998
Postad: 5 apr 11:33
Arvin skrev:
Bedinsis skrev:

Ja, avståndet kan variera beroende på vilka punkter man mäter avstånd emellan. Man använder sig av projiceringar o dylikt för att hitta de punkter som har minst avstånd. Det som du fick fel på är att du nu räknat med att en av punkterna som du skall mäta avstånd till definitivt var (2,1,1).

Jag tror dock att man från denna riktningsvektor kan få svaret genom att anta att -Q pekar från (2,1,1) till den närmsta punkten på andra linjen, och få fram den verkliga vektorn mellan de närmsta punkterna genom att ta -Q minus -Q:s projektion på den andra riktningsvektorn.

Aha, så även ifall min logik hade varit rätt, då har jag ändå projicerat på fel linje? Den skulle alltså projicerats på 123 som jag skrev i texten, men som jag i beräkningen ändrade till 101? 

Nu då jag tänker blir jag lite osäker. Jag tänker att om man tar

AB minus projektionen av AB på L1:s riktningsvektor

så får man vektorn som går från punkten på L1 närmast L2 till B. Kallar vi denna vektor för v så borde

-v minus projektionen av -v på L2:s riktningsvektor

ge kortaste vektorn mellan L2 och L1. Vi har då projicerat bort de bitarna i AB:s vektor som har utsträckningar längs med linjerna så det enda som återstår borde vara det som är vinkelrätt mot linjerna, dvs. kortaste avståndet.

Om man däremot jobbar med att i tur och ordning ta

AB minus projektionen av AB på L2:s riktningsvektor

kalla denna vektor v och sedan ta

-v minus projektionen av -v på L1:s riktningsvektor

så borde vi få fram samma resultat. I båda fallen har vi en vektor som har utsträckning längs med två riktningar, och vi har tagit bort alla bitar i vektorn som kan beskrivas som vektorer längs med riktningarna så det enda som återstår borde vara det som är vinkelrätt mot de två linjerna.

Arvin 71
Postad: 5 apr 12:31 Redigerad: 5 apr 12:32
Bedinsis skrev:
Arvin skrev:
Bedinsis skrev:

Ja, avståndet kan variera beroende på vilka punkter man mäter avstånd emellan. Man använder sig av projiceringar o dylikt för att hitta de punkter som har minst avstånd. Det som du fick fel på är att du nu räknat med att en av punkterna som du skall mäta avstånd till definitivt var (2,1,1).

Jag tror dock att man från denna riktningsvektor kan få svaret genom att anta att -Q pekar från (2,1,1) till den närmsta punkten på andra linjen, och få fram den verkliga vektorn mellan de närmsta punkterna genom att ta -Q minus -Q:s projektion på den andra riktningsvektorn.

Aha, så även ifall min logik hade varit rätt, då har jag ändå projicerat på fel linje? Den skulle alltså projicerats på 123 som jag skrev i texten, men som jag i beräkningen ändrade till 101? 

Nu då jag tänker blir jag lite osäker. Jag tänker att om man tar

AB minus projektionen av AB på L1:s riktningsvektor

så får man vektorn som går från punkten på L1 närmast L2 till B. Kallar vi denna vektor för v så borde

-v minus projektionen av -v på L2:s riktningsvektor

ge kortaste vektorn mellan L2 och L1. Vi har då projicerat bort de bitarna i AB:s vektor som har utsträckningar längs med linjerna så det enda som återstår borde vara det som är vinkelrätt mot linjerna, dvs. kortaste avståndet.

Om man däremot jobbar med att i tur och ordning ta

AB minus projektionen av AB på L2:s riktningsvektor

kalla denna vektor v och sedan ta

-v minus projektionen av -v på L1:s riktningsvektor

så borde vi få fram samma resultat. I båda fallen har vi en vektor som har utsträckning längs med två riktningar, och vi har tagit bort alla bitar i vektorn som kan beskrivas som vektorer längs med riktningarna så det enda som återstår borde vara det som är vinkelrätt mot de två linjerna.

Fattar.
sedan behöver vi bara ta normen och vi är

fäediga(?) 

tack för hjälpen, jag ska fundera vidare ikväll

Arvin 71
Postad: 5 apr 12:32

Nu på efterhand vill jag minnas att de möjligtvis efterfrågade det kortaste avståndet mellan linjerna. 

PATENTERAMERA Online 6075
Postad: 5 apr 13:05 Redigerad: 5 apr 13:06

Låt A’ och B’ vara de närmaste punkterna. Då skär ett linjesegment mellan dessa punkter båda linjerna under rät vinkel. Se figur.

Vi har att

AB+BB'+B'A'+A'A = 0    (1).

Avståndet mellan linjerna ges av B'A'.

Projicera båda led av (1) på vektorn u×v.

proju×vAB+B'A'=0.

Vilket ger

B'A'=proju×vAB=ABu×vu×v.

Svara
Close