Wie kann ich beim GTR das Minimum bestimmen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich bin mir nicht sicher, ob dein Vorgehen überhaupt funktioniert. Du hast ja 2 Geradengleichungen und somit 2 Laufvariablen - z.B. s und t. Der minimale Abstand muss ja aber nicht für s=t gelten.

Das analytische Vorgehen wäre ja wie folgt:

  1. Die kürzeste Verbindung ergibt sich durch eine Gerade, die senkrecht auf beiden Geraden steht
  2. Dann berechnest du die Distanz der Schnittpunkte der Hilfsgeraden mit beiden Geraden

Ist bei mir lange her, aber war ja irgendwie so:

  1. Ebene erstellen, die aus beiden Richtungsvektoren besteht
  2. Ebene jeweils durch beide Geraden legen und Abstand bestimmen
  3. Für die Erstellung des Ebenenvektors kann das Kreuzprodukt helfen. (bildet einen senkrechten Vektor zu 2 Eingabevektoren) Alternativ mit Skalarprodukt und Gleichungssystem

Ich weiß, dass ich es damals so als Programm im GTR umgesetzt habe, wie man es auch in Übungsaufgaben berechnet hat. ;)

Numerisch fällt mir da nicht wirklich was sinnvolles ein für den Abstand, falls nicht stupide 2-dimensional alle Punkte einer Geraden mit den anderen vergleichen.

fjf100 
Fragesteller
 13.04.2019, 17:36

Ich habe die Formel für den Abstand von 2 windschiefen Geraden im GTR einprogrammiert.

Hier geht es aber um die Bestimmumg,wo nun die Punkte auf den beiden Geraden liegen und dafür braucht man einen der Geradenparameter t oder s

g: x=a1+t*m1 und h: x=a2+s*m2

Beispiel: minimaler Abstand liegt bei t=1 also dmin

Ich nehme jetzt den Startwert t=1 und las den Rechner um STEP -0,1 von t=2 herunterzählen.

mit t>1 ist dann

(d1-d2)>0 positiv weil ja d1>d2 ist

mit t<1 ist dann

(d1-d2)<0 negativ,weil ja dann d1<d2 ist (minimum ist dann schon überschritten

das kann ich dann mit der if -Anweisung ausnutzen

if (d1-d2)>0 then next (nächste Rechnung t2=t1-0,1)

if (d1-d2)<0 then Ausgabe t=... und P1(x1/y1/z1) und P2(x2/y2/z2) und dmin=...

Somit habe ich dann die beiden Punkte auf den beiden Geraden P1 und P2 und den minimalen Abstand.

Ich glaub,daß ist die Lösung.

Meine Fragestellung ist ungenau,weil es hier auch um die Lage der beiden Punkte geht,die auf den beiden geraden liegen.

Nur zur Berechnung des minimales Abstandes,habe ich natürlich eine Formel

0

1.) Ein Taschenrechner kann nicht "exakt" berechnen. Der kann nämlich immer nur bis x Stellen nach dem Komma darstellen.

2.) Bin ich mir nicht sicher was dein Programm genau macht. Erläutere das doch bitte mal.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium
fjf100 
Fragesteller
 13.04.2019, 15:19

Stell dir vor,daß der minimale Abstand von 2 Geraden beim Geradenparameter t=1 liegt.

Das bedeutet,daß bei t=2 der Abstand größer ist

Anfangswert für den Rechner tan=2

nun zählt der Rechner in Schritweite von Step=-0,1 herunter und das Programm berechnet immer wieder den Abstand neu

solage dann t>1 ist,ist auch der Abstand d=.. größer als dmin

also (d1-d2)>0 d1>d2 Abstand d wird ja immer kleiner,bis t=1 ist

Dies gilt so lange ,bis t=1 erreicht ist

ist dieser Wert überschritten,dann ist (d1-d2)<0 d1<d2 Abstand wird wieder größer

Ist das Minimum überschritten,dann findet ein Vorzeichenwechsel statt.

Beispiel: bei t1=0,5 ist d1=... bei t2=0,4 ist d2=...

dann ist d1<d2 also d1-d2<0 weil dann der Abstand immer größer wird.

Der Rechner rechnet dann immer weiter,bis zum Abruch.

Er findet aber nicht das Minimum,wenn die Bedingung (d1-d2)<=0,2 ist

Ich kann keine Wertetabelle speichern und dann dmin auslesen lassen,was beim Geradenparametr in diesen fall bei t=1 liegt

Ergebnis wäre dann an der Ausgabe

dmin=.... bei t=1

0
triopasi  13.04.2019, 15:29
@fjf100

Und wieso ist das Abbruchkriterium nicht einfach "wenn die Distanz wieder wächst"? Dann hast du ja offensichtlich schon die minimale Distanz gefunden.

0
fjf100 
Fragesteller
 13.04.2019, 17:24
@triopasi

Aber wie soll ich denn das programmieren?

Einen Befehl habe ich dafür nicht.

Du hast mich aber auf eine Idee gebracht.

Ich glaub,ich kann den Vorzeichenwechsel verwenden

if (d1-d2)>0 then next also d1>d2

if (d1-d2)<0 then Ausgabe t=1 und dmin=...

Es findet ja ein Vorzeichenwechsel statt.

für t>1 ist (d1-d2)>0 positiv

für t<1 ist (d1-d2)<0 negativ

so müßte es eigentlich funktionieren

Vielen Dank!

1