{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "J8ET1M5V10"
    }
  ],
  "body": "\n## Statement\n\nLet $W$ be a one-dimensional [[Wiener process|22735FGJV6]], and consider the scalar Itô [[stochastic differential equation|B219G9SHJA]]\n$$dX_t = a(X_t)\\, dt + b(X_t)\\, dW_t, \\qquad X_0 = x_0 \\in \\R, \\qquad 0 \\le t \\le T.$$\nAssume that $a$ and $b$ are twice continuously differentiable with bounded first and second derivatives, and that $b b'$ is globally Lipschitz continuous.\nLet $h = T/N$, $t_n = n h$ and $\\Delta W_n = W_{t_{n+1}} - W_{t_n}$.\nThe Milstein method sets $Y_0 = x_0$ and\n$$Y_{n+1} = Y_n + a(Y_n)\\, h + b(Y_n)\\, \\Delta W_n + \\tfrac12\\, b(Y_n)\\, b'(Y_n) \\left( (\\Delta W_n)^2 - h \\right).$$\nThen the method has strong order $1$: there is a constant $C$, independent of $N$, such that\n$$\\max_{0 \\le n \\le N} \\left( \\mathbb{E} \\abs{X_{t_n} - Y_n}^2 \\right)^{1/2} \\le C h.$$\n\n## Remarks\n\nThe scheme is the Itô–Taylor expansion of the solution over one step, cut after the terms of order $h$ in mean square.\nApplying [[Itô's lemma|2J1RVQB0CM]] to $b(X_t)$ shows that the leading neglected term of the [[Euler–Maruyama method|22T0NVC56P]] is $b b' \\int_{t_n}^{t_{n+1}} (W_s - W_{t_n})\\, dW_s$, and this double integral equals $\\frac12((\\Delta W_n)^2 - h)$.\nThe Euler–Maruyama method omits this term and has strong order only $1/2$ when $b' \\ne 0$; when $b$ is constant, both methods coincide.\nExample: for geometric Brownian motion $dX = \\mu X\\, dt + \\sigma X\\, dW$, the method reads $Y_{n+1} = Y_n \\left( 1 + \\mu h + \\sigma \\Delta W_n + \\frac{\\sigma^2}{2} ((\\Delta W_n)^2 - h) \\right)$.\nFor systems driven by several Wiener processes, the analogous scheme needs the iterated integrals $\\int\\!\\!\\int dW^i\\, dW^j$, which are not functions of the increments unless a commutativity condition holds.\n\n## Explanations\n\n### L1 human\n\nSimulating a random differential equation step by step, the simplest method treats the noise strength as frozen over each step.\nWhen the noise strength depends on the state, this ignores how the noise changes itself during the step.\nMilstein's method adds one correction term for this effect, built from the square of the random increment.\nWith it, halving the step size halves the pathwise error, instead of reducing it only by a factor $\\sqrt{2}$.\n\n### L2 human\n\nStrong order measures the error of individual paths and matters for multilevel Monte Carlo and for pathwise simulation.\nWeak order measures the error of expectations, and there Euler–Maruyama and Milstein both have order $1$.\nThe extra term costs one derivative of $b$; derivative-free variants replace $b'$ by a difference quotient, as in stochastic Runge–Kutta methods.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "B219G9SHJA"
    ],
    "kind": "statement",
    "msc": [
      "65C30",
      "60H35"
    ],
    "name": "Milstein method",
    "role": "theorem",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Milstein_method"
      }
    ],
    "tag": "C5WJT0NWGV",
    "uses": [
      "B219G9SHJA",
      "22735FGJV6",
      "22T0NVC56P",
      "2J1RVQB0CM"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/C5WJT0NWGV/",
  "links": [
    {
      "field": "about",
      "target": "B219G9SHJA"
    },
    {
      "field": "uses",
      "target": "B219G9SHJA"
    },
    {
      "field": "uses",
      "target": "22735FGJV6"
    },
    {
      "field": "uses",
      "target": "22T0NVC56P"
    },
    {
      "field": "uses",
      "target": "2J1RVQB0CM"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/C5WJT0NWGV.md",
  "msc": [
    "65C30",
    "60H35"
  ],
  "name": "Milstein method",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/C5W/C5WJT0NWGV.md",
  "status": null,
  "tag": "C5WJT0NWGV",
  "uri": "m2://C5WJT0NWGV",
  "url": "https://tamnd.github.io/math2/wiki/milstein-method/",
  "writing": {
    "tag": "C5WJT0NWGV",
    "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
      }
    ]
  }
}
