|
|
linear abhängige Vektoren innerhalb einer Matrix finden |
|
D-RSPhoenix |
Forum-Anfänger
|
|
Beiträge: 33
|
|
|
|
Anmeldedatum: 31.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.06.2012, 13:42
Titel: linear abhängige Vektoren innerhalb einer Matrix finden
|
|
|
|
|
Hi,
Ich hab eine Matrix die aus den Vektoren der Form Vi=[Ai;Bi;Ci] besteht:
A=[V1,... Vi]
Ich weiß, dass immer je 2 dieser Vektoren linear abhängig sind.
Bsp: V1*x=V4
Ich will jetzt die zusammengehörenden Pärchen finden.
Bsp: A=[V1, V2, V3, V4, V5, V6];
es seien zB (V1,V2); (V3,V6); (V4,V5) linear abhängig
Dann sollte da rauskommen
lin_ab(A)=[1, 1, 2, 3, 3, 2]
Jemand eine Idee, wie ich das möglichst effizient erreichen kann?
Hintergrund ist ich will die Vektoren jeweils miteinander verschneiden das geht aber nur mit Vektoren, die nicht linear abhängig sind.
Für mein oben genanntes Beispiele:
V1 x V3
V1 x V4
V1 x V5
V1 x V6
V2 x V3
V2 x V4
V2 x V5
V2 x V6
V3 x V1
V3 x V2
V3 x V4
V3 x V5
V4 x V1
V4 x V2
V4 x V3
V4 x V6
V5 x V1
V5 x V2
V5 x V3
V5 x V6
V6 x V1
V6 x V2
V6 x V4
V6 x V5
(x steht hier nicht für cross() sondern für meine Verschneidungsoperation)
Um das zu realisieren zu können muss ich wissen welcher Vektor von welchem linear abhängig ist
|
|
|
|
|
flashpixx |
Forum-Guru
|
|
Beiträge: 355
|
|
|
|
Anmeldedatum: 19.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.06.2012, 15:31
Titel:
|
|
|
|
Sirius3 |
Forum-Guru
|
|
Beiträge: 441
|
|
|
|
Anmeldedatum: 11.11.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.06.2012, 16:44
Titel:
|
|
Hallo,
wenn die Vektoren immer paarweise linear abhängig sind, kannst Du ja in einem ersten
Schritt die Vektoren normieren
dann sind linear abhängige Vektoren wirklich gleich.
erledigt den Rest.
Grüße
Sirius
|
|
|
D-RSPhoenix |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 33
|
|
|
|
Anmeldedatum: 31.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.06.2012, 08:55
Titel:
|
|
@Sirius3
Danke für die schnelle Antwort. Leider funktioniert das Ganze noch nicht. In der Zeile
Sirius3 hat Folgendes geschrieben: |
|
gibts nen Dimensionsfehler und ich versteh leider nicht ganz was du da machst, sonst hätt ichs selber korrigiert ;P
Ich hab auf jeden Fall 3x1 Vektoren in der Matrix, also dann [1;2;3]
Meine Beispiel Matrix ist 3x6, also 6 solcher Vektoren nebeneinander.
Ich hoffe das hilft dir weiter.
Grüße
D-RSPhoenix
|
|
|
flashpixx |
Forum-Guru
|
|
Beiträge: 355
|
|
|
|
Anmeldedatum: 19.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.06.2012, 09:20
Titel:
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 25.06.2012, 16:05
Titel:
|
|
Hallo,
Um genau zu sein, können auch rationale Dezimal-Zahlen nicht exakt als DOUBLEs dargestellt werden, wenn es keine entsprechende Binärzahl mit der zur Verfügungstehenden Anzahl von Bits gibt. Deshalb ist 0.3-0.2-0.1 nicht exakt 0. Selbst für exakt darstellbare Zahlen kann eine mathematische Operation zu nicht-exakt darstellbaren Ergebnissen Führen:
Also Konsequenz darf man sich also nicht darauf verlassen, dass das Ergebnisse exakt 0 werden, sondern man akzeptiert eine "kleine" Zahl als Limit. Was dann genau "klein" bedeutet, hängt vom Problem ab.
Für zwei linear abhängig Vektoren verschwindet das Kreuzprodukt. Man könnte also die Vektoren normieren, das Kreuzprodukt ausrechnen und Ergebnisse unterhalb von 100*eps als lineare Abhängigkeit deuten.
Hilft das?
Gruß, Jan
|
|
|
D-RSPhoenix |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 33
|
|
|
|
Anmeldedatum: 31.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.06.2012, 16:29
Titel:
|
|
Jan S hat Folgendes geschrieben: |
Hallo,
Um genau zu sein, können auch rationale Dezimal-Zahlen nicht exakt als DOUBLEs dargestellt werden, wenn es keine entsprechende Binärzahl mit der zur Verfügungstehenden Anzahl von Bits gibt. Deshalb ist 0.3-0.2-0.1 nicht exakt 0. Selbst für exakt darstellbare Zahlen kann eine mathematische Operation zu nicht-exakt darstellbaren Ergebnissen Führen:
Also Konsequenz darf man sich also nicht darauf verlassen, dass das Ergebnisse exakt 0 werden, sondern man akzeptiert eine "kleine" Zahl als Limit. Was dann genau "klein" bedeutet, hängt vom Problem ab.
Für zwei linear abhängig Vektoren verschwindet das Kreuzprodukt. Man könnte also die Vektoren normieren, das Kreuzprodukt ausrechnen und Ergebnisse unterhalb von 100*eps als lineare Abhängigkeit deuten.
Hilft das?
Gruß, Jan |
boah Jan du bist mein Held!
Ich bin echt so doof - verschwindet heißt =0 dh einfaches if und alle meine Probleme sind gelöst ;P
|
|
|
flashpixx |
Forum-Guru
|
|
Beiträge: 355
|
|
|
|
Anmeldedatum: 19.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.06.2012, 16:31
Titel:
|
|
Jan S hat Folgendes geschrieben: |
Um genau zu sein, können auch rationale Dezimal-Zahlen nicht exakt als DOUBLEs dargestellt werden, wenn es keine entsprechende Binärzahl mit der zur Verfügungstehenden Anzahl von Bits gibt.
|
F'Ack. Ich mache es eh selbst in C++ via limits unt templates, somit wird das bei mir eh immer generell korrekt gehandhabt. In Matlab habe ich auch eine "numerical limit", somit kann ich das flexibel halten
Jan S hat Folgendes geschrieben: |
Für zwei linear abhängig Vektoren verschwindet das Kreuzprodukt. Man könnte also die Vektoren normieren, das Kreuzprodukt ausrechnen und Ergebnisse unterhalb von 100*eps als lineare Abhängigkeit deuten.
|
Funktioniert aber nur beim euklidischen R^3, da dort das Kreuzprodukt definiert ist, andere Metriken bzw Normen und bei beliebigen R^n sind ausgeschlossen. Die allgemein gültige Lösung ist über ein LGS
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|