|
|
Gibt es Zahlen, die MATLAB nicht leiden kann? |
|
chris2.3sportline |
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 09.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2009a
|
|
|
|
|
|
Verfasst am: 29.08.2009, 17:45
Titel: Gibt es Zahlen, die MATLAB nicht leiden kann?
|
|
Hi,
das Thema klingt vielleicht wie ein April-Scherz, aber ich habe da gerade stundenlang an einem Problem gearbeitet und ich hab jetzt die Fehlerquelle identifiziert.
Also gebt doch mal bitte folgendes ein:
Das Produkt aus 71 und 0.001 gibt wohl nicht 0.071, bei 72 gilt das entsprechende und eine Zehnerpotenz weiter tritt das phänomen bei der 72 auch wieder auf.
Für mich ist das gerade ein riesen Problem! Ist das schonmal jemandem aufgefallen?
Kann mir da irgendjemand einen Tipp dazu geben?
Was soll ich denn machen, wenn der code einfach einen falschen wert liefert?
Ich habe mich jetzt mal noch nicht getraut das in die Bug-Ecke zu schreiben. Vielleicht steh ich ja auch grad seit stunden aufm schlauch und irgendjemand findet dafür noch eine halbwegs logische erklärung.
etwas getresste grüße
chris
|
|
|
|
|
MatLabNooB |
Forum-Guru
|
|
Beiträge: 262
|
|
|
|
Anmeldedatum: 27.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.08.2009, 18:41
Titel:
|
|
vielleicht versteh ich das falsch, aber 71*0.001 = 0.071, das ist sicher...
|
|
|
Olli |
Forum-Anfänger
|
|
Beiträge: 45
|
|
|
|
Anmeldedatum: 19.08.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.08.2009, 18:51
Titel:
|
|
also bei mir macht Matlab folgendes:
hab auch schon versucht format short und long aber beides hilft nicht
|
|
|
Tim |
Forum-Century
|
|
Beiträge: 140
|
|
|
|
Anmeldedatum: 03.11.07
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: 2011b+aktuellstes Release
|
|
|
|
|
|
Verfasst am: 29.08.2009, 19:38
Titel:
|
|
Das liegt daran wie Matlab (bzw. moderne Rechner) Zahlen darstellen, nämlich hier als Fließkommazahlen (siehe IEEE 754). Ohne hier groß ins Detail gehen zu wollen (den Suchbegriff habt ihr ja nun) ist eines der relevanten Eigenschaften dieses Formats, dass man eben nicht alle Zahlen exakt darstellen kann. So wird 0.01 nicht 0.01 sondern etwas in der Art 0.010000000002154624724 oder auch 0.00999999999999999999946572572 dargestellt. Ebenso kommt es bei arithmetischen Operationen auch zu Rundungsfehlern, weshalb man nie das erwarten sollte was du erwartest. Ebenso vergleicht man Fließkommazahlen nicht auf exakte Gleichheit sondern... ach lest euch den Thread hier durch: http://www.gomatlab.de/minus-null-t7936.html
|
|
|
chris2.3sportline |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 09.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2009a
|
|
|
|
|
|
Verfasst am: 29.08.2009, 20:07
Titel:
|
|
Hi,
also irgendsowas hab ich mir ja schon gedacht. hätte nur nicht gedacht, dass es in diesen bereichen abspielt ... wobei e-12 ja doch schon recht klein ist, wenn ichs mir recht überleg.
danke auf jeden fall für den thread mit dem tipp mit der toleranz zu vergleichen.
gruß
chris
... der jetzt als blutiger anfänger anfängt alle möglicherwiese betroffenen == zu ersetzen
|
|
|
Andy386 |
Forum-Guru
|
|
Beiträge: 485
|
|
|
|
Anmeldedatum: 24.06.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.1/8
|
|
|
|
|
|
Verfasst am: 29.08.2009, 20:17
Titel:
|
|
Kommt auch (oder vor allem??) drauf an, ob der Rechner deine Dezimalzahl ohne Periode in eine Binärzahl umformen kann...
|
|
|
|
|
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.
|
|