{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $n \\ge 1$ and let $J = \\begin{pmatrix} 0 \u0026 I_n \\\\ -I_n \u0026 0 \\end{pmatrix}$, where $I_n$ is the $n \\times n$ identity matrix.\nFor a smooth function $H \\colon \\R^{2n} \\to \\R$, consider the [[Hamiltonian system|0EDKGA2FAK]] $y' = J \\nabla H(y)$ with $y = (q, p)$, that is, $q' = \\nabla_p H$ and $p' = -\\nabla_q H$.\nA one-step method assigns to each such $H$ and each small step size $h \u003e 0$ a map $\\Phi_h$, and computes $y_{k+1} = \\Phi_h(y_k)$.\nThe method is a *symplectic integrator* if $\\Phi_h$ is a symplectic map whenever $H$ is smooth and $\\Phi_h$ is defined and smooth.\nThis means\n$$D\\Phi_h(y)^T \\, J \\, D\\Phi_h(y) = J \\quad \\text{for all } y.$$\n\n## Remarks\n\nFor $n = 1$, a map of the plane is symplectic exactly when its Jacobian determinant is $1$, that is, when it preserves area.\nExample: for $H = \\frac12 (p^2 + q^2)$, the symplectic Euler method $p_{k+1} = p_k - h q_k$, $q_{k+1} = q_k + h p_{k+1}$ gives $q_{k+1} = (1 - h^2) q_k + h p_k$, with Jacobian determinant $(1 - h^2) \\cdot 1 - h \\cdot (-h) = 1$.\nIn general the symplectic Euler method is $p_{k+1} = p_k - h \\nabla_q H(q_k, p_{k+1})$, $q_{k+1} = q_k + h \\nabla_p H(q_k, p_{k+1})$, and it is symplectic for every $H$.\nNon-example: the explicit [[Euler method|0JARTXX4XP]] for the same $H$ is $q_{k+1} = q_k + h p_k$, $p_{k+1} = p_k - h q_k$, with Jacobian determinant $1 + h^2 \\ne 1$, so it is not symplectic.\nA Runge–Kutta method with coefficients $a_{ij}$, $b_i$ is symplectic when $b_i a_{ij} + b_j a_{ji} = b_i b_j$ for all $i, j$; the implicit midpoint rule is an example.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "defines": "B4C25SXFRE",
    "kind": "definition",
    "msc": [
      "65P10",
      "37J11"
    ],
    "name": "Symplectic integrator",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Symplectic_integrator"
      }
    ],
    "tag": "NZTCZQA8KW",
    "uses": [
      "0EDKGA2FAK",
      "0JARTXX4XP"
    ]
  },
  "kind": "definition",
  "link": "https://tamnd.github.io/math2/node/NZTCZQA8KW/",
  "links": [
    {
      "field": "defines",
      "target": "B4C25SXFRE"
    },
    {
      "field": "uses",
      "target": "0EDKGA2FAK"
    },
    {
      "field": "uses",
      "target": "0JARTXX4XP"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/NZTCZQA8KW.md",
  "msc": [
    "65P10",
    "37J11"
  ],
  "name": "Symplectic integrator",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/NZT/NZTCZQA8KW.md",
  "status": null,
  "tag": "NZTCZQA8KW",
  "uri": "m2://NZTCZQA8KW",
  "url": "https://tamnd.github.io/math2/wiki/symplectic-integrator-definition/",
  "writing": {
    "tag": "NZTCZQA8KW",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
