Quantcast
Channel: Mein MATLAB Forum - goMatlab.de
Viewing all articles
Browse latest Browse all 28441

flasche Werte von Modulo in if-Abfrage

$
0
0
Hallo MaschbauStudent123, Hatte nicht erwartet, dass bei einem solch komfortablen Programm wie MATLAB sowas noch abgefangen werden muss. Das ist amüsant. Das Problem liegt nicht bei Matlab, sondern es gibt generell keine Möglichkeit die begrenzte Precision bei der Verwendung mit Doubles zu umgehen. Die einzige mathematisch sinnvolle Lösung wäre die Verwendung unendlicher vieler Dezimal-Stellen beim Speichern der Zahlen. Das würde aber auch eben mal unendlich viel Speicher benötigen. Deshalb treten die Effekte der IEEE754-Arithmetik in jeder numerischen Software auf und es sind die Benutzer, die dies abfangen müssen. Und das ist je nach Fall vollkommen unterschiedlich. Mal müssen absolute Abweichungen verglichen werden, mal relative, mal beide. Der Effekt tritt sogar in der physiklaischen Welt auf, bei der man z.B. auch die Position eines Elektrons und seinen Impuls beliebig genau angeben kann, weil die Quantenmechanik das verhindert. Das Messen der Entfernung zwischen Hamburg und München wird auch nicht auf den Millimeter genau machbar sein. Und wenn man zwei solche Messungen vergleicht, braucht man sich nicht über Ungenauigkeiten zu wundern. Und ein Vergleich mit "==" wird mit Gewissheit scheitern. allerdings weiß ich nicht, auf wieviele Nachkommastellen er immer rundet. Bei dem Winkel z. B. sind es 4. Ist das Standard? Wie kommst Du auf 4 Nachkommastellen? Es gibt einen wichtigen Unterschied zwischen der Anzahl der Stellen, die bei Doubles etwa 16 ist, und der Anzahl der angezeigten Stellen, die von gewünschten Format abhängt: pi pi*1e8 format short pi pi*1e8 format long g pi pi*1e8 format long f pi pi*1e8 Die Anzeige im Command Window bedeutet also nichts über die zur Berechnung verwendete Genauigkeit. Das ist übrigens die meist häufig gestellteste Frage. Das Lesen des FAQ ist eine gute Idee, da man dann von den Fehlern anderer profitieren kann, ohne sie erst selbst implementieren zu müssen: http://matlab.wikia.com/wi ...

Viewing all articles
Browse latest Browse all 28441

Trending Articles