Diskussion:Heron-Verfahren

Letzter Kommentar: vor 5 Tagen von 129.247.247.240 in Abschnitt Begriff Bitlänge im Abschnitt Konvergenz

Was ist der Fehler?

Bearbeiten

Ich frage mich was mit Fehler gemeint ist? kann mich jmd mal aufklären? ;)

Hier haben wir es ja mit einem Näherungsverfahren (Iteration) zu tun, mit dem man sich nur Schritt für Schritt an den "wahren" Wert annähern kann, ihn also womöglich nie ganz erreicht. Mit jedem Schritt xn verringert sich die Abweichung - der Fehler - zwischen diesem aktuellen Zwischenergebnis und dem wahren Wert. Hier kann man nun wenigstens sehen, wie weit man noch maximal vom wahren Wert weg ist, so dass man mathematisch exakt entscheiden kann, ob man schon genau genug ist oder noch weiterschreiten muss. --PeterFrankfurt 20:44, 31. Aug 2006 (CEST)

Implementierung in SW

Bearbeiten

ich brauchte eine wurzelfunktion für ein embeddet-linux-system. ich hab mich an dem artikel orientiert und eine geschrieben. dachte das kann ruhig mit dahin, ist ja eine umsetzung von ebendem. wenn ihr findet das gehört nicht dahin - schmeisst es einfach wieder raus. zum fehler: da ja nur die wurzel der normierten mantisse iteriert wird und dann ein angepasster exponent eingesetzt wird, kann der absolute fehler doch recht groß werden, bei den floats maximal (2^64 ~ 1.8 × 10^19) mal der itrerationsfehler, das sind keine nachkommastellen.. grüße hørst

Ja, im Prinzip sehr schön. Das mit dem "Exponent = ... >>7" muss man Laien wohl noch erklären, dass da nämlich auf einem 16-Bit-Wort gearbeitet wird, wo am Anfang rechts noch ein Teil der Mantisse steht. Entsprechend muss die <<22 am Ende erklärt werden. Außerdem müssen wir noch an der Rechtschreibung in den Kommentaren arbeiten... --PeterFrankfurt 21:29, 24. Nov. 2006 (CET)Beantworten
ok, ich texte noch einige erklärungen, und geb mir mühe, aber die syntax im geschriebenen deutsch ist nicht gerade meine stärke. wenn dir, oder sonst jemandem, etwas ins auge springt, ändert es doch einfach. referenz- und adress-opratoren, maschienenwortgrößen, binäroperationen und bitverschiebungen, sind an sich auch ein recht umfassendes thema, ich wollte den rahmen des artikels nicht sprengen - aber wenn es jetzt schon ein beispiel ist muß es auch verständlich sein.
grüße hørst
11:16 utc+1 25.11.2006
done
Hoffentlich habe ich den Spagat zwischen Verständlichkeit/Epik und sinnvoller Genauigkeit einigermaßen hinbekommen, und treibe den Freunden der Interpunktion nicht allzuviele Tränen in die Augen (Falls doch: sorry, hab´ mich bemüht).
Zum Fehler: Formal fehlt mir gerade eine LaTex-Referenz um die Formel hübsch zu machen, wenn also jemand gerade einen Formeleditor hat oder in der Lage ist mal eben die Formatierung einzusetzen, bitte, nur zu.
Inhaltlich: Ich habe die Funktion mal für alle Mantissenbitkombinationen durchlaufen lassen und mit ebenjener Formel rückgeprüft. Es ist mir bewußt, das das nicht den korrekten relativen Fehler beschreibt aber mit Bordmitteln war das der zugänglichste Wert, der etwas Ähnliches beschreibt (zugänglich auch im Sinne meiner Erinnerung an Mathe). Eine größere Anzahl Iterationen verändert diesen Wert nicht. Vorschläge für einen anderen Ansatz nehme ich gern an, und würde ich dann ggf. auch umsetzen.
Grüße hørst 14:00 (MEZ) 27.11.2006
So, ich habe mal ein bisschen an der Rechtschreibung gefeilt.
Es ist ja furchtbar lang geworden, hoffentlich beschwert sich da niemand.
Zum Fehler: Bei einer insgesamt 32 Bit langen Float-Zahl ist die genannte Genauigkeit doch das, was man erreichen kann. Wenn Du die Bibliotheksfunktion mal auf andere Werte ansetzt, wette ich, dass Du auch Fälle findest, wo dieser Algotithmus (zufällig) bessere Werte liefert.
Zur Geschwindigkeit: Wahrscheinlich läuft die Bibliotheksfunktion über ein Horner-Schema-Polynom, aber auch mit dieser Normierung auf das Intervall (0,5 | 2), denn hier ist die Kurve so glatt, dass sie sich extrem leicht sehr genau approximieren lässt. --PeterFrankfurt 21:58, 27. Nov. 2006 (CET)Beantworten
Doch, ich muss mich mal beschweren. Vor lauter Kommentarzeilen findet man den Code nicht mehr. Eigentlich hatte ich erwartet, so einen Pseudocode-Algorithmus zu finden, wie er z.b. beim ggT dabeisteht. So etwas ist weit praktischer. Ich hatte mir hier besser nachvollziehbare Algorithmen gewünscht, da ich grad vor dem Problem stehe, dass mir jemand nen Basic-Algo geliefert hat, den er "Heron" nennt, und ich das jetzt gern mal überprüfen wollte. --Kaeru Gaman 10:19, 1. Mai 2007 (CET)Beantworten

Falsche Formel

Bearbeiten

1. Zu 'Was ist der Fehler?': Der Fehler scheint zu sein, dass das [alte] Verfahren auf der Seite für die k-te Wurzel aus a nicht das richtige Ergebnis bringt.

2. Lösung: Ich habe jetzt das Problem gelöst (bin mir ziemlich sicher, kommt auch für k=2 hin). Falls jemand einen Fehler entdeckt, sollte man vielleicht die alte Seite wieder nehmen oder die Verallgemeinerung ganz weglassen.

Verallgemeinerung des Verfahrens - Wie oft muss k decrementiert werden bis die iteration terminiert?

Bearbeiten

Man könnte sicherheitshalber noch hinzufügen wie oft k-1-te Wurzel gezogen werden muss bis der Algorithmus(mit seiner davon doch unabhängigen Genauigkeit?) sein Werk vollendet hat.

Java-Applet

Bearbeiten

Das Applet wird noch um einen Zahlenstrahl erweitert, wodurch das Konvergenzverhalten schön illustriert wird ... so wird man nichtmehr von "lieblos" sprechen können ;-). Des Weiteren besteht auch im aktuellen Zustand aufgrund korrekter Arbeitsweise eine Existenzberechtigung. Die Entfernung des Links - insbesondere mit dieser Begründung - halte ich für falsch. Es kann schließlich auch bis zur entgültigen Fertigstellung verlinkt bleiben. Gruß, SequereMe

Nein. Ein Leser des Artikels darf von einem Link erwarten, dass er dort etwas erfährt, dass er im Artikel nicht erfährt. Bei deinem Applet ist das nicht der Fall. Noch dazu muss der Nutzer Java installiert haben. Dies stellt eine zusätzliche Hürde da. -- Stefan Birkner 17:52, 24. Feb. 2009 (CET)Beantworten

Mathematischer Fehler bei Konvergenz abschnitt

Bearbeiten

Im Abschnitt steht aus x_n ≥ x_(n+1) ≥ Wurzel a daraus folgt lim n-> inf x_n= Wurzel a Daraus folgt aber nur die Konvergenz gegen eine reelle Zahl kleiner gleich Wurzel a und noch nicht die Konvergenz gegen Wurzel a. ( Mathmatische Muecke ) (nicht signierter Beitrag von 134.102.201.34 (Diskussion | Beiträge) 20:13, 25. Jan. 2010 (CET)) Beantworten

Vielleicht ist es im Artikel etwas schlecht formuliert, aber dort stehen nur die beiden von dir genannten Eigenschaften. Das daraus folgt steht dort nicht. --Stefan Birkner 21:43, 25. Jan. 2010 (CET)Beantworten

