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
![](https://images.gutefrage.net/media/user/Nube4618/1576863216029_nmmslarge__0_0_720_720_633abd509342c2405db11f04215551c2.png?v=1576863216000)
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.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Die Idee hatte ich auch aber leider kann ich nicht x^1/2 eingeben. Ich weiß nicht wie das zu implementieren ist
![](https://images.gutefrage.net/media/user/Rlohdaen/1568540168103_nmmslarge__2_2_186_186_4831f3327f11701cb7e3710a372f6417.png?v=1568540168000)
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.
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Eine Idee wäre es, das Heron-Verfahren anzuwenden.
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
Du kannst diesen Algorithmus implementieren: