{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $f \\colon \\R \\times \\R^d \\to \\R^d$ be sufficiently smooth, and consider the [[initial value problem|0FXDW992DS]] $y' = f(t, y)$, $y(t_0) = y_0$.\nLet $P$ be an explicit [[linear multistep method|BX4D85A79P]] of order $p^* \\ge 1$, the predictor.\nLet $C$ be an implicit linear multistep method of order $p \\ge 1$, the corrector.\nOne step of the PECE mode with step size $h$ does the following:\n\n1. P: compute a predicted value $y_{n+1}^{[0]}$ with $P$.\n2. E: evaluate $f_{n+1}^{[0]} = f(t_{n+1}, y_{n+1}^{[0]})$.\n3. C: compute $y_{n+1}$ with the formula of $C$, where $f_{n+1}^{[0]}$ replaces the unknown value $f(t_{n+1}, y_{n+1})$.\n4. E: evaluate $f_{n+1} = f(t_{n+1}, y_{n+1})$ for use in later steps.\n\nThen the PECE method is an explicit method of order $\\min(p, p^* + 1)$.\nIf $p^* \\ge p$, its principal local truncation error equals that of the corrector.\n\n## Remarks\n\nThe corrector is applied once instead of being iterated to convergence, so no nonlinear equation is solved.\nThe error of the predicted value is $O(h^{p^*+1})$.\nIt enters the corrected value multiplied by $h$ times a coefficient of the corrector, so it adds $O(h^{p^*+2})$ to the local error.\nComparing this with the local error $O(h^{p+1})$ of the corrector gives the order $\\min(p, p^*+1)$.\nExample: the [[Euler method|0JARTXX4XP]] ($p^* = 1$) as predictor and the trapezoidal rule ($p = 2$) as corrector give [[Heun's method|RJEK60G28F]], of order $\\min(2, 2) = 2$.\nWhen $p^* = p$, the difference $y_{n+1} - y_{n+1}^{[0]}$ gives an estimate of the local error (Milne's device), which is used for [[adaptive step size|6MREWBZR7R]] control.\n\n## Explanations\n\n### L1 human\n\nAn implicit method is often more accurate and more stable, but its formula contains the unknown new value on both sides.\nA predictor-corrector method first guesses the new value with a cheap explicit formula.\nIt then plugs the guess into the implicit formula once, which corrects it.\nThe result is explicit, and it keeps the order of the corrector when the guess is good enough.\n\n### L2 human\n\nThe Adams–Bashforth–Moulton pairs are the standard example: an Adams–Bashforth predictor with an Adams–Moulton corrector of the same order.\nThe PECE method has the same order as the corrector, but its stability region is different and is in general smaller than that of the corrector.\nSo predictor-corrector methods are not suited to [[stiff equations|RR5FCG92PN]], where one solves the implicit equations with Newton's method instead.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "BX4D85A79P"
    ],
    "kind": "statement",
    "msc": [
      "65L06",
      "65L05"
    ],
    "name": "Predictor–corrector method",
    "role": "proposition",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Predictor%E2%80%93corrector_method"
      }
    ],
    "tag": "MHGV8HCAQR",
    "uses": [
      "BX4D85A79P",
      "0FXDW992DS"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/MHGV8HCAQR/",
  "links": [
    {
      "field": "about",
      "target": "BX4D85A79P"
    },
    {
      "field": "uses",
      "target": "BX4D85A79P"
    },
    {
      "field": "uses",
      "target": "0FXDW992DS"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/MHGV8HCAQR.md",
  "msc": [
    "65L06",
    "65L05"
  ],
  "name": "Predictor–corrector method",
  "prov": null,
  "role": "proposition",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/MHG/MHGV8HCAQR.md",
  "status": null,
  "tag": "MHGV8HCAQR",
  "uri": "m2://MHGV8HCAQR",
  "url": "https://tamnd.github.io/math2/wiki/predictor-corrector-method/",
  "writing": {
    "tag": "MHGV8HCAQR",
    "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
      }
    ]
  }
}