zu "Historisches"

Bearbeiten

Heron gibt hier den Wert  .

Der Wert, den das Heronverfahren liefert (das ist hier wohl gemeint, nicht die Person Heron), hängt vom Startwert ab. Startet man mit  , so erhält man auch mit dem Heronverfahren  . Das muss auch so sein: Wählt man allgemein für die Berechnung von   den Startwert  , so erhält man im nächsten Iterationsschritt

 

Also denselben Wert wie mit dem babylonischen Verfahren. --Digamma 10:39, 9. Mai 2010 (CEST)Beantworten

Nachtrag 1: Der im Text angegebene Wert   ist offenbar falsch. Das Heronverfahren liefert nämlich immer eine Näherung, die zu groß ist. Der angegebene Wert ist aber kleiner als der exakte 7,348469... .

Nachtrag 2: Der Satz Die oben angegebenen Verfahren wurden zwar nach Heron von Alexandria benannt, verwenden aber eine Iteration von Dezimalzahlen, die Heron nicht kannte. ist zumindest unglücklich formuliert. Denn das Heron-Verfahren selbst enthält keine Anweisung, ob mit Brüchen oder Dezimalzahlen (oder Sexagesimalzahlen oder was auch immer) gerechnet werden muss. Bei den angegebenen Beispielen wird mit Dezimalzahlen gerechnet. Dafür kann aber nur der Autor etwas, mit Heron hat das nichts zu tun.

Da ich nicht weiß, was Heron wirklich gemacht hat, der Abschnitt so, wie er da steht aber falsch ist, lösche ich ihn. -- Digamma 12:29, 3. Jun. 2010 (CEST)Beantworten

Beispiel

Bearbeiten

Das Beispiel, bei dem Wurzel aus 9 berechnet werden soll, ist äußerst ungeschickt, weil 9 eine Quadratzahl ist und man deshalb das Heronverfahren nicht braucht. Zumal dieses ja nur Näherungswerte liefert, aber niemals den exakten Wert 3 (es sei denn, man wählt diesen schon als Startwert). Man bräuchte dann allerdings andere Bilder. --Digamma (Diskussion) 17:45, 16. Jan. 2015 (CET)Beantworten

Also man muss das nicht unbedingt als ungeschicktes Beispiel ansehen, sondern man kann das als (durchaus berechtige) didaktische Absicht auffassen. Man nimmt extra eine Quadratzahl, so dass man sieht wie der Algorithmus ein bekanntes Ergebnis annähernd, das heißt es steht eine einfach zu verstehende Vergleichsgröße zur Verfügung. Wenn man ein "neues" Verfahren testet, dann macht man das ja zunächst gerade an Beispielen deren Ergebnisse man schon kennt.--Kmhkmh (Diskussion) 00:37, 17. Jan. 2015 (CET)Beantworten
Ich finde das Beispiel als Mathematiker sogar sehr gut. Man kann daran ganz gut erkennen, dass es eben ein numerisches Näherungsverfahren ist, das die exakte Lösung nie erreicht (für fast alle Startwerte). Ohne Worte versteht jeder, der das Beispiel nachvollzieht mehr als dort explizit gesagt wird. --2A02:8109:1580:36BC:A46C:84E0:CFAC:8F05 15:38, 13. Nov. 2021 (CET)Beantworten
Danke für die Antworten. Sie leuchten ein. --Digamma (Diskussion) 18:36, 14. Nov. 2021 (CET)Beantworten

x^2 = a ist nicht äquivalent zu x = wurzel(a)

Bearbeiten

Im Abschnitt "Konvergenz" wird aber diese Äquivalenz behauptet. Eine weitere Lösung wäre ja noch x = −wurzel(a)... aber auch dann ist das ohne Bedingungen so eine Sache mit der Äquivalenz. Korrekt wäre: x^2 = a <== x = wurzel(a).

Verallgemeinerung mit Beispielen für die höheren Potenzen.

Bearbeiten

