Forum:  Informatik
Thema: C - Gleitkomma Genauigkeit
Themen-Übersicht
JamesNguyen
Aktiv
Dabei seit: 08.11.2020
Mitteilungen: 187
Themenstart: 2021-02-28 02:24

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.




Dieses Forumbeitrag kommt von Matroids Matheplanet
https://https://matheplanet.de

Die URL für dieses Forum-Thema ist:
https://https://matheplanet.de/default3.html?topic=252599=51
Druckdatum: 2021-05-17 03:41