Wurzel ziehen mit Heron Algorithmus C#?

2 Antworten

Du setzt diese Gleichung als Funktion um: https://de.wikipedia.org/wiki/Heron-Verfahren

Diese rufst Du dann solange auf (iterativ oder rekursiv), bis sich das Ergebnis im Vergleich zum vorherigen Ergebnis nicht mehr signifikant ändert.


Felixmagpizz640 
Fragesteller
 23.02.2022, 12:22

Wie sieht das dann aus?

0
ohwehohach  23.02.2022, 12:24
@Felixmagpizz640

Wie eine Funktion und eine Schleife. Nein, ich werde Dir das nicht programmieren. Wenn Du Fragen hast, frage Deinen Betreuer im Praktikum. Es nützt nichts, wenn ich Dir das hier hinschreibe. Dann hast Du zwar die Lösung, aber dennoch keine Ahnung.

3

x[ 0 ] = a / 2

x[n+1] = 0.5 * ( x[n] + a / x[n] )

wurzel( a ) = x[ 100 ]

je höher der wert [ 100 ] gesetzt wird, desto genauer das Ergebnis.

Wenn du sagen wir das ganze auf 5 Stellen genau haben willst, dann schaust du einfach wenn 2 aufeinanderfolgende x[ n ] sich gerundet an den 5 gültigen stellen nicht mehr unterscheiden. dann abbruch. Da diese ganze Prüferei und Runderrei aber evtl. länger dauert als stur bis festen Wert zu rechnen. Kannst das mit dem festen Index vorziehen. Den Index 100 dann halt evtl. herabsetzen bis auf 10 wenns schneller gehen soll. Dann aber nicht vergessen das Ergebnis zu runden. Alle Vorkommastellen angeben aber Nachkommastellen nur maximal 5 würde ich sagen.