Gut wäre es wenn man die Formel noch mal allgemeiner darstellen könnte. --92.74.62.16 10:41, 20. Sep. 2022 (CEST)Beantworten

Besser wäre auch Belege für diesen Abschnitt und einige vorherige zu ergänzen.--Kmhkmh (Diskussion) 10:03, 15. Jun. 2023 (CEST)Beantworten

Geometrische Motivation nach vorne?

Bearbeiten

Wäre es vielleicht nicht sinnvoller mir der geometrischen Veranschaulichung zu beginnen (Einleitung und erster Abschnitt) und über diese formlos die Iterationsformel herzuleiten und erst danach mit genauen Analyse und der Herleitung über das Newton-Verfahren zu beginnen. Dadurch wird das Ganze mit Mittelstufenwissen zugänglicher/lesbarer und erschließt sich einem weit größeren Leserkreis. Man beachte auch, dass vermutlich die meisten Oberstufenschüler (zumindest außerhalb von Mathe-LKs), das Newton-Verfahren nicht (mehr) kennen.--Kmhkmh (Diskussion) 10:17, 15. Jun. 2023 (CEST)Beantworten

Ja, das sehe ich auch so. --Digamma (Diskussion) 15:52, 17. Jun. 2023 (CEST)Beantworten
Ich es jetzt mal entsprechend umgesetzt und die Einleitung etwas ausgebaut.--Kmhkmh (Diskussion) 10:35, 24. Jun. 2023 (CEST)Beantworten

kompaktes Rechteck

Bearbeiten

"Auch hier ist die Ähnlichkeit zu einem Quadrat noch gering. Allerdings ist das neue Rechteck im Vergleich zum vorhergehenden kompakter." Ist "kompakt" eine math. Eigenschaft einer Fläche? Wann ist eine Fläche kompakt? Wann kompakter? Und wann am kompaktesten? --Voluntario (Diskussion) 12:01, 2. Okt. 2023 (CEST)Beantworten

Begriff Bitlänge im Abschnitt Konvergenz

Bearbeiten

m Unterabschnitt "Konvergenz" heißt es:

Es empfiehlt sich somit, einen möglichst genauen Startwert  zu bestimmen. Im Beispiel sollte man zuerst die Bitlänge  von  ermitteln...

Hier taucht unvermittelt der Begriff Bitlänge auf. Ist mit dem Beispiel das Beispiel im Abschnitt "Implementierung in Software" gemeint? Wenn ja, ist es aber ungünstig, hier Bitlänge einzuführen. --Voluntario (Diskussion) 12:30, 3. Okt. 2023 (CEST)Beantworten

Nebenbei: Konvertierung von einer Basis in eine andere ist bei großen Zahlen langsam, und dann auch noch den Logarithmus verwenden um die Konvergenz der Quadratwurzel zu beschleunigen? Das bedarf schon etwas mehr Erläuterung um zu zeigen, daß man dadurch wirklich Rechenoperationen oder Kilowattstunden einspart. Vielleicht bei der Heron-Iteration - aber insgesamt? Und wenn man das komplett ausdiskutiert wird es doch ein bisschen zu technisch. Richtet sich der Artikel eigentlich an Softwareentwickler oder an Menschen mit mathematischem Interesse? --129.247.247.240 09:21, 13. Dez. 2024 (CET)Beantworten

Es lässt sich tatsächlich doch feststellen ob eine Zahl eine Quadratzahl ist oder nicht

Bearbeiten

Mit dem Heronverfahren lässt sich tatsächlich durch das „abschneiden“ von Dezimalstellen herausfinden ob eine Wurzel exakt ist oder nicht. Wenn man im Bereich der Quadratischen Konvergenz bei den beiden ermittelten (vorheriger und aktueller Wert) 2 bis 4 Stellen hinter dem Komma abschneidet und diese dann erst arithmetisch mittelt bekommt man entweder eine Zahl welche immer zurückspringt und exakt ist, oder ständig oszilliert. Oszilliert der Wert bei jeder Iteration handelt es sich nicht um eine Quadratzahl. Bleibt er jedoch immer gleich, also nach einer wiederholten Berechnung identisch zum vorherigen Wert (ohne Rundung) handelt es sich um eine Quadratzahl!


