Heron-Verfahren C++ verbessern
-
Okay und was kann man dagegen machen?
-
Datentypen mit größerer Präzision benutzen?
-
Hab's jetzt schon mit long double versucht, funktioniert aber auch nicht
-
Aber auch da wirst du früher doer später auf Grenzen stoßen.
-
Du solltest dir auch mal angucken, was 1/1000000 wirklich ist. Wird zwar wahrscheinlich nicht das Problem beheben, aber ohne bessere Problembeschreibung (was erwartest du, was passiert stattdessen?) habe ich nicht so die Motivation alles ganz genau anzugucken.
-
Nur aus Interesse:
Gibt es empfehlenswerte Bibliotheken für Berechnungen mit hoher Präzision?
Gruß,
temi
-
ja.
Wolltest du auch noch wissen, welche das sind - schau mal bei Wikipedia vorbei:
https://en.wikipedia.org/wiki/List_of_C%2B%2B_multiple_precision_arithmetic_libraries
GMP / MPFR wären dann mal zwei Beispiele.
Habe allerdings selbst keine Erfahrung damit.
-
Danke, wob.
Die Betonung lag eher auf empfehlenswert, also:
Hat jemand gute Erfahrungen mit einer bestimmten Lib gemacht? Einfach anwendbar, usw.
Wie schon geschrieben, rein interessehalber, ich brauch das aktuell nicht, aber ich lerne gerne dazu.
-
btw:
while(eq - x > 1/1000000 || i <= 30)->
while( eq > x || i <= 30 )
-
Das Problem steckt in Zeile 24 - sie enthält 3 Fehler - in Worten: drei
probiere:while(abs(eq - x) > 1./1000000 && i <= 30){ // berechne...
und inkludiere
#include <cmath> // std::abs