{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $p$ be a polynomial of degree $n \\ge 2$ with [[complex|09FTAET5Z4]] coefficients, whose [[roots|019MA1VTR2]] $r_1, \\dots, r_n$ are pairwise distinct.\nThe *Aberth method*, also called the Aberth–Ehrlich method, updates $n$ approximations $z_1, \\dots, z_n$ simultaneously by $z_i \\mapsto z_i - w_i$, where\n$$w_i = \\frac{\\dfrac{p(z_i)}{p'(z_i)}}{1 - \\dfrac{p(z_i)}{p'(z_i)} \\displaystyle\\sum_{j \\ne i} \\frac{1}{z_i - z_j}}, \\qquad i = 1, \\dots, n.$$\nThen there is $\\delta \u003e 0$ such that, if each starting value satisfies $\\abs{z_i - r_i} \u003c \\delta$, the iterates are defined and converge to $r_1, \\dots, r_n$, with cubic [[convergence|YWZQC5E54B]].\n\n## Remarks\n\nThe step is [[Newton's method|07EXVNF9VP]] applied to the rational function\n$$F_i(x) = \\frac{p(x)}{\\prod_{j \\ne i} (x - z_j)},$$\nwhich has the same root $r_i$ as $p$ but whose poles push $z_i$ away from the other approximations.\nIndeed $F_i'/F_i = p'/p - \\sum_{j \\ne i} 1/(x - z_j)$, and $x - F_i(x)/F_i'(x)$ at $x = z_i$ is exactly $z_i - w_i$.\nThis repulsion tends to keep two approximations from converging to the same root.\nAt multiple roots the convergence is only linear.\n\n## Explanations\n\n### L1 human\n\nThe Aberth method moves guesses for all the roots of a polynomial at the same time.\nEach guess takes a Newton step, but it is also repelled by the other guesses, like electric charges of the same sign.\nSo the guesses spread out, and each one settles on its own root.\n\n### L2 human\n\nIt improves the Durand–Kerner method, which converges only quadratically near simple roots.\nEach step costs $O(n^2)$ operations, and the steps can be done in parallel or in Gauss–Seidel fashion, using new values as soon as they are known.\nIt is the core of the MPSolve software for computing polynomial roots to high precision.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "019MA1VTR2"
    ],
    "kind": "statement",
    "msc": [
      "65H04"
    ],
    "name": "Aberth method",
    "role": "theorem",
    "same_as": {
      "wikidata": "Q4667181",
      "wikipedia": "Aberth method"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Aberth_method"
      }
    ],
    "tag": "BWQ8PVA9Q3",
    "uses": [
      "07EXVNF9VP",
      "019MA1VTR2",
      "YWZQC5E54B",
      "09FTAET5Z4"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/BWQ8PVA9Q3/",
  "links": [
    {
      "field": "about",
      "target": "019MA1VTR2"
    },
    {
      "field": "uses",
      "target": "07EXVNF9VP"
    },
    {
      "field": "uses",
      "target": "019MA1VTR2"
    },
    {
      "field": "uses",
      "target": "YWZQC5E54B"
    },
    {
      "field": "uses",
      "target": "09FTAET5Z4"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/BWQ8PVA9Q3.md",
  "msc": [
    "65H04"
  ],
  "name": "Aberth method",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/BWQ/BWQ8PVA9Q3.md",
  "status": null,
  "tag": "BWQ8PVA9Q3",
  "uri": "m2://BWQ8PVA9Q3",
  "url": "https://tamnd.github.io/math2/wiki/aberth-method/",
  "writing": {
    "tag": "BWQ8PVA9Q3",
    "kind": "statement",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
