{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $x_0, \\ldots, x_{N-1}$ be collocation points in a domain $\\Omega$, and let $V_N$ be a space of global functions with an interpolation property.\nFor every vector of values $(v_j)$ there is a unique $p \\in V_N$ with $p(x_j) = v_j$ for all $j$.\nWrite $I_N v$ for this interpolant.\nA *pseudo-spectral method* for an equation $u_t = \\mathcal{N}(u)$, with $\\mathcal{N}$ a differential operator, is the following scheme:\n\n1. the unknowns are the values $u_j(t) \\approx u(x_j, t)$;\n2. each derivative $\\partial^m u$ is replaced by $\\partial^m (I_N u)$, evaluated at the points $x_j$;\n3. products and other nonlinear functions of $u$ and its derivatives are evaluated pointwise at the $x_j$;\n4. the equation is required to hold at each point $x_j$.\n\nIt is a [[spectral method|MYV657YRDW]] of collocation type.\n\n## Remarks\n\nPeriodic case: $\\Omega = [0, 2\\pi)$, $x_j = 2\\pi j / N$, and $V_N$ the [[trigonometric interpolants|SVABG134WE]] of degree about $N/2$.\nDerivatives are then computed with the [[discrete Fourier transform|TST0GH66A5]]: transform, multiply the coefficient of $e^{ikx}$ by $ik$, and transform back.\nWith the [[fast Fourier transform|S966EZX3ZT]] this costs $O(N \\log N)$ operations.\nOn an interval one often uses Chebyshev points $x_j = \\cos(\\pi j / (N - 1))$ and the [[Chebyshev polynomials|M6EAR1JHPP]].\n\nExample: for $N = 8$ and $u_j = \\sin x_j$, the transform has only the coefficients of $e^{\\pm ix}$.\nMultiplying them by $\\pm i$ and transforming back gives $\\cos x_j$ exactly.\nFor Burgers' equation $u_t + u u_x = 0$, one forms $u_x$ this way and then multiplies by $u_j$ at each point.\n\nNon-example: a spectral Galerkin method computes the product $u u_x$ through its exact Fourier coefficients, a convolution of coefficient sequences.\nIt does not use pointwise evaluation, so clause 3 fails.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "defines": "XB91QS2AR0",
    "kind": "definition",
    "msc": [
      "65M70",
      "65N35"
    ],
    "name": "Pseudo-spectral method",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Pseudo-spectral_method"
      }
    ],
    "tag": "T37Q055GDA",
    "uses": [
      "MYV657YRDW",
      "SVABG134WE",
      "TST0GH66A5",
      "S966EZX3ZT",
      "M6EAR1JHPP"
    ]
  },
  "kind": "definition",
  "link": "https://tamnd.github.io/math2/node/T37Q055GDA/",
  "links": [
    {
      "field": "defines",
      "target": "XB91QS2AR0"
    },
    {
      "field": "uses",
      "target": "MYV657YRDW"
    },
    {
      "field": "uses",
      "target": "SVABG134WE"
    },
    {
      "field": "uses",
      "target": "TST0GH66A5"
    },
    {
      "field": "uses",
      "target": "S966EZX3ZT"
    },
    {
      "field": "uses",
      "target": "M6EAR1JHPP"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/T37Q055GDA.md",
  "msc": [
    "65M70",
    "65N35"
  ],
  "name": "Pseudo-spectral method",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/T37/T37Q055GDA.md",
  "status": null,
  "tag": "T37Q055GDA",
  "uri": "m2://T37Q055GDA",
  "url": "https://tamnd.github.io/math2/wiki/pseudo-spectral-method-definition/",
  "writing": {
    "tag": "T37Q055GDA",
    "kind": "definition",
    "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
      }
    ]
  }
}
