Wurzel ziehen in c++ ohne cmath?
Hallo zusammen,
wie berechnet man die Wurzel einer Zahl in c++ ohne cmath?
Also ich sollte eine Funktion schreiben die das macht.
6 Antworten
Da es eine stetige Funktion mit genau einer Lösung ist, lässt sich das leicht iterativ lösen.
Dabei ein Epsilon vorgeben, das die geforderte Genauigkeit der Lösung definiert, und somit auch die Abbruchbedingung.
Wenn es nicht auf Geschwindigkeit ankommt, sondern darum, gar keine math Header zu verwenden, dann gebe ich dir hier zwei Tipps:
Tipp 1
Oder allgemein
Tipp 2
Die pow() Funktion zur Potenzierung kannst du auch durch Multiplikation abbilden
Die Idee hatte ich auch aber leider kann ich nicht x^1/2 eingeben. Ich weiß nicht wie das zu implementieren ist
Du kannst die Funktionsdeklaration aus cmath in Deinen Quelltext kopieren.
Oder logarithmisch halbieren: x = exp(log(y)/2) , aber exp() und log() sind ja auch in cmath deklariert (?).
Oder Dich iterativ mit Testwerten bzw. deren Quadraten annähern.
Eine Idee wäre es, das Heron-Verfahren anzuwenden.
Du kannst diesen Algorithmus implementieren: