{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "6KQJR85ZC6"
    },
    {
      "field": "uses",
      "target": "AC9PY6FBYF"
    },
    {
      "field": "uses",
      "target": "G0EDYEDG4S"
    }
  ],
  "body": "\n## Statement\n\nLet $A$ be a real $n \\times n$ matrix with nonzero diagonal entries, and let $b \\in \\R^n$.\nWrite $A = D + R$, where $D$ is the diagonal part of $A$ and $R = A - D$.\nThe *Jacobi method* for the [[linear system|0GT4WWGWH2]] $A x = b$ starts from any $x^{(0)} \\in \\R^n$ and sets\n$$x^{(k+1)} = D^{-1} \\left( b - R x^{(k)} \\right), \\quad \\text{that is,} \\quad x^{(k+1)}_i = \\frac{1}{a_{ii}} \\Big( b_i - \\sum_{j \\ne i} a_{ij} x^{(k)}_j \\Big).$$\nSuppose that $A$ is strictly [[diagonally dominant|89P5GTKW87]] by rows.\nThen $A$ is invertible, and for every $b$ and every $x^{(0)}$ the iterates converge to $A^{-1} b$.\n\n## Remarks\n\nThe error $e_k = x^{(k)} - A^{-1} b$ satisfies $e_{k+1} = G e_k$ with $G = -D^{-1} R$.\nThe $i$-th absolute row sum of $G$ is $\\sum_{j \\ne i} \\abs{a_{ij}} / \\abs{a_{ii}}$, which is less than $1$ by diagonal dominance.\nSo the [[matrix norm|54T6Y6DSY4]] $\\norm{G}_\\infty$ is less than $1$, and $\\norm{e_k}_\\infty \\le \\norm{G}_\\infty^k \\norm{e_0}_\\infty \\to 0$.\nIn general, the method converges for every $x^{(0)}$ if and only if the [[spectral radius|9V7YQA85PC]] of $G$ is less than $1$.\nExample: for $A$ with rows $(2, 1)$ and $(1, 2)$ and $b = (3, 3)$, starting at $0$ gives $(1.5, 1.5)$, $(0.75, 0.75)$, $(1.125, 1.125)$, tending to $(1, 1)$.\nThe error is multiplied by $-1/2$ at each step.\nWithout diagonal dominance the method can diverge.\nFor $A$ with rows $(1, 2)$ and $(2, 1)$, the matrix $G$ has eigenvalues $\\pm 2$.\n\n## Explanations\n\n### L1 human\n\nEach equation of the system is solved for its own unknown, using the old values of all the other unknowns.\nAll unknowns are updated at once, and the process repeats.\nWhen each diagonal entry outweighs the rest of its row, every equation is dominated by its own unknown.\nThen the updates shrink the error at each step.\n\n### L2 human\n\nThe Jacobi method is the simplest [[iterative method|2RPE77ACER]] built from a splitting $A = M - N$, here with $M = D$.\nEach step costs one matrix-vector product, and all components can be computed in parallel.\nIt converges slowly on discretized elliptic problems, where the spectral radius tends to $1$ as the mesh is refined.\nA damped version is still widely used as a smoother in multigrid methods.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "2RPE77ACER",
      "89P5GTKW87"
    ],
    "kind": "statement",
    "msc": [
      "65F10"
    ],
    "name": "Jacobi method",
    "role": "theorem",
    "same_as": {
      "wikidata": "Q1481893",
      "wikipedia": "Jacobi method"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Jacobi_method"
      }
    ],
    "tag": "B8FVHNXAN1",
    "uses": [
      "0GT4WWGWH2",
      "89P5GTKW87",
      "9V7YQA85PC",
      "54T6Y6DSY4",
      "2RPE77ACER"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/B8FVHNXAN1/",
  "links": [
    {
      "field": "about",
      "target": "2RPE77ACER"
    },
    {
      "field": "about",
      "target": "89P5GTKW87"
    },
    {
      "field": "uses",
      "target": "0GT4WWGWH2"
    },
    {
      "field": "uses",
      "target": "89P5GTKW87"
    },
    {
      "field": "uses",
      "target": "9V7YQA85PC"
    },
    {
      "field": "uses",
      "target": "54T6Y6DSY4"
    },
    {
      "field": "uses",
      "target": "2RPE77ACER"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/B8FVHNXAN1.md",
  "msc": [
    "65F10"
  ],
  "name": "Jacobi method",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/B8F/B8FVHNXAN1.md",
  "status": null,
  "tag": "B8FVHNXAN1",
  "uri": "m2://B8FVHNXAN1",
  "url": "https://tamnd.github.io/math2/wiki/jacobi-method/",
  "writing": {
    "tag": "B8FVHNXAN1",
    "kind": "statement",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
