{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $p$ be a polynomial of degree $n \\ge 3$ with real coefficients, and let $u, v$ be real numbers.\nBy [[polynomial long division|D6D0SR1FK3]] by $B(x) = x^2 + ux + v$, write\n$$p(x) = B(x) \\, q(x) + c x + d, \\qquad q(x) = B(x) \\, s(x) + g x + h,$$\nwhere $q$ and $s$ are polynomials and $c, d, g, h$ are real numbers that depend on $(u, v)$.\nThen $c$ and $d$ are polynomial functions of $(u, v)$ with partial derivatives\n$$\\frac{\\partial c}{\\partial u} = ug - h, \\quad \\frac{\\partial c}{\\partial v} = -g, \\quad \\frac{\\partial d}{\\partial u} = vg, \\quad \\frac{\\partial d}{\\partial v} = -h.$$\nThe step of *Bairstow's method* is\n$$\\begin{pmatrix} u \\\\ v \\end{pmatrix} \\mapsto \\begin{pmatrix} u \\\\ v \\end{pmatrix} - \\frac{1}{vg^2 + h(h - ug)} \\begin{pmatrix} -h \u0026 g \\\\ -vg \u0026 ug - h \\end{pmatrix} \\begin{pmatrix} c \\\\ d \\end{pmatrix}.$$\nIt is one step of [[Newton's method|07EXVNF9VP]] for the system $c(u, v) = 0$, $d(u, v) = 0$.\nThe solutions of this system are the pairs $(u, v)$ for which $x^2 + ux + v$ divides $p$.\n\n## Remarks\n\nDifferentiate $p = Bq + cx + d$ with respect to $v$: $0 = q + B \\, \\partial_v q + (\\partial_v c) x + \\partial_v d$.\nSo $q$ leaves the remainder $-(\\partial_v c) x - \\partial_v d$ on division by $B$, which gives $\\partial_v c = -g$ and $\\partial_v d = -h$.\nDifferentiating with respect to $u$ gives that $x q(x)$ leaves the remainder $-(\\partial_u c) x - \\partial_u d$; since $x(gx + h) \\equiv (h - ug) x - vg$ modulo $B$, this gives the other two derivatives.\nThe $2 \\times 2$ matrix in the step is the inverse of the [[Jacobian matrix|047NDTEPCV]] of $(c, d)$, times its determinant $vg^2 + h(h - ug)$.\nSo, when this Jacobian is invertible at a quadratic factor, the method converges quadratically from nearby starting values.\nA quadratic factor gives two [[roots|019MA1VTR2]] of $p$ by the quadratic formula, which may be a pair of complex conjugate roots, all in real arithmetic.\n\n## Explanations\n\n### L1 human\n\nA real polynomial can have complex roots, which come in conjugate pairs.\nEach pair is the pair of roots of a real quadratic factor $x^2 + ux + v$.\nBairstow's method searches for such a factor directly, by adjusting $u$ and $v$ until the division of $p$ by $x^2 + ux + v$ leaves no remainder.\n\n### L2 human\n\nAll the work is two synthetic divisions per step, so it is cheap.\nAfter a factor is found, one divides it out and repeats on the quotient of degree $n - 2$.\nLike Newton's method, it needs good starting values and converges only linearly at multiple factors.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "019MA1VTR2"
    ],
    "kind": "statement",
    "msc": [
      "65H04"
    ],
    "name": "Bairstow's method",
    "role": "proposition",
    "same_as": {
      "wikidata": "Q384021",
      "wikipedia": "Bairstow's method"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Bairstow%27s_method"
      }
    ],
    "tag": "C8S7XX0VZM",
    "uses": [
      "07EXVNF9VP",
      "D6D0SR1FK3",
      "047NDTEPCV",
      "019MA1VTR2"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/C8S7XX0VZM/",
  "links": [
    {
      "field": "about",
      "target": "019MA1VTR2"
    },
    {
      "field": "uses",
      "target": "07EXVNF9VP"
    },
    {
      "field": "uses",
      "target": "D6D0SR1FK3"
    },
    {
      "field": "uses",
      "target": "047NDTEPCV"
    },
    {
      "field": "uses",
      "target": "019MA1VTR2"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/C8S7XX0VZM.md",
  "msc": [
    "65H04"
  ],
  "name": "Bairstow's method",
  "prov": null,
  "role": "proposition",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/C8S/C8S7XX0VZM.md",
  "status": null,
  "tag": "C8S7XX0VZM",
  "uri": "m2://C8S7XX0VZM",
  "url": "https://tamnd.github.io/math2/wiki/bairstows-method/",
  "writing": {
    "tag": "C8S7XX0VZM",
    "kind": "statement",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
