|
|
Rechengenauigkeit bei Matrizenmultiplikationen |
|
Jogibaer |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 30.06.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.06.2022, 10:33
Titel: Rechengenauigkeit bei Matrizenmultiplikationen
|
|
|
|
|
Grüß Gott liebe Gemeinde,
Ganz kurze Erklärung zu meinem Thema:
Ich führe eine Denavit-Hartenberg Convention in Matlab durch, was eine 4x4 Matrix als Ergebnis liefert. Die Convention wird hauptsächlich in der Robotik verwendet, um die Richtung in Form einer 3x3 Rotationsmatrix als auch die Position in Form eines 3x1 Vektors des Endeffektors darzustellen. Um auf das Ergebnis zu kommen, werden in meinem Fall 10 Matrizen mit der Größe 4x4 multipliziert. An sich sehen die einzelnen Matrizen nicht all zu komplex aus, allerdings wird bei jeder Multiplikation die Matrix an sich immer komplexer, da immer mehr Variabeln (insg. 9) berücksichtigt werden müssen.
Nun zu meinem Problem/Frage:
Ich habe versucht, die Ergebnisse des Positionsvektors (X, Y, Z) welche Matlab ausspuckt mittels analytischer Berechnung auf Richtigkeit zu überprüfen. Nach einiger Zeit ist mir allerdings aufgefallen, das es minimale Abweichungen zwischen den von Matlab numerisch mit den von mir analytisch gelösten Ergebnissen gibt. Die Abweichungen liegen allerdings bei etwa 0,002 %, was nicht all zu viel ist, aber doch schon nervig sind. Was mir auch aufgefallen ist, die Abweichungen variieren bei Veränderung der Variabeln. Bei der Berechnung mit Matlab habe ich immer format long verwendet.
Besteht die Möglichkeit, dass Matlab nach einer hohen Anzahl von Matrizenmultiplikationen eine Ungenauigkeit aufgrund der limitierten Nachkommastelle der Ergebnisse aufweisen kann?
Natürlich besteht auch die Möglichkeit, dass ich mich bei der Rechnung per Hand vertan habe, halte ich tatsächlich aber für unwahrscheinlich, insb. nachdem die Differenz zwischen numerischer und analytischer Lösung so gering ist.
Ich danke schonmal für eure Hilfe.
Viele Grüße
Jogibaer
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 30.06.2022, 13:57
Titel:
|
|
Hallo,
bitte poste ein konkretes Beispiel, sonst kann man da wenig dazu sagen.
Es ist durchaus möglich (und nicht nur in MATLAB), dass beispielsweise beim Subtrahieren ähnlich großer Zahlen (relative) Genauigkeit verloren geht. Ein bekanntes Beispiel ist die Annäherung von Ableitungen über Differenzenquotienten.
Und ja, solche numerische Fehler können sich dann auch fortpflanzen.
Eine Alternative können symbolische Berechnungen und
vpa
sein.
Zitat: |
Bei der Berechnung mit Matlab habe ich immer format long verwendet. |
format beeinflusst nur die Anzeige, nicht die Berechnung.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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.
|
|