Fixpunktiteration für Kubikwurzel
Ich versuche, die Kubikwurzel einer Zahl mithilfe der Festpunktiteration zu approximieren. Ich weiß, wie man eine Fixpunktiteration durchführt, aber ich brauche Hilfe, um die Gleichung x = f (x) herauszufinden. Nehmen Sie x als Wurzel und n als Zahl, für die die Kubikwurzel ermittelt werden soll.
Antworten
@Lutz Lehmann schlägt vor, die Newtonsche Methode für die Gleichung zu verwenden $$f(x) = 0,$$ wo $$f(x) = x^2 - \frac{a}{x}.$$ Es ist klar, dass wenn $a > 0$, dann $r = a^{\frac{1}{3}}$ist die einzige positive Lösung dieser Gleichung. Die Iteration hat die Form$$x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)} = g(x_k)$$ wo $$g(x) = x - \frac{f(x)}{f'(x)} = x - \frac{x^2 - \frac{a}{x}}{2x + \frac{a}{x^2}} = x - x \left(\frac{x^3 - a}{2x^3 + a}\right).$$Im Allgemeinen wird die Konvergenz einer funktionalen Iteration durch die Ableitungen am Fixpunkt bestimmt. Insbesondere wenn$g(r) = r$ und $$g^{(j)}(r) = 0, \quad j=1,2,\dotsc,p-1$$ dann nach Taylors Formel $$|r - x_{k+1}| = O(|r-x_k|^p).$$ Im Fall der Newtonschen Formel, dh $$g(x) = x - \frac{f(x)}{f'(x)}$$ und $f(r) = 0$ und $f(x) \not = 0$, wir haben $$g(r) = r $$ und $$ g'(x) = 1 - \frac{f'(x)^2 - f(x)f''(x)}{f'(x)^2} = \frac{f(x)f''(x)}{f'(x)^2} $$ und $$ g''(x) = \frac{(f'(x)f''(x)+f(x)f'''(x))f'(x)^2-2 f(x)f''(x)f'(x)f''(x)}{f'(x)^4}$$ Im $f(r) = 0$, dann $g'(r) = 0$ und $p \ge 2$ und wenn $f(r) = f''(r) = 0$, dann $g'(r) = g''(r) = 0$ und $p \ge 3$. Es ist einfach, dies mit zu überprüfen$f(x) = x^2 - a x^{-1}$ wir haben $$f'(x) = 2x + ax^{-2}$$ und $$f''(x) = 2 - 2 ax^{-3}.$$ Es folgt dem $$f(r) = f''(r) = 0$$ wo $$r = a^{\frac{1}{3}}.$$
Die Ausgangsgleichung lautet
$$x^3=n.$$
Sie können viele Dinge ausprobieren,
$$x=\frac n{x^2},\\x=n+x-x^3,\\x=\alpha x+\beta\frac x{n^2}+\gamma(n+n-x^2),\\\cdots$$ mit $\alpha+\beta+\gamma=1$ vorausgesetzt, die Funktion zieht sich zusammen.
Wie von anderen gesagt, werden Newtons Iterationen effizient sein:
$$x=x-\frac{x^3-n}{3x^2}=\frac{2x^3+n}{3x^2}.$$