StratonovichProcess[{a,b},x,t]
Stratonovich過程
を表す.ただし,
である.
StratonovichProcess[{a,b,c},x,t]
Stratonovich過程
を表す.ただし,
である.
StratonovichProcess[…,…,{x,x0},{t,t0}]
初期条件
のStratonovich過程を表す.
StratonovichProcess[…,…,…,Σ]
共分散Σのウィナー(Wiener)過程
を使う.
StratonovichProcess[proc]
可能な際は常に proc を標準Stratonovich過程に変換する.
StratonovichProcess[sdeqns,expr,x,t,wdproc]
確率微分方程式 sdeqns,出力式expr,状態 x,時間 t で指定され,過程 dproc に従う w によって決定されるStratonovich過程を表す.
StratonovichProcess
StratonovichProcess[{a,b},x,t]
Stratonovich過程
を表す.ただし,
である.
StratonovichProcess[{a,b,c},x,t]
Stratonovich過程
を表す.ただし,
である.
StratonovichProcess[…,…,{x,x0},{t,t0}]
初期条件
のStratonovich過程を表す.
StratonovichProcess[…,…,…,Σ]
共分散Σのウィナー(Wiener)過程
を使う.
StratonovichProcess[proc]
可能な際は常に proc を標準Stratonovich過程に変換する.
StratonovichProcess[sdeqns,expr,x,t,wdproc]
確率微分方程式 sdeqns,出力式expr,状態 x,時間 t で指定され,過程 dproc に従う w によって決定されるStratonovich過程を表す.
詳細とオプション
- StratonovichProcessはStratonovich拡散あるいは確率微分方程式としても知られている.
- StratonovichProcessは連続時間・連続状態のランダム過程である.
- ドリフト a が
次元ベクトルで拡散 b が
×
次元の行列の場合,この過程は
次元であり
次元のWienerProcessによって決定される. - 係数 a および b の一般的な指定値
-
a スカラー, b スカラー 
a スカラー, b ベクトル 
a ベクトル, b ベクトル 
a ベクトル, b 行列 
- 確率微分方程式
は積分方程式
として書かれることもある. - デフォルトの初期時間 t0 は0であるとみなされる.デフォルトの初期状態 x0 は0である.
- デフォルトの共分散Σは恒等行列である.
- 標準Stratonovich過程の出力は微分状態
のサブセットからなる
である. - 標準StratonovichProcess形式に変換可能な過程 proc は,OrnsteinUhlenbeckProcess,GeometricBrownianMotionProcess,ItoProcess,StratonovichProcess等である.
- sdeqns における確率微分方程式は
の形でよい.ただし,
は\[DifferentialD]で,これは
dd
として入力する.微分
および
はStratonovich微分であると解釈される. - 出力式 expr は x[t] および t を含む任意の式でよい.
- 駆動過程 dproc は標準Stratonovich過程に変換可能な任意の過程でよい.
- 次は,StratonovichProcessの関連特性である.
-
"Drift" ドリフト項 "Diffusion" 拡散行列 "Output" 出力状態 "TimeVariable" 時間変数 "TimeOrigin" 時間変数の原点 "StateVariables" 状態変数 "InitialState" 初期状態値 "KolmogorovForwardEquation" Kolmogorov前進方程式(Fokker-Planckの方程式) "KolmogorovBackwardEquation" Kolmogorov後退方程式 "Derivative" Stratonovich導関数 - StratonovichProcessに特有のRandomFunctionにおけるMethod設定 »
-
"EulerMaruyama" オイラー・丸山(次数1/2,デフォルト) "KloedenPlatenSchurz" Kloeden-Platen‐Schurz(次数3/2) "Milstein" Milstein(次数1) "StochasticRungeKutta" 3段階Rossler SRKスキーム(次数1) "StochasticRungeKuttaScalarNoise" スカラーノイズのための3段階Rossler SRKスキーム(次数3/2) - StratonovichProcessは,RandomFunction,CovarianceFunction,PDF,Expectation等の関数で使うことができる.
例題
すべて開く すべて閉じる例 (1)
proc = StratonovichProcess[ⅆx[t] == -x[t]ⅆt + Sqrt[1 + x[t] ^ 2]ⅆw[t], x[t], {x, 1}, t, wWienerProcess[]]RandomFunction[proc, {0., 5., 0.01}]ListLinePlot[%, Filling -> Axis]Mean[proc[t]]CovarianceFunction[proc, s, t]Plot3D[%, {s, 0, 5}, {t, 0, 5}, ColorFunction -> "Rainbow"]スコープ (16)
基本的な用法 (10)
ドリフト
,拡散
のウィナー過程を確率微分方程式
から定義する:
StratonovichProcess[{μ, σ}, {x, 0}, t]StratonovichProcess[WienerProcess[μ, σ]]StratonovichProcess[{μ, σ, c[x[t]]}, {x, 0}, t]StratonovichProcess[ⅆx[t] == μ ⅆt + σ ⅆw[t], c[x[t]], {x, 0}, t, wWienerProcess[]]StratonovichProcess[{{v, -x}, {0, 1}, x}, {{x, v}, {x0, v0}}, {t, 0}]StratonovichProcess[{ⅆx[t] == v[t] ⅆt, ⅆv[t] == -x[t]ⅆt + ⅆw[t]}, x[t], {{x, v}, {x0, v0}}, t, wWienerProcess[]]StratonovichProcess[{μ, σ, {x, x ^ 2}}, {x, 0}, t]StratonovichProcess[ⅆx[t] == μⅆt + σ ⅆw[t], {x[t], x[t] ^ 2}, {x, 0}, t, wWienerProcess[]]StratonovichProcess[{{y, -x}, {{1, 0}, {0, 1}}}, {{x, y}, {0, 0}}, t]StratonovichProcess[{ⅆx[t] == y[t]ⅆt + ⅆw1[t], ⅆy[t] == -x[t]ⅆt + ⅆw2[t]}, {x[t], y[t]}, {{x, y}, {0, 0}}, t, {w1WienerProcess[], w2WienerProcess[]}]Σ = {{1, 4 / 5}, {4 / 5, 1}};StratonovichProcess[{{1 - x[t]}, {{Subscript[σ, 1], Subscript[σ, 2]}}, x[t]}, {{x}, {1 / 2}}, {t, 0}, Σ]StratonovichProcess[ⅆx[t] == Subscript[w, 1][t]ⅆSubscript[w, 2][t], x[t], {x, 0}, t, {Subscript[w, 1]WienerProcess[], Subscript[w, 2]WienerProcess[]}]確率微分方程式
および
に対応するベクトル過程
および
を定義する:
StratonovichProcess[{ⅆx[t] == Subscript[w, 1][t]ⅆSubscript[w, 2][t], ⅆy[t] == Subscript[w, 1][t]ⅆSubscript[w, 1][t]}, {x[t], y[t]}, {{x, y}, {0, 0}}, t, {Subscript[w, 1]WienerProcess[], Subscript[w, 2]WienerProcess[]}]noise𝒫[σ1_, σ2_, ρ_] = Refine[StratonovichProcess[{{0, 0}, {{σ1, 0}, {0, σ2}}}, {{w1, w2}, {0, 0}}, t, {{1, ρ}, {ρ, 1}}], -1 < ρ < 1];StratonovichProcess[{ⅆs[t] == μ s[t]ⅆt + Sqrt[r[t]]s[t]ⅆn1[t], ⅆr[t] == θ(μ - r[t])ⅆt + Sqrt[r[t]]ⅆn2[t]
}, {s[t], r[t]}, {{s, r}, {s0, r0}}, t, {n1, n2}noise𝒫[Subscript[σ, 1], Subscript[σ, 2], ρ]]さまざまなメソッドを使ってStratonovichProcessの経路のシミュレーションを行う:
proc = StratonovichProcess[{ⅆx[t] == v[t]ⅆt, ⅆv[t] == -x[t]ⅆt + ⅆn[t]}, x[t], {{x, v}, {1, 0}}, t, nWienerProcess[]]methods = {"EulerMaruyama", "Milstein", "StochasticRungeKutta", "KloedenPlatenSchurz", "StochasticRungeKuttaScalarNoise"};orders = {"order 1/2", "order 1", "order 1", "order 3/2", "order 3/2"};シミュレーションメソッドをRandomFunctionのオプションとして指定する:
paths = Table[RandomFunction[proc, {0., 2. Pi, 0.05}, 6, Method -> m], {m, methods}];Grid[Partition[MapThread[ListLinePlot[#1, PlotLabel -> Column[{#2, #3}], ImageSize -> 160]& , {paths, methods, orders}], UpTo[3]], Spacings -> 2]過程特性の抽出 (1)
proc = StratonovichProcess[ⅆx[t] == (μ - x[t])ⅆt + Sqrt[1 + x[t] ^ 2]ⅆw[t], x[t], {x, 1}, t, wWienerProcess[]]proc["Properties"]proc /@ {"Drift", "Diffusion"}proc["KolmogorovForwardEquation"]//TraditionalFormここではInactiveを使って偏導関数を展開しないようにしている.式の展開にはActivateを使う:
Activate[%]//TraditionalFormproc["KolmogorovBackwardEquation"]//TraditionalForm関数
のStratonovich導関数を計算する.出力はドリフト項と拡散項からなるリストである:
{mu, sig} = proc["Derivative", f[x[t], t]];TraditionalForm[mu]TraditionalForm[sig]特殊Stratonovich過程 (5)
WienerProcessに対応するStratonovich過程:
StratonovichProcess[WienerProcess[μ, σ]]GeometricBrownianMotionProcessに対応するStratonovich過程:
StratonovichProcess[GeometricBrownianMotionProcess[μ, σ, x0]]BrownianBridgeProcessに対応するStratonovich過程:
StratonovichProcess[BrownianBridgeProcess[σ, {Subscript[t, 1], a}, {Subscript[t, 2], b}]]OrnsteinUhlenbeckProcessに対応するStratonovich過程:
StratonovichProcess[OrnsteinUhlenbeckProcess[μ, σ, θ, x0]]CoxIngersollRossProcessに対応するStratonovich過程:
StratonovichProcess[CoxIngersollRossProcess[μ, σ, θ, x0]]アプリケーション (3)
反復Stratonovich積分
,
,
,
,
,
に対応するベクトル過程を定義する:
pr = StratonovichProcess[{
ⅆi0[t] == ⅆt, ⅆi1[t] == ⅆw1[t], ⅆi2[t] == ⅆw2[t],
ⅆi01[t] == i0[t]ⅆw1[t], ⅆi02[t] == i0[t]ⅆw2[t], ⅆi12[t] == i1[t]ⅆw2[t]}, {i0[t], i1[t], i2[t], i01[t], i02[t], i12[t]}, {{i0, i1, i2, i01, i02, i12}, {0, 0, 0, 0, 0, 0}}, t, {w1WienerProcess[], w2WienerProcess[]}]Mean[pr[t]]CovarianceFunction[pr, s, t]//MatrixForm熱変動の影響下での自由粒子のダイナミクスは,Langevin運動方程式
によってモデル化できる.ここで
は標準のWienerProcessであり,
は熱ノイズの強度である.ここでは,
は
にのみ依存し,速度の方程式に焦点を当てることができると想定されている.運動方程式の統合には,伊藤定式化とStratonovich定式化という一般的な2つの方法があるが,それらは次の方法で定義できる:
ito = ItoProcess[ⅆv[t] == -v[t]ⅆt + σ[v[t]]ⅆb[t], v[t], {v, vi}, t, bWienerProcess[]];str = StratonovichProcess[ⅆv[t] == -v[t]ⅆt + σ[v[t]]ⅆb[t], v[t], {v, vs}, t, bWienerProcess[]];
が定数のとき,2つの定式化は同一で,
のときに同じ定常分布に至る:
Limit[PDF[ito[t] /. {σ[v[t]] -> Sqrt[2]σ1}, v]//Simplify, t -> Infinity]Limit[PDF[str[t] /. {σ[v[t]] -> Sqrt[2]σ1}, v]//Simplify, t -> Infinity]
が速度に依存する場合は,WienerProcessの性質のために,
は非零の二次変動を持ち,2つの定式化は異なる結果をもたらす.伊藤の公式をStratonovichの公式相当に変換する:
sito = StratonovichProcess[ito]Stratonovichの定式化でのドリフトは伊藤の定式化でのドリフトとは異なる:
sito["Drift"]str["Drift"]OrnsteinUhlenbeckProcessを作成し,StratonovichProcessでこれを表す:
ou = OrnsteinUhlenbeckProcess[5, 1, 1 / 2, 10];
proc = StratonovichProcess[ou]forward = Activate[proc["KolmogorovForwardEquation"]] /. { -> x, -> t, -> p}
,
における局所化された初期条件,ディリクレ境界条件で方程式を数値的に解く:
f[x_] = Exp[-100 (x - 10) ^ 2]Sqrt[200 / (2Pi)];
Plot[f[x], {x, 0, 20}, PlotRange -> All]//Quietsol = p /. First[NDSolve[{forward, p[0, t] == p[20, t] == 0, p[x, 0] == f[x]}, p, {x, 0, 20}, {t, 0, 1}, Method -> {"MethodOfLines", "SpatialDiscretization" -> {"TensorProductGrid", "DifferenceOrder" -> "Pseudospectral"}}]]Kolmogorov前進方程式の
における解をプロットし,これを閉じた形の密度関数と比較する:
Plot[{sol[x, 1], PDF[ou[1], x]}, {x, 0, 20}, PlotRange -> All]Animateで解のダイナミクスを可視化する:
Animate[Plot[sol[x, t], {x, 0, 20}, PlotRange -> {0, 1}], {t, 0, 1}, AnimationRunning -> False, TrackedSymbols :> t, SaveDefinitions -> True]特性と関係 (1)
ItoProcessをStratonovichProcessに変換する:
ItoProcess[ⅆx[t] == a[t, x[t]]ⅆt + b[t, x[t]]ⅆw[t], x[t], {x, x0}, t, wWienerProcess[]]StratonovichProcess[%]ItoProcess[%]考えられる問題 (2)
StratonovichProcessはランダムな初期条件をサポートしないので,表すことができない:
StratonovichProcess[OrnsteinUhlenbeckProcess[μ, σ, θ]]StratonovichProcess[ⅆx[t] == aⅆt + b x[t]ⅆy[t], x[t], {x, x0}, t, yOrnsteinUhlenbeckProcess[μ, σ, θ]]StratonovichProcess[OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]]]StratonovichProcess[ⅆx[t] == aⅆt + b x[t]ⅆy[t], x[t], {x, x0}, t, yOrnsteinUhlenbeckProcess[μ, σ, θ, x0]]駆動された過程の初期時間はStratonovichProcessとマッチする必要が有る:
StratonovichProcess[ⅆx[t] == -x[t] ⅆt + ⅆw[t], x[t], {x, 1}, {t, 3}, wOrnsteinUhlenbeckProcess[0, 1, 1, 1]]//ProcessParameterQStratonovichProcess[ⅆx[t] == -x[t] ⅆt + ⅆw[t], x[t], {x, 1}, {t, 0}, wOrnsteinUhlenbeckProcess[0, 1, 1, 1]]//ProcessParameterQ関連するガイド
-
▪
- 確率微分方程式過程 ▪
- 確率過程 ▪
- 有限マルコフ(Markov)過程
テキスト
Wolfram Research (2012), StratonovichProcess, Wolfram言語関数, https://reference.wolfram.com/language/ref/StratonovichProcess.html.
CMS
Wolfram Language. 2012. "StratonovichProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/StratonovichProcess.html.
APA
Wolfram Language. (2012). StratonovichProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StratonovichProcess.html
BibTeX
@misc{reference.wolfram_2026_stratonovichprocess, author="Wolfram Research", title="{StratonovichProcess}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/StratonovichProcess.html}", note=[Accessed: 16-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_stratonovichprocess, organization={Wolfram Research}, title={StratonovichProcess}, year={2012}, url={https://reference.wolfram.com/language/ref/StratonovichProcess.html}, note=[Accessed: 16-June-2026]}