Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » C - Gleitkomma Genauigkeit
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule C - Gleitkomma Genauigkeit
JamesNguyen
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 08.11.2020
Mitteilungen: 187
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2021-02-28


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.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
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]