Suche orthogonalen Vektor zu n Vektoren. Allgemeines Vektorprodukt |
22.12.2011, 13:40 | Hölzerin | Auf diesen Beitrag antworten » |
Suche orthogonalen Vektor zu n Vektoren. Allgemeines Vektorprodukt Hallo zusammen, Wir sind 2 Maschinenbau Studenten und haben uns mit folgender Frage auseinanderzusetzen: (Gesamte Fragestellung siehe Anhang) Meine Ideen: Wir sind bis jetzt schon soweit gekommen, dass wir den orthogonalen Vektor bestimmen können. Programm: % VEKTORPRODUKT Berechnet das Vektorprodukt der n-1 n dimimensionalen Vektoren in V. % vn = Vektorprodukt([v1,v2,v3, ..., vn-1]) für n-1 Vekoren % v1,v2,v3, ..., vn-1 % % Das Vektorprodukt erfüllt folgende Eigenschaften: % (i) vn steht steht senkrecht auf v1 bis vn_1 % (ii) det(v1,v2,...,vn_1,vn) = norm(vn)^2 % % Für n = 3 gibt vn = Vektorprodukt([v1,v2]) eine numerische Annährung % für das Kreuzprodukt von v1 und v2 zurück. % % Beispiel für n = 3: % % >> v1 = [1 1 1]'; % >> v2 = [1 2 2]'; % >> v3 = Vektorprodukt([v1,v2]) % % v3 = % % 0 % -1.0000 % 1.0000 % % Diese Lösung entspricht numerisch dem Kreuzprodukt der beiden Vektoren: % % >> v_cross = cross(v1, v2) % % v_cross = % % 0 % -1 % 1 % Inparametercheck %Zuerst die Größen der Matrix A if size(V,1) > size(V,2) + 1 error('Zu wenig Vektoren übergeben!') return; end if size(V,1) < size(V,2) + 1 error('Zu viele Vektoren oder Zeilenvektoren anstelle von Spaltenvektoren übergeben!') return; end % Nun schauen, ob Vektoren linear abhängig sind. Dies ist der Fall, wenn % der Rang zu klein ist. if rank(V) < size(V,2) error('Vektoren sind linear abhängig!') return; end Aufgabe 34 ? Verallgemeinertes Vektorprodukt Bibiane Buschmann; Dimitri Mutzenberger 6 n = size(V,1); %Anzahl der Unbekannten ?rechne den senkrechten Vektor vn, indem eine Lösung des unterbestimmten %Gleichungssystems % V' * vn = 0 %mittels Gauss-Verfahrens berechnet wird. Auch lambda*vn ist Lösung dieses %Systems. Da der Rang = n - 1 ist gibt es keine weiteren Lösungen. % for i = n:-1:1 %Bilde Matrix A durch Tausung von der Spalte i mit der Spalte n %(falls nötig) A = V(1:n-1, 1:n-1)'; %Spalte i von A mit Spalte n von V' ersetzen (falls i nicht n ist) if i ~= n A(1:n-1, i) = V(n, 1:n-1)'; end %Setze b auf die Spalte i von -V' b = -V(i, 1:n-1)'; %Ist der Rang okay, dann löse das System mit Gauss-Verfahren if rank(A) == n-1 ?rechne die Lösung mittels Gauss-Verfahren x = Gauss(A,b'); %Füge die 1 an der Stelle i ein und transponiere if i < n %Füge zwischendrin ein (1 =< i =< n-1) vn = [x(1:i-1), 1, x(i:n-1)]'; else %Füge am Ende ein (i = n) vn = [x(1:n-1), 1]'; end %Nun haben wir einen Vektor gefunden --> Verlassen der Schleife. break; end end Nun unser Problem: Aufgabenstellung Teil b. Dazu haben wir noch keine Idee. Könnte Ihr uns vielleicht helfen? Gruß |
||
23.12.2011, 17:35 | riwe | Auf diesen Beitrag antworten » |
RE: Suche orthogonalen Vektor zu n Vektoren. Allgemeines Vektorprodukt da sonst niemand zuständig ist, ich bin da auch nicht zuständig - eigentlich eh nirgendwo - aber einen versuch wäre es wert: multipliziere den unter a) berechneten vektor mit der skalaren größe k. diese kannst du/ihr anschließend aus der determinante bestimmen onegewer |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|