{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "X9F8SQFQGP"
    }
  ],
  "body": "\n## Summary\n\nThe adjoint state method computes the [[gradient|0ABK9V9Y64]] of an objective that depends on parameters through the solution of an equation.\nA typical example of such an equation is a discretised differential equation.\nInstead of differentiating the state with respect to each parameter, it solves one extra linear equation, the adjoint equation, whose solution is the adjoint state.\nThe cost of the gradient is then about that of one or two state solves, whatever the number of parameters.\nIt is the basis of PDE-constrained optimization, of seismic and medical inversion, and of reverse-mode differentiation.\n\n## Explanations\n\n### L1 human\n\nSuppose a simulation turns a million parameters into a state, and you measure how far the state is from data.\nChanging each parameter one at a time and re-running the simulation would take a million runs.\nThe adjoint method runs the simulation once, then runs one extra backward problem that tells how sensitive the misfit is to the state.\nFrom that single answer it reads off the sensitivity to all parameters at once.\nIn the simplest case, the state is $u = A^{-1} \\theta$ and the misfit is $\\frac{1}{2} \\abs{u - d}^2$; then the gradient is the solution $\\lambda$ of $A^T \\lambda = u - d$.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "49M41",
      "65K10",
      "49K20"
    ],
    "name": "Adjoint state method",
    "same_as": {
      "wikidata": "Q4683172",
      "wikipedia": "Adjoint state method"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Adjoint_state_method"
      }
    ],
    "tag": "YD8SA6WS01"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/YD8SA6WS01/",
  "links": null,
  "markdown": "https://tamnd.github.io/math2/node/YD8SA6WS01.md",
  "msc": [
    "49M41",
    "65K10",
    "49K20"
  ],
  "name": "Adjoint state method",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/YD8/YD8SA6WS01.md",
  "status": null,
  "tag": "YD8SA6WS01",
  "uri": "m2://YD8SA6WS01",
  "url": "https://tamnd.github.io/math2/wiki/adjoint-state-method/",
  "writing": {
    "tag": "YD8SA6WS01",
    "kind": "concept",
    "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
      }
    ]
  }
}
