matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMatlabMatlab Gleitkommazahl
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Matlab" - Matlab Gleitkommazahl
Matlab Gleitkommazahl < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Matlab Gleitkommazahl: Gleitkommazahl
Status: (Frage) beantwortet Status 
Datum: 16:36 Di 02.02.2010
Autor: JanaS

Aufgabe
Beschreibe kurz, wie Gleitkommazahlen in einem Computer dargestellt werden. Können die folgenden Zahlen exakt gespeichert werden in einem Computer und warum bekommen wir diese Fehler?
.5/0.1-5, 0.6/0.3-2, 0.7/0.2-3.5 und 0.8/0.4-2

Hallo!

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

Es geht um Matlab. Gleitkommazahlen habe ich schon beschrieben, also dass sie so dargstellt werden: [mm] x=m*b^e. [/mm] Wenn ich die oben genannten Aufgaben bei Matlab eingebe, so bekomme ich immer die erwünschte 0 bis auf 0.7/0.2-3.5. Da schmeisst Matalb als Ergebnis -4.440892098500626e-016 heraus. Warum?

Vielen Dank für Eure Hilfe schonmal!

Viele Grüsse von Jana

        
Bezug
Matlab Gleitkommazahl: Antwort
Status: (Antwort) fertig Status 
Datum: 19:46 Di 02.02.2010
Autor: rainerS

Hallo Jana!

> Beschreibe kurz, wie Gleitkommazahlen in einem Computer
> dargestellt werden. Können die folgenden Zahlen exakt
> gespeichert werden in einem Computer und warum bekommen wir
> diese Fehler?
>  .5/0.1-5, 0.6/0.3-2, 0.7/0.2-3.5 und 0.8/0.4-2
>  Hallo!
>  
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>  
> Es geht um Matlab. Gleitkommazahlen habe ich schon
> beschrieben, also dass sie so dargstellt werden: [mm]x=m*b^e.[/mm]
> Wenn ich die oben genannten Aufgaben bei Matlab eingebe, so
> bekomme ich immer die erwünschte 0 bis auf 0.7/0.2-3.5. Da
> schmeisst Matalb als Ergebnis -4.440892098500626e-016
> heraus. Warum?

Welche der Zahlen können exakt dargestellt werden?  Berücksichtige dabei die Zwischenergebnisse, das heisst schau dir an, was bei 0.7/0.2 herauskommt und wie sich dieses Zwischenergebnis von 3.5 unterscheidet. In der Standardausgabe siehst du den Unterschied nicht, aber wenn du vorher

format hex

eingibst, wird die interne Darstellung angezeigt. (Mit "format" schaltest du wieder zurück).

Viele Grüße
   Rainer

Bezug
                
Bezug
Matlab Gleitkommazahl: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:39 Di 02.02.2010
Autor: JanaS


>  
> > Beschreibe kurz, wie Gleitkommazahlen in einem Computer
> > dargestellt werden. Können die folgenden Zahlen exakt
> > gespeichert werden in einem Computer und warum bekommen wir
> > diese Fehler?
>  >  .5/0.1-5, 0.6/0.3-2, 0.7/0.2-3.5 und 0.8/0.4-2
>  >  Hallo!
>  >  
> > Ich habe diese Frage in keinem Forum auf anderen
> > Internetseiten gestellt.
>  >  
> > Es geht um Matlab. Gleitkommazahlen habe ich schon
> > beschrieben, also dass sie so dargstellt werden: [mm]x=m*b^e.[/mm]
> > Wenn ich die oben genannten Aufgaben bei Matlab eingebe, so
> > bekomme ich immer die erwünschte 0 bis auf 0.7/0.2-3.5. Da
> > schmeisst Matalb als Ergebnis -4.440892098500626e-016
> > heraus. Warum?
>
> Welche der Zahlen können exakt dargestellt werden?  
> Berücksichtige dabei die Zwischenergebnisse, das heisst
> schau dir an, was bei 0.7/0.2 herauskommt und wie sich
> dieses Zwischenergebnis von 3.5 unterscheidet. In der
> Standardausgabe siehst du den Unterschied nicht, aber wenn
> du vorher
>  
> format hex
>  
> eingibst, wird die interne Darstellung angezeigt. (Mit
> "format" schaltest du wieder zurück).
>  
> Viele Grüße
>     Rainer

Hallo Rainer!

