Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Sep 04, 2025 04:35

Foren-Übersicht » Programmierung » Mathematik-Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Vectorspass
BeitragVerfasst: Mi Feb 17, 2010 01:51 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich hab gerade in einer Newsgroup eine Frage gelesen und wollte mal euch Fragen ob mein Lösungsansatz richtig ist.

Gegeben: d[0]*(a[0]+b[0]s) + d[1]*(a[1]+b[1]s) + d[2]*(a[2]+b[2]s) = c[0]*d[0] + c[1]*d[1] + c[2]*d[2]
Gesucht: s

d[0] interpretiere ich mal als d mit kleiner 0, also vermutlich die 1.Komponente der Variablen d.

Meine Idee war: "Das sieht ja aus wie Vectoren!"
Meine notation: GROSSBUCHSTABEN sind Vectoren, kleinbuchsten sind Skalare:

Die obige Formel entspricht:

D*(A+sB) = C*D

Im Karthesischen Koordinatensystem (und allgemein auch) ist C*D kommutativ, deshalb
D*(A+sB) = D*C

Da wiederum kann ich mich auf die wirklich interessanten Teile beschränken und die Multiplikation mit D einfach wegkürzen:

A+sB = C

Jetzt ging ich davon aus, dass die Addition von Vectoren genauso funktioniert wie mit skalaren. So bekomme ich A auf die andere Seite:

sB = C-A

s ist also ein Skalar, welcher einen Vector B so skaliert, dass dieser Vector gleich dem Ergebnisvector C-A ist.

(C-A) ist der Ortsvector eines Punktes durch diesen der Strahl geht welcher durch den KOU und B verläuft.

Ich kann also jetzt s als Skalierungsfaktor berechnen und zwar

s = |C-A| / |B|

Ist das irgendwie nachvollziehbar und vielleicht auch noch richtig? :mrgreen:
Oder habe ich zwischendrinnen Annahmen getroffen die so nicht stimmen?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vectorspass
BeitragVerfasst: Mi Feb 17, 2010 09:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
s = |C-A| / |B|

Das funktioniert nur, wenn C-A und B linear abhängig sind. Du musst also prüfen ob (C-A) * B = (+/-)1 ist. Wenn das nicht der Fall ist gibt es keine gültige Lösung.

Des weiteren bin ich mir gerade nicht sicher ob man D so kürzen darf.

Ich würde es so rechnen, spart sogar ein paar Wurzeln:
Code:
  1. D*A + D*Bs = C*D
  2. <=> (D*B)s = C*D - D*A
  3. <=> s = (C*D - D*A) / (D*B)

Hier musst du natürlich D*B != 0 prüfen, sonst gibt es keine Lösung.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vectorspass
BeitragVerfasst: Mi Feb 17, 2010 09:22 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,

es ist falsch D einfach rauszukürzen, da es sich um ein Skalarprodukt handelt.
Für das Skalarprodukt nehm ich lieber eine andere Notation, um es nicht mit der normalen Multiplikation zu verwechseln.
Du könntest höchstens

<D, A+sB> = <D, C>

umstellen, dann erhälst du

<D, A+sB-C> = 0

Das Skalarprodukt ist zwar auch 0 wenn du A+sB-C = 0 setzt aber es gibt noch mehr Lösungen.
Z.B. wäre auch <(1, 2, 1),(-1, 1, -1)> = 0 eine Lösung.

Im Grunde genommen sind durch diese Gleichung alle Vektorpaare (D, A+sB-C) gesucht, die einen rechten Winkel haben.

Um s auszurechnen, stellst du am besten so um :
<D, A-C> = <D, sB> = s*<D, B>


Also s = <D, A-C> / <D, B>

Viele Grüße
dj3hut1

P.S. im Grunde genommen, dasselbe was coolcat hat :)

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vectorspass
BeitragVerfasst: Mi Feb 17, 2010 09:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
P.S. im Grunde genommen, dasselbe was coolcat hat :)

Hm, jein...bis auf ein Vorzeichen. Also entweder bei mir oder bei dir fehlt ein Vorzeichen.

Ich glaube es liegt bei dir an
Code:
  1. <D, A-C> = <D, sB>

was eigentlich
Code:
  1. <D, A-C> = <D, -sB>

sein müsste.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vectorspass
BeitragVerfasst: Mi Feb 17, 2010 20:20 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
ok... schade. Ich dachte schon es wäre etwas hängen geblieben. :?
Aber gut das wir drüber gesprochen haben. :wink:

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vectorspass
BeitragVerfasst: Do Feb 18, 2010 07:50 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Hab nochmal alles zusammengefasst von vorne bis hinten.. Für Vektoren gelten nicht alle Rechenregeln die bei Skalaren gelten.

D*(A+sB) = D*C
D*A+s * D*B = D*C
s * D*B = D*C-D*A
s * D*B = D*(C-A)
s = D*(C-A) / (D*B) mit D*B <> 0

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Mathematik-Forum


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]