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

Warum ist dot nicht null??

 

schrrauber
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 10.11.09
Wohnort: Mainz
Version: ---
     Beitrag Verfasst am: 11.01.2010, 13:03     Titel: Warum ist dot nicht null??
  Antworten mit Zitat      
Hallo an alle,

Ich hab mal eine Frage. Ich habe eine Einheitsmatrix, also ein Einheitskoordinatensystem. Ich drehe es mit hilfe von Drehmatrizen zuerst um die z-Achse und anschließend um die x-Achse. Danach hab ich als Ergebnis wieder ein Einheitskoordinatensystem das um die entsprechenden Winkel gedreht ist. Normalerweise müssen alle Achsen senkrecht aufeinander stehen. Also ist das Skalarprodukt der einzelnen Achsen zueinander null. IST ES ABER NICHT IMMER! Bei knapp 2/3 meiner Werte ist es das auch aber nicht bei allen. Warum??

Hier mein auszug aus dem m-file:

Code:
E=eye(3);

Dz=[cosd(11.015) -sind(11.015) 0; sind(11.015) cosd(11.015) 0; 0 0 1];   %Drehmatrix um die z-Achse

Dx=[1 0 0; 0 cosd(-0.53) -sind(-0.53); 0 sind(-0.53) cosd(-0.53)];       %Drehmatrix um die x-Achse

Eumzumx=E*Dz*Dx;        %Einheitsmatrix gedreht um z und um x

dot(Eumzumx(:,1),Eumzumx(:,3))


Gruß und danke schonmal...
schrrauber


Edit by Martin: Bitte Code-Formatierung verwenden. Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

das Problem sind minimale numerische Fehler. In diesem Fall eben als Ergebnis -2.1684e-019 statt der gewollten 0.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 10.11.09
Wohnort: Mainz
Version: ---
     Beitrag Verfasst am: 11.01.2010, 14:35     Titel:
  Antworten mit Zitat      
Ja, das hab ich mir schon gedacht.. aber dennoch will ich mich nicht damit zufrieden geben.... wird mir aber wohl nichts anderes übrig bleiben oder? Ich könnte warscheinlich nur runden und mit dem gerundeten wert weiterrechnen.

Gruß
schrrauber
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.01.2010, 15:37     Titel:
  Antworten mit Zitat      
Hallo,

ich fürchte, damit wirst du leben müssen.

Statt x == y würde ich empfehlen, abs(x-y) < tol zu verwenden. Hier also: zwei Vektoren stehen senkrecht aufeinander, wenn abs(dot) < tol [als tol würde ich z.B. 1e-10 nehmen].

Für exakte Rechnungen stünde dann noch die Symbolic Math Toolbox zur Verfügung.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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 - 2025 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.