|
Mateusz |
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 09.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2012, 17:09
Titel: LGS höherer Dimension
|
|
Hallo Liebe Community!
Ich bin ein neuer User und hätte auch direkt einige Fragen zu Matlab, da auch Matlab mir neu ist.
Folgendes Problem zu Anfang: (Leider bin ich nicht wirklich mit der Suche weiter gekommen)
Ich habe ein LGS:
Folgende Form:
V_c=R*V_w + t
wobei V_c , V_w und t ein 12 Dimensionaler Vektor ist, dabei ist V_c und V_w bekannt und t unbekannt.
R ist eine unbekannte 12x12 Matrix, welche ebenfalls zu lösen ist.
Meine Frage: Wie schreibe ich das in Matlab?!
Gruß
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.12.2012, 17:22
Titel:
|
|
Hallo,
wenn über R nichts weiter bekannt ist, hast du schlechte Karten. Das wären dann nämlich 12 Gleichungen für 156 Unbekannte - ein bisschen wenig.
Ansonsten:
Grüße,
Harald
|
|
|
Mateusz |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 09.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2012, 17:35
Titel:
|
|
Danke für die super schnelle Antwort.
Selbstverständlich hast Du recht.
Die Matrix hat folgende Form:
[r11 r12 r13 0 0 0 0 0 0 0 0 0
r21 r22 r23 0 0 0 0 0 0 0 0 0
r31 r32 r33 0 0 0 0 0 0 0 0 0
0 0 0 r11 r12 r13 0 0 0 0 0 0
0 0 0 r21 r22 r23 0 0 0 0 0 0
0 0 0 r31 r32 r33 0 0 0 0 0 0
0 0 0 0 0 0 r11 r12 r13 0 0 0
0 0 0 0 0 0 r21 r22 r23 0 0 0
0 0 0 0 0 0 r31 r32 r33 0 0 0
0 0 0 0 0 0 0 0 0 r11 r12 r13
0 0 0 0 0 0 0 0 0 r21 r22 r23
0 0 0 0 0 0 0 0 0 r31 r32 r33]
t= [t1 t2 t3 t1 t2 t3 t1 t2 t3 t1 t2 t3]
Jetzt müsste es doch passen oder?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.12.2012, 17:38
Titel:
|
|
Hallo,
ja, jetzt musst du das LGS nur noch in die Form A*x=b bringen, und dann ist
die Lösung.
Grüße,
Harald
|
|
|
Mateusz |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 09.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2012, 17:47
Titel:
|
|
Danke Harald,
der mathematische Hintergrund ist mir im Prinzip klar.
Leider weiß ich jedoch nicht, wie ich es in Matlab schreiben soll.
Vor allem scheitert es an der Matrix....
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.12.2012, 17:51
Titel:
|
|
Hallo,
das hat an sich weniger mit MATLAB als mit Logik zu tun. Du kannst das Gleichungssystem so aufsetzen, dass
x = [r11, r21, ..., r12, r22, ..., ..., t1, t2, t3]
Dann musst du dir A und b dazu zusammensuchen. Das ist eine gewisse Fieselei, die dir aber wohl nicht erspart bleiben wird.
Grüße,
Harald
|
|
|
Mateusz |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 09.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2012, 18:01
Titel:
|
|
Ok, also verstehe ich es richtig, das es keine Möglichkeit in Matlab gibt, eine 12x12 Matrix mit variablen zu definieren und diese bestimmen zu lassen?!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.12.2012, 18:25
Titel:
|
|
Hallo,
Diese Möglichkeit gäbe es über die Symbolic Math Toolbox bzw. MuPAD. Bei 12 Gleichungen mit 12 Unbekannten finde ich es aber fraglich, ob da was vernünftiges herauskommt. Versuchen kannst du es aber natürlich.
Grüße,
Harald
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.12.2012, 20:03
Titel:
|
|
Hallo,
hier im Detail, mit V_c und V_w gegeben:
Sieht soweit gut aus.
Grüße,
Harald
|
|
|
Mateusz |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 09.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2012, 22:21
Titel:
|
|
Danke,
leider war die Seite zeitweise down, daher konnte ich nicht antworten.
Habe jetzt deinen Code angwandt, bekomme aber folgende Fehlermeldung:
Error using sym/solve (line 73)
Error using maplemex
Error, (in MTM:-solve) Vector(12,
[r11+2*r12+3*r13+t1-2,r21+2*r22+3*r23+t2-3,r31+2*r32+3*r33+t3-4,4*r11+5*r12+6*r13+t1-5,4*r21+5*r22+6*r23+t2-6,4*r31+5*r32+6*r33+t3-7,7*r11+8*r12+9*r13+t1-8,7*r21+8*r22+9*r23+t2-9,7*r31+8*r32+9*r33+t3-10,10*r11+11*r12+12*r13+t1-11,10*r21+11*r22+12*r23+t2-12,10*r31+11*r32+12*r33+t3-13])
is not valid equation or expression
Error in Test (line 44)
sol = solve(R*V_w + t - V_c)
Keine Ahnung was das heißen soll!
Folgenden Code habe ich verwendet, wobei V_c und V_w ausgedacht sind:
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.12.2012, 22:25
Titel:
|
|
Hallo,
das sieht so aus, als ob du eine ältere MATLAB-Version verwendest. Welche?
Vielleicht mal in die Doku zu solve schauen, ob damals die Syntax anders war.
Ich würde zudem die "echten" Daten nehmen, da das System mit diesen Daten unterbestimmt ist.
Grüße,
Harald
|
|
|
Mateusz |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 09.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2012, 22:41
Titel:
|
|
Das ist eine 2011 Version.
Das ist die Doku zu
solve
solve - solve equations
Calling Sequence
solve(eqn1,eqn2,...,eqnN);
solve(eqn1,eqn2,...,eqnN, var1, var2,..., varN);
Mein Ziel ist es eine Koordinatentransformation durchzuführen. In der Rotation uns Translation vorkommt.
Mit den echten Werten ist dies so eine Sache, da ich noch keine habe. Diese werden erst bei den Versuchen in der Uni ermittelt. Wollte eigentlich vorab einbißchen Matlab kennen lernen und eine Funktion aufstellen um die inneren wie auch äußeren Parameter einer Wärmebildkamera zu bestimmen. Eigentlich sind es 6 äußere (Rotation und Translation) und 8 innere Parameter (diese wollte ich jedoch erstmal außer acht lassen), welche zu bestimmen sind.
|
|
|
Mateusz |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 09.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2012, 22:46
Titel:
|
|
V_w ist der Vektor, der einen Punkt im Weltkoordinatensystem beschreibt.
V_c ist der Vektor, der den gleichen Punkt im Kamerakoordinatensystem beschreibt.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.12.2012, 22:52
Titel:
|
|
Hallo,
es gibt 2011a und 2011b. Welche von beiden?
Versuch mal sicherheitshalber vor dem ganzen nochmal ein
.
Grüße,
Harald
|
|
|
Mateusz |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 09.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2012, 23:03
Titel:
|
|
Tut sich nichts. Es ist die 2011b Version.
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|
|