Danke für Deine Antwort! Ich sehe jetzt den Unterschied zwischen 0.7/0.2 und 3.5. Aber ich verstehe noch nicht so ganz, WARUM da ein Unterschied ist? Was bedeuten die b's und f's? Ich habe versucht, etwas über das Hexadezimalsystem zu lesen, damit hängt das wohl zusammen, oder? Aber verstanden habe ich es nicht :-(.

Viele Grüsse, Jana


Bezug
                        
Bezug
Matlab Gleitkommazahl: Antwort
Status: (Antwort) fertig Status 
Datum: 21:08 Di 02.02.2010
Autor: rainerS

Hallo Jana!

> >  

> > > Beschreibe kurz, wie Gleitkommazahlen in einem Computer
> > > dargestellt werden. Können die folgenden Zahlen exakt
> > > gespeichert werden in einem Computer und warum bekommen wir
> > > diese Fehler?
>  >  >  .5/0.1-5, 0.6/0.3-2, 0.7/0.2-3.5 und 0.8/0.4-2
>  >  >  Hallo!
>  >  >  
> > > Ich habe diese Frage in keinem Forum auf anderen
> > > Internetseiten gestellt.
>  >  >  
> > > Es geht um Matlab. Gleitkommazahlen habe ich schon
> > > beschrieben, also dass sie so dargstellt werden: [mm]x=m*b^e.[/mm]
> > > Wenn ich die oben genannten Aufgaben bei Matlab eingebe, so
> > > bekomme ich immer die erwünschte 0 bis auf 0.7/0.2-3.5. Da
> > > schmeisst Matalb als Ergebnis -4.440892098500626e-016
> > > heraus. Warum?
> >
> > Welche der Zahlen können exakt dargestellt werden?  
> > Berücksichtige dabei die Zwischenergebnisse, das heisst
> > schau dir an, was bei 0.7/0.2 herauskommt und wie sich
> > dieses Zwischenergebnis von 3.5 unterscheidet. In der
> > Standardausgabe siehst du den Unterschied nicht, aber wenn
> > du vorher
>  >  
> > format hex
>  >  
> > eingibst, wird die interne Darstellung angezeigt. (Mit
> > "format" schaltest du wieder zurück).
>  >  
> > Viele Grüße
>  >     Rainer
>
> Hallo Rainer!
>  
> Danke für Deine Antwort! Ich sehe jetzt den Unterschied
> zwischen 0.7/0.2 und 3.5. Aber ich verstehe noch nicht so
> ganz, WARUM da ein Unterschied ist? Was bedeuten die b's
> und f's? Ich habe versucht, etwas über das
> Hexadezimalsystem zu lesen, damit hängt das wohl zusammen,
> oder? Aber verstanden habe ich es nicht :-(.

Du kannst die Hexadezimalziffern einfach in Bits (im Dualsystem) übersetzen; jede Ziffer entspricht genau 4 Bits, wie es []hier in dieser Tabelle dargestellt ist. Was du hier siehst, ist eine standardisierte Darstellung von 64bit langen Gleitkommazahlen, sieh []hier. Die ersten 12 Bit, also die ersten 3 Hexadezimalstellen stehen für Vorzeichen und Exponenten, der Rest für die Mantisse.

Wesentlich für dich ist hier, dass sich die beiden Zahlen nur in der Mantisse unterscheiden, nicht im Exponenten.

Zum Beispiel:

3.5 = 400c000000000000

Die Mantisse beginnt mit der 4. Hex-Ziffer, also c000..., oder als Bits: 1100 (+ weitere 48 0-Bits).


Die andere Zahl:

0.7/0.2 = 400bffffffffffff

Mantisse: bfff..., als Bits 1011 (+ weitere 48 1-Bits)

Mit anderen Worten: die Mantisse der ersten Zahl 3.5 ist gerade um 1 in der hinteresten Stelle größer als die Mantisse der zweiten Zahl 0.7/0.2 .

In der normalen Ausgabe ist dieser Unterschied nicht sichtbar, weil bei der Umwandlung der Binär- in die Dezimaldarstellung immer gerundet wird.

Bleibt noch die Frage, warum dieser Effekt nur bei der Division 0.7/0.2 auftritt, aber nicht bei 0.6/0.3 oder 0.8/0.4. Dazu schaust du dir am besten die Darstellungen der einzelnen Zahlen vor der Division an. Du wirst sehen, dass sich zum Beispiel bei 0.6 und 0.3 nur die Exponenten unterscheiden, nicht aber die Mantissen. Daher ist eine exakte Division möglich, obwohl die Binärdarstellung der einzelnen Zahlen nicht exakt ist.

Viele Grüße
   Rainer

Bezug
                                
Bezug
Matlab Gleitkommazahl: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:38 Do 04.02.2010
Autor: JanaS


> Hallo Jana!
>  
> > >  

> > > > Beschreibe kurz, wie Gleitkommazahlen in einem Computer
> > > > dargestellt werden. Können die folgenden Zahlen exakt
> > > > gespeichert werden in einem Computer und warum bekommen wir
> > > > diese Fehler?
>  >  >  >  .5/0.1-5, 0.6/0.3-2, 0.7/0.2-3.5 und 0.8/0.4-2
>  >  >  >  Hallo!
>  >  >  >  
> > > > Ich habe diese Frage in keinem Forum auf anderen
> > > > Internetseiten gestellt.
>  >  >  >  
> > > > Es geht um Matlab. Gleitkommazahlen habe ich schon
> > > > beschrieben, also dass sie so dargstellt werden: [mm]x=m*b^e.[/mm]
> > > > Wenn ich die oben genannten Aufgaben bei Matlab eingebe, so
> > > > bekomme ich immer die erwünschte 0 bis auf 0.7/0.2-3.5. Da
> > > > schmeisst Matalb als Ergebnis -4.440892098500626e-016
> > > > heraus. Warum?
> > >
> > > Welche der Zahlen können exakt dargestellt werden?  
> > > Berücksichtige dabei die Zwischenergebnisse, das heisst
> > > schau dir an, was bei 0.7/0.2 herauskommt und wie sich
> > > dieses Zwischenergebnis von 3.5 unterscheidet. In der
> > > Standardausgabe siehst du den Unterschied nicht, aber wenn
> > > du vorher
>  >  >  
> > > format hex
>  >  >  
> > > eingibst, wird die interne Darstellung angezeigt. (Mit
> > > "format" schaltest du wieder zurück).
>  >  >  
> > > Viele Grüße
>  >  >     Rainer
> >
> > Hallo Rainer!
>  >  
> > Danke für Deine Antwort! Ich sehe jetzt den Unterschied
> > zwischen 0.7/0.2 und 3.5. Aber ich verstehe noch nicht so
> > ganz, WARUM da ein Unterschied ist? Was bedeuten die b's
> > und f's? Ich habe versucht, etwas über das
> > Hexadezimalsystem zu lesen, damit hängt das wohl zusammen,
> > oder? Aber verstanden habe ich es nicht :-(.
>  
> Du kannst die Hexadezimalziffern einfach in Bits (im
> Dualsystem) übersetzen; jede Ziffer entspricht genau 4
> Bits, wie es
> []hier in dieser Tabelle
> dargestellt ist. Was du hier siehst, ist eine
> standardisierte Darstellung von 64bit langen
> Gleitkommazahlen, sieh
> []hier.
> Die ersten 12 Bit, also die ersten 3 Hexadezimalstellen
> stehen für Vorzeichen und Exponenten, der Rest für die
> Mantisse.
>  
> Wesentlich für dich ist hier, dass sich die beiden Zahlen
> nur in der Mantisse unterscheiden, nicht im Exponenten.
>  
> Zum Beispiel:
>  
> 3.5 = 400c000000000000
>  
> Die Mantisse beginnt mit der 4. Hex-Ziffer, also c000...,
> oder als Bits: 1100 (+ weitere 48 0-Bits).
>  
>
> Die andere Zahl:
>  
> 0.7/0.2 = 400bffffffffffff
>
> Mantisse: bfff..., als Bits 1011 (+ weitere 48 1-Bits)
>  
> Mit anderen Worten: die Mantisse der ersten Zahl 3.5 ist
> gerade um 1 in der hinteresten Stelle größer als die
> Mantisse der zweiten Zahl 0.7/0.2 .
>  
> In der normalen Ausgabe ist dieser Unterschied nicht
> sichtbar, weil bei der Umwandlung der Binär- in die
> Dezimaldarstellung immer gerundet wird.
>  
> Bleibt noch die Frage, warum dieser Effekt nur bei der
> Division 0.7/0.2 auftritt, aber nicht bei 0.6/0.3 oder
> 0.8/0.4. Dazu schaust du dir am besten die Darstellungen
> der einzelnen Zahlen vor der Division an. Du wirst sehen,
> dass sich zum Beispiel bei 0.6 und 0.3 nur die Exponenten
> unterscheiden, nicht aber die Mantissen. Daher ist eine
> exakte Division möglich, obwohl die Binärdarstellung der
> einzelnen Zahlen nicht exakt ist.
>  
> Viele Grüße
>     Rainer

Hallo Rainer!

Hab vielen Dank für Deine Geduld und Deine Hilfe!

Viele Grüsse, Jana

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]