Beispiel: Man approximiere die Wurzel aus 25 mit dem Startwert 7

25/7=3,57142857

(3,57142857+7)/2=5,2857

(4,7297+5,2857)/2=5,0077

25/5,0077=4,9923 hier wird die Anzahl der Stellen ab der 1/10⁴ Stelle abgeschnitten(

(4,9923+5,0077)/2=5

25/5=5

(5+5)/2=5

5-5=0

--2.206.29.70 13:59, 28. Apr. 2024 (CEST)Beantworten

Das ist mir irgendwie zu ad hoc. Funktioniert das auch, wenn man die Dezimalentwicklung an einer anderen Stelle abschneidet? Funktioniert das mit jedem Startwert? Kurz gesagt: mir fehlt hier ein Beweis.
Wenn ich auf mathworld.wolfram.com unter "square numbers" nachschaue, finde ich kein explizites Verfahren um eine Zahl darauf zu testen, ob sie eine Quadratzahl ist. Allerdings gibt es mit den Tabellen der möglichen letzten Ziffern und der möglichen letzten beiden Ziffern schnelle Tests dafür, ob eine Zahl keine Quadratzahl ist. Beispielsweise enden alle Quadratzahlen auf 0, 1, 4, 5, 6, oder 9, und es gibt nur 22 mögliche Kombinationen für die letzten 2 Ziffern.
Sofern es darauf ankommt, wirklich die exakte Lösung für Quadratzahlen - oder auch für Brüche aus zwei Quadratzahlen - zu erhalten, ist vermutlich der Bhaskara-Brouncker-Algorithmus die bessere Wahl. --129.247.247.240 09:13, 13. Dez. 2024 (CET)Beantworten

Verbesserungsvorschläge für den Aufbau des Artikels

Bearbeiten

Ich finde den geometrisch motivierten Einstieg sehr gelungen. Darauf aufbauend würde ich eine formale Iteratonsvorschrift erwarten. Tatsächlich kommt dann ein Abschnitt, der das Verfahren als Spezialfall des Newton-Verfahrens erläutert. Im Sinne des genetischen Prinzips halte ich das für etwas unglücklich. Mein Vorschlag für den Aufbau des Artikels wäre also: 1) Geometrische Motivation 2) Rekursionsvorschrift 3) Spezialfall des Newton-Verfahrens anstatt wie bisher: 1) Geometrische Motivation 2) Spezialfall des Newton-Verfahrens 3) Rekursionsvorschrift (etwas versteckt im Abschnitt Konvergenz).

Gibt es hierzu Meinungen? --Mathze (Diskussion) 04:07, 2. Aug. 2024 (CEST)Beantworten

Ja, ich stimme zu. --Digamma (Diskussion) 21:47, 4. Aug. 2024 (CEST)Beantworten
+1, allerdings würde ich das Verfahren eher iterativ als rekursiv verstehen.--Kmhkmh (Diskussion) 00:40, 5. Aug. 2024 (CEST)Beantworten
Ja, stimmt. "Iterationsvorschrift" wäre die passende Überschrift. Ich nehme mir der Thematik in Kürze an. --Mathze (Diskussion) 09:47, 5. Aug. 2024 (CEST)Beantworten

Startwert im Abschnitt Konvergenz

Bearbeiten

Im Abschnitt zur Konvergenz wird vorgeschlagen, als startwert x0=(a+1)/2 zu nehmen, was sich aus der Taylorreihe ableiten ließe - Wenn man aber als Startwert 1 nimmt, dann ist das gerade der zweite Wert, der aus der Iteration herauskommt. Durch diesen mit der Taylorreihe umständlich begründeten Startwert gewinnt man gegenüber dem Startwert x0=1 genau nichts. --2A02:8071:6281:C7C0:B9FB:5441:A558:6C6C 19:47, 19. Nov. 2024 (CET)Beantworten