WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

LGS höherer Dimension

 

Mateusz
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2012, 17:09     Titel: LGS höherer Dimension
  Antworten mit Zitat      
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ß
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.12.2012, 17:22     Titel:
  Antworten mit Zitat      
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:
Code:


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Mateusz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2012, 17:35     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.12.2012, 17:38     Titel:
  Antworten mit Zitat      
Hallo,

ja, jetzt musst du das LGS nur noch in die Form A*x=b bringen, und dann ist
Code:

die Lösung.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Mateusz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2012, 17:47     Titel:
  Antworten mit Zitat      
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....
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.12.2012, 17:51     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Mateusz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2012, 18:01     Titel:
  Antworten mit Zitat      
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?!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.12.2012, 18:25     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.12.2012, 20:03     Titel:
  Antworten mit Zitat      
Hallo,

hier im Detail, mit V_c und V_w gegeben:

Code:
syms r11 r21 r31 r12 r22 r32 r13 r23 r33 t1 t2 t3
R = [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 = repmat([t1; t2; t3], 4, 1);
sol = solve(R*V_w + t - V_c)


Sieht soweit gut aus.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Mateusz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2012, 22:21     Titel:
  Antworten mit Zitat      
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:

Code:
%
syms r11 r21 r31 r12 r22 r32 r13 r23 r33 t1 t2 t3

R = [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];

V_w = [1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12];

V_c = [2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13];

t = repmat([t1; t2; t3], 4, 1);

sol = solve(R*V_w + t - V_c)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.12.2012, 22:25     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Mateusz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2012, 22:41     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Mateusz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2012, 22:46     Titel:
  Antworten mit Zitat      
V_w ist der Vektor, der einen Punkt im Weltkoordinatensystem beschreibt.
V_c ist der Vektor, der den gleichen Punkt im Kamerakoordinatensystem beschreibt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.12.2012, 22:52     Titel:
  Antworten mit Zitat      
Hallo,

es gibt 2011a und 2011b. Welche von beiden?
Versuch mal sicherheitshalber vor dem ganzen nochmal ein
Code:
.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Mateusz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2012, 23:03     Titel:
  Antworten mit Zitat      
Tut sich nichts. Es ist die 2011b Version.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.