In der numerischen Analyse, einem Zweig der Mathematik, gibt es mehrere Quadratwurzel-Algorithmen oder . Methoden zur Berechnung der Hauptwurzel einer nicht negativen reellen Zahl. Für die Quadratwurzeln einer negativen oder komplexen Zahl siehe unten.
Finden ist das gleiche wie das Lösen der Gleichung für ein Positives . Daher kann ein beliebiger allgemeiner numerischer Wurzelfindungsalgorithmus verwendet werden. Die Newton-Methode reduziert sich in diesem Fall beispielsweise auf die sogenannte Babylonian-Methode:
Diese Methoden liefern im Allgemeinen ungefähre Ergebnisse, können jedoch durch Erhöhung der Anzahl beliebig genau gemacht werden von Berechnungsschritten.
Grobe Schätzung [ edit ]
Viele Wurzelalgorithmen erfordern einen anfänglichen Startwert. Wenn der anfängliche Startwert weit von der tatsächlichen Quadratwurzel entfernt ist, wird der Algorithmus verlangsamt. Es ist daher nützlich, eine grobe Schätzung zu haben, die sehr ungenau sein kann, aber leicht zu berechnen ist. Mit ausgedrückt in wissenschaftlicher Notation als wobei und n ist eine ganze Zahl, die Quadratwurzel ] <img src = "https://wikimedia.org/api/rest_v1/media/math/render/svg/e0876c57bd85592eea0588cfcce956302336f805" class = "mwe-math-fallback-image-inline" aria-hidden = "true" style = "true" = "vertikal ausrichten: -0.505ex; Breite: 12.077ex; height: 2.343ex; "alt =" 1 leq a <100"/> kann als geschätzt werden
- <img src = "https://wikimedia.org/api/rest_v1/media/math/render/svg / 97cd5aa5695cb8da0b1ae9d7fb5584f35b122c8e "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -2.505ex; Breite: 26.975ex; height: 6.176ex; "alt =" { sqrt {S}} approx { begin {cases} 2 cdot 10 ^ {n} & { text {if}} a <10,6cdot 10^{n}&{text{if }}ageq 10.end{cases}}"/>
Die Faktoren zwei und sechs sind verwendet, da sie sich dem geometrischen Mittel der niedrigsten und höchstmöglichen Werte mit der angegebenen Anzahl von Ziffern annähern: und .
Für die Schätzung ist .
Beim Arbeiten im binären Zahlensystem (wie dies Computer intern tun), durch Ausdruck von als wobei Quadratwurzel < img src = "https://wikimedia.org/api/rest_v1/media/math/render/svg/ceaa33f87e4cccdd3ea7afaf2e4212c1f46b6b12" class = "mwe-math-fallback-image-inline" aria-hidden = "true" = "true" -Ausrichtung: -0,671ex; Breite: 14.832ex; Höhe: 2.509ex; "alt =" 0.1_ {2} leq a <10_{2}"/> kann als ] da das geometrische Mittel der niedrigsten und höchstmöglichen Werte .
Für die binäre Näherung
Diese Näherungen sind hilfreich, um bessere Seeds für iterative Algorithmen zu finden, was zu einer schnelleren Konvergenz führt.
Babylonische Methode [ edit ]
Vielleicht der erste Algorithmus, der zur Annäherung von ist als babylonische Methode bekannt, obwohl über die mutmaßlichen Vermutungen hinaus keine direkten Beweise dafür vorliegen, dass die gleichnamigen babylonischen Mathematiker genau diese Methode verwendeten. [1] Die Methode ist auch als Herons Methode bekannt, nachdem der griechische Mathematiker Hero of Alexandria aus dem ersten Jahrhundert die Methode in seinem Werk um 60 erstmals explizit beschrieben hatte. Metrica . [2] Sie kann von der Newtonschen Methode abgeleitet werden (ist aber älter als 16 Jahrhunderte). Die Grundidee ist, dass, wenn x die Quadratwurzel einer nicht negativen reellen Zahl überschätzt, S S / x wird eine Unterschätzung sein oder umgekehrt, und es kann vernünftigerweise erwartet werden, dass der Durchschnitt dieser beiden Zahlen eine bessere Annäherung liefert (obwohl der formale Beweis dieser Behauptung von der Ungleichheit der arithmetischen und geometrischen Mittel abhängt, die zeigen, dass dieser Durchschnitt immer eine ist überschätzen der Quadratwurzel, wie in dem Artikel über Quadratwurzeln erwähnt, wodurch die Konvergenz sichergestellt wird).
Genauer gesagt, wenn x unsere erste Schätzung von und e ist der Fehler in unserer Schätzung, so dass S = ( x + e ) 2 ist ]dann können wir das Binomial erweitern und lösen
- seit .
kann den Fehler ausgleichen und unsere alte Schätzung als aktualisieren
Da der berechnete Fehler nicht genau war, ist dies unsere nächstbeste Vermutung. Der Aktualisierungsprozess wird wiederholt, bis die gewünschte Genauigkeit erreicht ist. Dies ist ein quadratisch konvergenter -Algorithmus, was bedeutet, dass sich die Anzahl der korrekten Ziffern der Approximation bei jeder Iteration ungefähr verdoppelt. Es geht wie folgt vor:
- Beginnen Sie mit einem beliebigen positiven Startwert x 0 (je näher an der tatsächlichen Quadratwurzel von S desto besser). x x n + 1 Der Durchschnitt von x n und S x x x 19659269] n (verwendet das arithmetische Mittel, um sich dem geometrischen Mittel anzunähern).
- Wiederholen Sie Schritt 2, bis die gewünschte Genauigkeit erreicht ist.
Es kann auch dargestellt werden als:
Dieser Algorithmus funktioniert in den p -adic-Zahlen gleich gut, kann jedoch nicht zur Identifizierung von reellen verwendet werden Quadratwurzeln mit p -adischen Quadratwurzeln; Mit dieser Methode kann man beispielsweise eine Folge rationaler Zahlen konstruieren, die in den Realen zu +3 konvergieren, in den 2-adics jedoch zu –3.
Beispiel [ edit ]
Um √ S zu berechnen, wobei S = 125348, verwendet wird die grobe Schätzmethode oben zu bekommen
Daher √ 125348 ≈ 354.045 .
Konvergenz [ edit ]
Angenommen, x 0 > 0 und S > 0. Dann für eine beliebige natürliche Zahl n x n > 0. Der relative Fehler in x n sei definiert durch
- [19659317]und somit
Dann kann das gezeigt werden
und folglich die Konvergenz gewährleistet ist, und quadratisch.
Schlimmster Fall für Konvergenz [ edit ]
Wenn Sie die obige grobe Schätzung mit der babylonischen Methode anwenden, sind die am wenigsten genauen Fälle in aufsteigender Reihenfolge die folgenden:
-
0 = 2 ; x 1 1 0.107. S = 19659018] 10 x x 0 1 = 3.833 ; ε 1 0 6 ; x 1 < 0,134. { displaystyle { begin {align} S & = 1; & x_ {0} & = 2; & x_ {1} & = 1,250; & varepsilon _ {1} & = 0,250. S & = 10; & x_ {0} & = 2; & x_ {1} & = 3,500; & varepsilon _ {1} & <0,107 . S & = 10; & x_ {0} & = 6; & x_ {1} & = 3.833; & varepsilon _ {1} & <0,213. S & = 100; & x_ {0} & = 6; & x_ { 1} & = 11.333; & varepsilon _ {1} & <0,134. End {align}}} <img src = "https://wikimedia.org/api/rest_v1/media/math/render/ svg / 97b965d9c243f4fa62fe825c21a5c171a8e5d8c2 "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -5.338ex; Breite: 54.479ex; height: 11.843ex; "alt =" { begin {align} S & = 1; & x_ {0} & = 2; & x_ {1} & = 1.250; & varepsilon _ {1} & = 0,250. S & = 10; & x_ {0} & = 2; & x_ {1} & = 3.500; & varepsilon _ {1} & <0,107. S & = 10; & x_ {0} & = 6; & x_ {1} & = 3.833 & varepsilon _ {1} & <0,213. S & = 100; & x_ {0} & = 6; & x_ {1} & = 11.333; & varepsilon _ {1} & 19459268
] So auf jeden Fall
- <img src = "https://wikimedia.org/api/ rest_v1 / media / math / render / svg / 5421d029f479921e0c154a095df9a6314eab837a "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -0.671ex; Breite: 17.522ex; Höhe: 3.009ex; "alt =" varepsilon _ {2} <2 ^ {- 5} <10^{-1}.,"/>
- <img src = "https://wikimedia.org/api/ rest_v1 / media / math / render / svg / edfb1c400b6a50ee05f9788500fdb114d6201ec8 "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -0.671ex; Breite: 18.344ex; Höhe: 3.009ex; "alt =" varepsilon _ {3} <2 ^ {- 11} <10^{-3}.,"/>
- <img src = "https://wikimedia.org/api/ rest_v1 / media / math / render / svg / 3bc199c55d6ae1f04351b7b7a721d0fb9a5b21 "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -0.671ex; Breite: 18.344ex; Höhe: 3.009ex; "alt =" varepsilon _ {4} <2 ^ {- 23} <10^{-6}.,"/>
- <img src = "https://wikimedia.org/api/ rest_v1 / media / math / render / svg / b3425039f9411fb9109b4174cb04d837dc38fe81 "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -0.671ex; Breite: 19.165ex; Höhe: 3.009ex; "alt =" varepsilon _ {5} <2 ^ {- 47} <10^{-14}.,"/>
- <img src = "https://wikimedia.org/api/ rest_v1 / media / math / render / svg / d73f882414b129be7dc41538e4ce0d60c51891d7 "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -0.671ex; Breite: 19.165ex; Höhe: 3.009ex; "alt =" varepsilon _ {6} <2 ^ {- 95} <10^{-28}.,"/>
- <img src = "https://wikimedia.org/api/ rest_v1 / media / math / render / svg / bb09dcdf99c0c344075f8f6097c36fa976be0469 "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -0.671ex; Breite: 19.987ex; Höhe: 3.009ex; "alt =" varepsilon _ {7} <2 ^ {- 191} <10^{-57}.,"/>
- <img src = "https://wikimedia.org/api/ rest_v1 / media / math / render / svg / ca951a28fe668eb7abc2f3e5af2b968c1689f5c5 "class =" mwe-math-fallback-image-inline "aria-hidden =" true "style =" vertical-align: -0.671ex; Breite: 20.809ex; height: 3.009ex; "alt =" varepsilon _ {8} <2 ^ {- 383} <10^{-115}.,"/>
Rundungsfehler verlangsamen die Konvergenz. Es wird empfohlen, mindestens eine zusätzliche Ziffer außerhalb der gewünschten Genauigkeit des x n zu lassen, der zur Minimierung des Rundungsfehlers berechnet wird.
Bakhshali-Methode [ edit ]
Diese Methode zum Finden einer Annäherung an eine Quadratwurzel wurde in einem alten indischen mathematischen Manuskript, dem Bakhshali-Manuskript, beschrieben. Es entspricht zwei Iterationen der babylonischen Methode, beginnend mit x 0 . Der Algorithmus ist also quartalsweise konvergent, dh die Anzahl der korrekten Ziffern der Approximation vervierfacht sich bei jeder Wiederholung. [3] Die ursprüngliche Darstellung in moderner Notation sieht wie folgt aus: Um zu berechnen, lassen Sie x 0 2 die erste Annäherung an S . Dann iterieren Sie nacheinander wie folgt:
-
b n = x n + a n {19659261] = x_ {n} + a_ {n},}
Geschriebener Expl es wird
Không có nhận xét nào:
Đăng nhận xét