Modification des variables d’état pour les processus stochastiques généraux

par Bruno Tenorio
Article original
Ce notebook aborde le problème du changement des variables dans les équations différentielles stochastiques générales (EDS) pour les processus de Stratonovich et d’Itō. Nous utilisons deux fonctions personnalisées pour étudier des exemples clés et des applications dans la physique, en mettant en évidence la capacité d’appliquer des transformations de coordonnées nommées et d’inspecter explicitement les termes symboliques obtenus.

Fonctions du dépôt de fonctions

Il est conseillé de consulter la documentation de Wolfram Function Repository pour obtenir les détails sur la manière dont les transformations sont effectuées :
Pour les processus de Stratonovich :
In[]:=
ResourceFunction["StratonovichProcessChangeVariables"]
Out[]=
[◼]
StratonovichProcessChangeVariables
Version (latest): 1.0.0
Documentation »
Pour les processus d’Itō :
In[]:=
ResourceFunction["ItoProcessChangeVariables"]
Out[]=
[◼]
ItoProcessChangeVariables
Version (latest): 1.0.0
Documentation »

Changement de variables pour un processus de Stratonovich

Exemples d’utilisation

Transformation carrée

Définissez un processus de Stratonovich :
In[]:=
procX=StratonovichProcess1
2
x
,σExp[-
2
x
],{x,x0},t
Out[]=
StratonovichProcess
1
2
x[t]
,
-
2
x[t]

σ,x[t],{{x},{x0}},{t,0}
Transformation en carré du processus :
In[]:=
transformed=
[◼]
StratonovichProcessChangeVariables
[procX,y,y==x^2];
Vérifiez qu’un processus est valide :
In[]:=
ProcessParameterQ[transformed]
Out[]=
True
Imprimez les termes de dérive et de diffusion transformés :
In[]:=
Print["Drift: ",transformed["Drift"],"\nDiffusion: ",transformed["Diffusion"]]
Drift: -
2
y[t]
Diffusion: -2
-y[t]

σ
y[t]


Transformation carrée d’un processus de Wiener

Commencez par un processus de Stratonovich ayant une forme de processus de Wiener :
In[]:=
proc=StratonovichProcess[{0,1},{x,x0},t]
Out[]=
StratonovichProcess[{{0},{{1}},x[t]},{{x},{x0}},{t,0}]
Transformation carrée d’un processus :
In[]:=
[◼]
StratonovichProcessChangeVariables
[proc,y,y==x^3]
Out[]=
StratonovichProcess{0},3
2/3
y[t]
,y[t],{y},{
3
x0
},{t,0}

Mise à l’échelle temporelle

Commencez par un processus général avec une dérive a et une diffusion b :
In[]:=
spLinear=StratonovichProcess[{a,b},{x,x0},{t,t0}]
Out[]=
StratonovichProcess[{{a},{{b}},x[t]},{{x},{x0}},{t,t0}]
Mise à l’échelle des variables du procédé :
In[]:=
resTimeDep=
[◼]
StratonovichProcessChangeVariables
spLinear,{y},y
x
t

Out[]=
StratonovichProcess
a-y[t]
t
,
b
t
,{y[t]},{y},
x0
t0
,{t,0}

Processus à dérive nulle d’Ornstein-Uhlenbeck

Définissez le processus d’OrnsteinUhlenbeck suivant :
In[]:=
ou=StratonovichProcess@OrnsteinUhlenbeckProcess[μ,σ,θ,x0]
Out[]=
StratonovichProcess[{{θ(μ-x.[t.])},{{σ}},x.[t.]},{{x.},{x0}},{t.,0}]
Considérez la transformation y =
θt
ⅇ
(x-μ) qui dépend du temps :
In[]:=
transformed=
[◼]
StratonovichProcessChangeVariables
ou,y,y
θt.

(x.-μ);
Vérifiez que le processus est sans dérive pour cette transformation :
In[]:=
transformed["Drift"]=={0}
Out[]=
True

Transformation tangente/Cauchy

Commencez par un processus de Stratonovich qui a la forme d’un processus de Wiener :
In[]:=
procX=StratonovichProcess[{0,1},{x,0},t];
Effectuez la transformation
y=Tan(x)
 :
In[]:=
[◼]
StratonovichProcessChangeVariables
[procX,y,y==Tan[x]]
Out[]=
StratonovichProcess{0},
2
Sec[ArcTan[y[t]]+π

1
]
,y[t],{{y},{0}},{t,0}
Indiquez une branche de résolution pour
0<=x<2π
 :
In[]:=
procY=
[◼]
StratonovichProcessChangeVariables
[procX,y,y==Tan[x],Assumptions->{0<=x<2π}]
Out[]=
StratonovichProcess{0},1+
2
y[t]
,y[t],{{y},{0}},{t,0}

Des coordonnées cylindriques aux coordonnées sphériques

Définissez un processus en coordonnées cylindriques :
In[]:=
proc3D=StratonovichProcess[{{1/ρ,0,0},{σ/(ρ^2+z^2),0,σz}},{{ρ,ϕ,z},{ρ0,ϕ0,z0}},t]
Out[]=
StratonovichProcess
1
ρ[t]
,0,0,
σ
2
z[t]
+
2
ρ[t]
,{0},{σz[t]},{ρ[t],ϕ[t],z[t]},{{ρ,ϕ,z},{ρ0,ϕ0,z0}},{t,0}
Effectuez une transformation en coordonnées sphériques en utilisant la notation avec des noms longs :
In[]:=
[◼]
StratonovichProcessChangeVariables
[proc3D,r,θ.,φ,{"Cylindrical","Euclidean",3}->{"Spherical","Euclidean",3}]
Out[]=
StratonovichProcess
1
r[t]
,
Cot[θ.[t]]
2
r[t]
,0,σ
2
Cos[θ.[t]]
r[t]+
σSin[θ.[t]]
2
r[t]
,σCos[θ.[t]]
1
3
r[t]
-Sin[θ.[t]],{0},{r[t],θ.[t],φ[t]},{r,θ.,φ},
2
z0
+
2
ρ0
,ArcTan[z0,ρ0],ϕ0,{t,0}

Applications dans la physique

Mouvement de piégeage stochastique en 2D

Définissez un processus stochastique représentant un piège d’oscillateur harmonique (incluant un effet magnétique) en coordonnées cartésiennes :

Flux cellulaire avec diffusion

Tracé du courant de dérive u-v transformé :

Exemples d’utilisation

Transformation logarithmique d’un processus de mouvement brownien géométrique

Transformation exponentielle

Décalage de la moyenne d’un processus d’Ornstein-Uhlenbeck

Utilisation de TransformedProcess :

Coordonnées polaires

Transformation dépendante du temps

Changement de variable par la tangente hyperbolique

Transformation cosinus

Applications dans la physique

Oscillateur harmonique avec bruit

Diffusion de l’état quantique

CITER CE NOTEBOOK