Antworte auf:  C - Gleitkomma Genauigkeit von JamesNguyen
Forum:  Informatik, moderiert von: Bilbo matph

[Zur Forum-Gliederung] [Wie man Fragen beantwortet] [Themenstart einblenden]

  Alle registrierten Mitglieder können Mitteilungen schreiben.
Benutzername:
Passwort:
Nachricht-Icon:                   
                  
              
Nachricht:


 
 


Input assistance tools (JavaScript): [Link extern intern] [MathML?] [$$?]
[fed-area] [LaTeX-inline] [LaTeX-display] [Tikz] [hide-area][show-area] [Source code [num.]][?]
 Show Preview      Write using fedgeo formula editor or Latex.

Smilies for your message:
😃 😄 😁 🙂 🙃 😉 🤗 🤫 🤔 🙄 😴 🤒 😎 😮 😲 😂
🙁 😖 😒 😐 😡 👌 👍 👎 🤢 🤧 🥵 🥶 😵 🤯 😛 😷
Optionen: Deaktiviere HTML in dieser Nachricht
Deaktiviere MATHML in dieser Nachricht. Wenn Dein Text $-Zeichen enthält, die nicht LaTeX-Formeln begrenzen.
Deaktiviere Smilies in dieser Nachricht
Zeige die Signatur (Kann in 'Mein Profil' editiert werden.)
    [Abbrechen]
 
Beachte bitte die [Forumregeln]


Themenübersicht
JamesNguyen
Aktiv
Dabei seit: 08.11.2020
Mitteilungen: 187
 Themenstart: 2021-02-28 02:24    [Diesen Beitrag zitieren]

Hallo,

ich komme einfach nicht weiter.

Die Aufgabe ist

Eine andere Funktion benutzt ein Iterationsverfahren und liefert als double die positive
Quadratwurzel eines als Parameter zu übergebenden Radikanden mit der höchst möglichen
Genauigkeit zurück.
Beachten Sie die Ungenauigkeit reeller Datentypen

Nochmal meine Funktion

  1. double quwl ( double rad )
  2. {
  3. auto double xN = 1 , xNplus1 = rad ;
  4.  
  5. auto unsigned char i ;
  6.  
  7. for ( i = 1 ; i < 10 ; i ++ )
  8. {
  9. xN = xNplus1 ;
  10. xNplus1 = 1 / ( 2 * xN ) * ( xN * xN + rad ) ;
  11. }
  12.  
  13. return xNplus1 ;
  14. }

Ich verstehe einfach nicht was die Aufgabe bzgl. der Genauigkeit will.

Einerseit habe ich beim Test von double Werten gemerkt, obwohl

eine Genauigkeit von 15 (signifkaten) Stellen für double angegeben ist.
Es durchaus Bsp. gibt in denen er mehr als 15 (signifkanten) Stellen unterscheiden kann.

Andereseits wenn gesagt ist dass der double eine bestimmte höchste Genauigkeit (15 stellen) hat, dann rechnet das Programm doch selbst schon mit seiner höchsten Genauigkeit. Was gibt es da noch zu beachten?

Also ich sehe zwei Szenarien wenn man bspw.
1.
2.2 * 2.0 rechnet dann ist eig das genaueste Ergebnis das man angeben darf

4.4000 (doppelt so viele Nachkommastellen)

Wenn man 4.4000000 angeben würde wäre das genauer als man das Ergebnis eig kennt

Ich denke aber nicht das die Aufgabe so gemeint ist und wüsste auch nicht wie ich das implementieren würde auf anhieb

2. Wie oben schon gesagt
ich mache ja Berechnung mit xN in meiner Funktion und weise dann xNplus1
zu. Ich brauche doch eig nichtmal zu wissen wie die Genauigkeit ist.

wenn er bspw. xN * xN = 2.345 * 2.345 berechnet aber nicht genug stellen hätte um den genauen Wert weiterzugeben. Dann rundet er doch so gut er es eben selber weiß

ALso kommt am Ende doch das genaueste Ergebnis raus das man eben bekommen kann?



Hoffentlich kann jemand diesmal weiterhelfen.

Vielen Dank.


 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]