Rundungsoperator < Numerik < Hochschule < Mathe < Vorhilfe
|
Aufgabe | Berechnen Sie mit Hilfe des Rundungsoperators $rd [mm] :\R\rightarrow fl(2,3,\{0,1,2,3,4\})$ [/mm] die Gleitkommazahl rd(0.9)!
Danke für eure Hilfe |
Also, ich habe in der Angabe die Basis 2, daher habe ich 0,9 umgewandelt in eine Binärzahl.
0,9= 0,111001....
Nun komme ich nicht weiter. bzwiehungsweise würd eich gerne wissen ob dies stimmt?
Bei Potenz=0 und Mantisse =3
[mm] $0,111001...*2^0 [/mm] = 0,111$ da die dritte Nachkommastelle größer ist als die Hälfte der Basis muss ich aufrunden und erhalte 1.000 als Binärzahl
Bei Potenz=1 und Mantisse =3
[mm] $0,111001...*2^1 [/mm] = 1,110$ Da die dritte Nachkommastelle kleiner als die Hälfte der Basis bleibt die Zahl wie sie ist.
usw
Stimmt das so?
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:06 Mi 08.10.2014 | Autor: | DieAcht |
Hallo Steffen2361!
> Berechnen Sie mit Hilfe des Rundungsoperators [mm]rd :\R\rightarrow fl(2,3,\{0,1,2,3,4\})[/mm]
> die Gleitkommazahl rd(0.9)!
>
> Danke für eure Hilfe
> Also, ich habe in der Angabe die Basis 2,
Wo ist diese Vorgabe genau?
> daher habe ich
> 0,9 umgewandelt in eine Binärzahl.
>
> 0,9= 0,111001....
Ja, aber das kannst du exakt aufschreiben, denn es wird periodisch:
[mm] 0,1\overline{1100}.
[/mm]
> Nun komme ich nicht weiter. bzwiehungsweise würd eich
> gerne wissen ob dies stimmt?
>
> Bei Potenz=0 und Mantisse =3
>
> [mm]0,111001...*2^0 = 0,111[/mm] da die dritte Nachkommastelle
> größer ist als die Hälfte der Basis muss ich aufrunden
> und erhalte 1.000 als Binärzahl
>
> Bei Potenz=1 und Mantisse =3
>
> [mm]0,111001...*2^1 = 1,110[/mm] Da die dritte Nachkommastelle
> kleiner als die Hälfte der Basis bleibt die Zahl wie sie
> ist.
>
> usw
>
> Stimmt das so?
Mein Problem ist, dass ich die Schreibweise
[mm] fl(2,3,\{0,1,2,3,4\})
[/mm]
nicht kenne und mir diese aus deiner Lösung nicht erschließen
kann. Die Mantissenlänge scheint aber hier fest zu sein und die
Potenz gehen wir hoch? Bei mir ist zu einem Gleitpunktzahlsystem
[mm] F(b,t,e_{\text{min}},e_{\text{max}})
[/mm]
mit gerade Basis [mm] $b\$ [/mm] die Funktion
[mm] $rd\colon\{x\in\IR\colon x_{\text{min}}\le|x|\le x_{\text{max}}\}\to\IR$
[/mm]
durch
[mm] rd(x)=\begin{cases} \sigma*\left(\sum_{k=1}^{t}a_k*b^{-k}\right)*b^{e}, & \mbox{für } a_{t+1}\le\frac{1}{2}b-1 \\ \sigma*\left(\sum_{k=1}^{t}a_k*b^{-k}+b^{-t}\right)*b^{e}, & \mbox{für } a_{t+1}\ge\frac{1}{2}b \end{cases}
[/mm]
für
[mm] x=\sigma*\left(\sum_{k=1}^{\infty}a_k*b^{-k}\right)*b^{e}
[/mm]
erklärt. [mm] $rd(x)\$ [/mm] heißt dann auf [mm] $t\$ [/mm] Stellen gerundeter Wert von [mm] $x\$.
[/mm]
Das heißt, dass wir mit deiner Basis [mm] $b=2\$ [/mm] abruden für
[mm] a_{t+1}\le\frac{1}{2}*2-1=0
[/mm]
und aufrunden für
[mm] a_{t+1}\ge\frac{1}{2}*2=1.
[/mm]
Bei dir ist oben die Mantissenlänge anscheinend [mm] $t=3\$ [/mm] und wir
betrachten die nächste Stelle [mm] $t+1\$ [/mm] um zu entscheiden ob wir
auf- oder abrunden.
Also betrachte die vierte Nachkommastelle und entscheide dann!
Gruß
DieAcht
|
|
|
|
|
Danke für deine Antwort.
Betrachte ich dies nun mit Basis b=2 und Mantisse t=3, so muss ich nun doch die Potenzschreibweisen von 0-4 erarbeiten oder?
Sprich:
e=0
$ [mm] 0,1\overline{1100} [/mm] = [mm] 0,1\overline{1100} [/mm] * [mm] 2^0$ [/mm]
Die vierte Nachkommastelle wäre 0 und somit muss ich die Zahl abrunden, und erhalte 0,1110
e=1
$ [mm] 0,1\overline{1100} [/mm] = [mm] 0,01\overline{1100} [/mm] * [mm] 2^1$
[/mm]
Die vierte Nachkommstelle 1. ich muss aufrunden und erhalte 0,100000.
e=2
$ [mm] 0,1\overline{1100} [/mm] = [mm] 0,001\overline{1100} [/mm] * [mm] 2^2$ [/mm] Hier wäre die vierte Nachkommastelle 1, ich muss aufrunden un erhalte 0,010000.
e=3
$ [mm] 0,1\overline{1100} [/mm] = [mm] 0,0001\overline{1100} [/mm] * [mm] 2^3$ [/mm] Hier wäre die vierte Nachkommastelle 1, ich muss aufrunden un erhalte 0,001000.
e=4
$ [mm] 0,1\overline{1100} [/mm] = [mm] 0,00001\overline{1100} [/mm] * [mm] 2^4$ [/mm] Hier wäre die vierte Nachkommastelle 0, ich muss abrunden un erhalte 0,00000.
.....
Was sagst du dazu?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:33 Mi 08.10.2014 | Autor: | DieAcht |
Hallo,
> Betrachte ich dies nun mit Basis b=2 und Mantisse t=3,
Ich frage erneut: Wie kommst du darauf? Ich zitiere deine Aufgabe:
Aufgabe | Berechnen Sie mit Hilfe des Rundungsoperators $rd [mm] :\R\rightarrow fl(2,3,\{0,1,2,3,4\})$ [/mm] die Gleitkommazahl rd(0.9)! |
An dem Quellcode kann ich erkennen, dass du
[mm] $rd\colon\IR\rightarrow fl(2,3,\{0,1,2,3,4\})$
[/mm]
meinst. Allerdings verstehe ich diesen Ausdruck nicht und frage
mich wie du auf Basis [mm] $b=2\$ [/mm] und Mantissenlänge [mm] $t=3\$ [/mm] kommst.
Ich kenne folgende Definition: Zu gegebener Basis [mm] $b\in\IN$ [/mm] mit [mm] $b\ge [/mm] 2$
und Mantissenlänge [mm] t\in\IN [/mm] sowie Exponentenschranken [mm] e_{\text{min}}<0
die Menge
[mm] F=F(b,t,e_{\text{min}},e_{\text{max}})\subset\IR
[/mm]
durch
[mm] F=\left\{\sigma\left(\sum_{i=1}^{t}a_ib^{-i}\right)b^{e}\colon a_1,\ldots,a_t\in\{0,1,\ldots,b-1\},a_1\not=0,e\in\IZ,e_{\text{min}}
erklärt und wird System von normalisierten Gleitpunktzahlen ge-
nannt. Lässt man noch die Kombination [mm] e=e_{\text{min}} [/mm] und [mm] $a_1=0\$ [/mm] zu, dann
erhält man mit [mm] $\tilde{F}\supset [/mm] F$ das System der denormalisierten Gleitpunkt-
punktzahlen.
Beachte, dass uns vor Allem die normalisierten Gleitpunktzahlen
interessieren. Außerdem wird in der Praxis zum Beispiel mit
$F=F(2,24,-127,127)=F(2,24,7)$.
abgekürzt. In der Literatur habe ich nun gefunden, dass ihr
[mm] $fl=F\$
[/mm]
setzt und ihr wohl in der Tat
[mm] fl=fl(\text{Basis},\text{Mantissenlänge},\text{Exponentenlänge})=fl(b,t,E)
[/mm]
meint, wobei bei euch die Basis [mm] $b=2\$, [/mm] die Mantissenlänge [mm] $t=3\$ [/mm] und
die Exponentenlänge gegeben ist durch die Menge [mm] $E=\{0,1,2,3,4\}$. [/mm] Also:
[mm] $fl=fl(b,t,E)=fl(2,3,\{0,1,2,3,4\})$.
[/mm]
Jetzt habe ich das hier alles runtergerattert um es zu verstehen.
Kommen wir nun zurück zu deiner Aufgabe:
> so muss ich nun doch die Potenzschreibweisen von 0-4 erarbeiten oder?
Ja, das glaube ich, aber ich habe so etwas noch nicht gesehen,
sodass ich dir rate nochmal genauer nachzufragen.
> Sprich:
>
> e=0
>
> [mm]0,1\overline{1100} = 0,1\overline{1100} * 2^0[/mm]
> Die vierte Nachkommastelle wäre 0 und somit muss ich die
> Zahl abrunden, und erhalte 0,1110
Ja, aber die letzte Null sollte dort auch nicht mehr stehen, denn
es soll deutlich werden, dass wir am Ende eine auf drei Stellen
gerundete Zahl bekommen haben. Schreibe also besser folgendes:
[mm] rd(0,1\overline{1100}*2^0)\overset{t=3}=0,111.
[/mm]
> e=1
> [mm]0,1\overline{1100} = 0,01\overline{1100} * 2^1[/mm]
> Die
> vierte Nachkommstelle 1. ich muss aufrunden und erhalte
> 0,100000.
Siehe oben. Es sind hier drei Nullen zu viel.
> e=2
> [mm]0,1\overline{1100} = 0,001\overline{1100} * 2^2[/mm] Hier
> wäre die vierte Nachkommastelle 1, ich muss aufrunden un
> erhalte 0,010000.
>
> e=3
> [mm]0,1\overline{1100} = 0,0001\overline{1100} * 2^3[/mm] Hier
> wäre die vierte Nachkommastelle 1, ich muss aufrunden un
> erhalte 0,001000.
Siehe oben.
> e=4
> [mm]0,1\overline{1100} = 0,00001\overline{1100} * 2^4[/mm] Hier
> wäre die vierte Nachkommastelle 0, ich muss abrunden un
> erhalte 0,00000.
Siehe oben.
> Was sagst du dazu?
Beachte, dass du hier das denormalisierte Gleitpunktpunktzahlsystem
betrachtest, denn die rote Voraussetzung
[mm] F=\left\{\sigma\left(\sum_{i=1}^{t}a_ib^{-i}\right)b^{e}\colon a_1,\ldots,a_t\in\{0,1,\ldots,b-1\},\red{a_1\not=0},e\in\IZ,e_{\text{min}}
trifft nicht mehr zu (mehr dazu weiter oben). Ansonsten ist es,
bis auf die Notation, und dem Einsatz meiner Kristallkugel, in
Ordnung.
Gruß
DieAcht
|
|
|
|