{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $C$ be a field of characteristic $0$ in which the field operations and the test for equality are computable.\nLet $F = C(x)(t_1, \\dots, t_m)$ be a [[differential field|GA5PTQGC6G]] with [[derivation|3J89REV9WQ]] $'$ such that $x' = 1$ and the constants of $F$ are $C$.\nAssume that each $t_i$ is a logarithm, an exponential or an algebraic element over $C(x)(t_1, \\dots, t_{i-1})$.\nThe *Risch algorithm* is the procedure that takes $f \\in F$ as input and does one of two things:\n\n1. it returns an element $g$ of an elementary extension of $F$ with $g' = f$, that is, an elementary [[antiderivative|0BYWRWFT4F]] of $f$;\n2. it reports, correctly, that no elementary extension of $F$ contains such an element $g$.\n\n## Remarks\n\nThe procedure works down the tower.\nIt writes $f$ in terms of the last generator $t_m$ and uses [[Liouville's theorem|8VRTPECBPZ]] to predict the form of a possible antiderivative.\nThis reduces the problem to integration and to differential equations in the smaller field $C(x)(t_1, \\dots, t_{m-1})$.\nThe cases of logarithms and exponentials (the transcendental case) are simpler than the algebraic case.\n\nExample: for $F = \\Q(x, e^x)$ and $f = x e^x$, the procedure looks for $g = q e^x$ with $q \\in \\Q(x)$ and $q' + q = x$, finds $q = x - 1$, and returns $g = (x - 1) e^x$.\n\nExample: for $F = \\Q(x, e^{x^2})$ and $f = e^{x^2}$, the same reduction asks for $q \\in \\Q(x)$ with $q' + 2x q = 1$; there is none, so the procedure reports that $e^{x^2}$ has no elementary antiderivative.\n\nNon-example: a table of integrals finds many antiderivatives, but it fails clause 2, because it cannot certify that an integral not in the table is not elementary.\n\nThe algorithm needs a way to decide whether a constant expression equals $0$.\nFor constants built from $\\pi$, $e$ and other transcendental numbers this is a hard problem, so in practice the algorithm is only as complete as the zero test for constants.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "defines": "VJ51B7J125",
    "kind": "definition",
    "msc": [
      "68W30",
      "12H05",
      "33F10"
    ],
    "name": "Risch algorithm",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Risch_algorithm"
      }
    ],
    "tag": "GMY8XWETFV",
    "uses": [
      "GA5PTQGC6G",
      "3J89REV9WQ",
      "0BYWRWFT4F",
      "8VRTPECBPZ"
    ]
  },
  "kind": "definition",
  "link": "https://math2.tamnd.com/node/GMY8XWETFV/",
  "links": [
    {
      "field": "defines",
      "target": "VJ51B7J125"
    },
    {
      "field": "uses",
      "target": "GA5PTQGC6G"
    },
    {
      "field": "uses",
      "target": "3J89REV9WQ"
    },
    {
      "field": "uses",
      "target": "0BYWRWFT4F"
    },
    {
      "field": "uses",
      "target": "8VRTPECBPZ"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/GMY8XWETFV.md",
  "msc": [
    "68W30",
    "12H05",
    "33F10"
  ],
  "name": "Risch algorithm",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/GMY/GMY8XWETFV.md",
  "status": null,
  "tag": "GMY8XWETFV",
  "uri": "m2://GMY8XWETFV",
  "url": "https://math2.tamnd.com/wiki/risch-algorithm-definition/",
  "writing": {
    "tag": "GMY8XWETFV",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
