{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $k \\ge 1$ be an integer, the order, so that polynomial pieces have degree at most $k - 1$.\nLet $\\xi_1 \u003c \\xi_2 \u003c \\cdots \u003c \\xi_{l+1}$ be breakpoints, and for $i = 2, \\dots, l$ let $\\nu_i$ be an integer with $0 \\le \\nu_i \\le k$.\nLet $S$ be the space of functions $s$ on $[\\xi_1, \\xi_{l+1})$ such that:\n\n1. on each interval $[\\xi_i, \\xi_{i+1})$, $s$ agrees with a polynomial of degree at most $k - 1$;\n2. at each interior breakpoint $\\xi_i$, the two adjacent polynomial pieces have equal derivatives of orders $0, 1, \\dots, \\nu_i - 1$ at $\\xi_i$.\n\nLet $n = k + \\sum_{i=2}^{l} (k - \\nu_i)$.\nLet $t_1 \\le t_2 \\le \\cdots \\le t_{n+k}$ be a knot sequence with $t_k = \\xi_1$, $t_{n+1} = \\xi_{l+1}$, $t_1 \\le \\dots \\le t_k$, $t_{n+1} \\le \\dots \\le t_{n+k}$, and in which each interior breakpoint $\\xi_i$ occurs exactly $k - \\nu_i$ times among $t_{k+1}, \\dots, t_n$.\nThen the [[B-splines|62AFX32JGT]] $B_{1,k}, \\dots, B_{n,k}$ of order $k$ for the knots $t$, restricted to $[\\xi_1, \\xi_{l+1})$, form a [[basis|0KCQ9Y3QKA]] of $S$.\nIn particular, $\\dim S = n$.\n\n## Remarks\n\nEach $B_{j,k}$ is a piecewise polynomial of degree at most $k - 1$, and a knot of multiplicity $m$ costs it exactly $m$ orders of smoothness, so each $B_{j,k}$ lies in $S$.\nThe dimension of $S$ is $n$ by counting: $l$ pieces give $kl$ coefficients, and the conditions at $\\xi_i$ remove $\\nu_i$ of them, which are independent.\nLinear independence of the B-splines can be proved with the dual functionals of de Boor and Fix, and $n$ independent elements of an $n$-dimensional space form a basis.\nExample: for $k = 4$ and $\\nu_i = 3$ at every interior breakpoint, $S$ is the space of cubic [[splines|84TJ8KQ926]] of class $C^2$, and $n = l + 3$.\nThe end knots $t_1, \\dots, t_k$ and $t_{n+1}, \\dots, t_{n+k}$ can be chosen freely in the stated ranges; a common choice is to make them all equal to the endpoints.\nThe intervals are half-open because B-splines are right-continuous.\nWith the common choice of end knots, all of them vanish at $\\xi_{l+1}$, and one extends a spline there by its left limit.\n\n## Explanations\n\n### L1 human\n\nA spline is built from polynomial pieces glued together with some smoothness at the joints.\nThe theorem says that the B-splines are exactly the right building blocks: every such spline is a unique sum of multiples of them.\nThe number of B-splines needed equals the number of free parameters of the spline space.\nThe only thing to choose is how often each joint is repeated as a knot, and that encodes how smooth the spline is there.\n\n### L2 human\n\nThe theorem turns the abstract space of piecewise polynomials into a concrete space with a well-conditioned basis of small support.\nIt is why spline software stores a spline as a knot vector and a list of B-spline coefficients.\nInterpolation and least squares fitting with splines become banded linear systems in this basis.\nRaising the multiplicity of a knot by one lowers the smoothness there by one, and multiplicity $k$ allows a jump.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "62AFX32JGT",
      "84TJ8KQ926"
    ],
    "kind": "statement",
    "msc": [
      "41A15",
      "65D07"
    ],
    "name": "Curry–Schoenberg theorem",
    "role": "theorem",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/B-spline"
      }
    ],
    "tag": "DHC96EYCN6",
    "uses": [
      "62AFX32JGT",
      "84TJ8KQ926",
      "0KCQ9Y3QKA"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/DHC96EYCN6/",
  "links": [
    {
      "field": "about",
      "target": "62AFX32JGT"
    },
    {
      "field": "about",
      "target": "84TJ8KQ926"
    },
    {
      "field": "uses",
      "target": "62AFX32JGT"
    },
    {
      "field": "uses",
      "target": "84TJ8KQ926"
    },
    {
      "field": "uses",
      "target": "0KCQ9Y3QKA"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/DHC96EYCN6.md",
  "msc": [
    "41A15",
    "65D07"
  ],
  "name": "Curry–Schoenberg theorem",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/DHC/DHC96EYCN6.md",
  "status": null,
  "tag": "DHC96EYCN6",
  "uri": "m2://DHC96EYCN6",
  "url": "https://tamnd.github.io/math2/wiki/curry-schoenberg-theorem/",
  "writing": {
    "tag": "DHC96EYCN6",
    "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
      }
    ]
  }
}
