Script zur Demonstration stochastischer Prozesse

Langevin Gleichung dx/dt = f(x) + q Γ
Hier ist q die Stärke des Rauschens und Γ sind statistischunabhängige Gaußbverteilte Zufallszahlen
Die zeitliche Integration erfolgt via x[t+dt] = x[t] + f(x)dt + q (Sqrt[dt])Γ

Parameter zur numerischen Integration

nsreps = Anzahl der Zeitschritte, dt = Integrationszeitschritt

nsteps = 1000;

dt = 0.1;

Definitionen einger Funktionen

fOU -> f(x) = - ax, fFP -> f(x)= ax-(x^3)

fOU[x_,a_]:= -a*x

fPF[x_,a_]:=a*x-x^3

VPF[x_,a_]:=-0.5*a*x^2+0.25*x^4

PDFPF[x_,a_,q_]:=Piecewise[{{0,q==0},{ {Exp[-2*VPF[x,a]/q]/NIntegrate[Exp[-2*VPF[y,a]/q],{y,-2,2}]},q>0}} ]

Erzeugung der Zufallszahlen

SeedRandom[1];normal=RandomReal[NormalDistribution[0,1],nsteps];

noise[q_,n_Integer]:=q*normal[[n]]

Darstellung der Zeitreihe

Manipulate[ListPlot[RecurrenceTable[{x[n+1]== x[n] + dt *fOU[x[n],a]+Sqrt[dt]*noise[q,n], x[1]==0.5},x,{n, 1, nsteps}],Joined->True,PlotRange->{-2,2}],{{a,0.5},0,1},{{q,0.5},0,1}]

Darstellung der Zeitreihe für ein System mit Doppelmuldenpotential

X[a_,q_]:=RecurrenceTable[{x[n+1]== x[n] + dt *fPF[x[n],a]+Sqrt[dt]*noise[q,n], x[1]==-1},x,{n, 1, nsteps}]

Manipulate[ListPlot[X[a,q],Joined->True,PlotRange->{-2,5},Epilog->Inset[Plot[-0.5*a*x^2+0.25*x^4,{x,-3,3},PlotRange->{-1.5,1.5},Axes->False,Frame->True],{650,3.25}]],{a,-2,2},{q,0,1}]

Manipulate[ListPlot[X[a,q],Joined->True,PlotRange->{-2,5},Epilog->Inset[Plot[{VPF[x,a],PDFPF[x,a,q]},{x,-3,3},PlotRange->{-1.5,1.5},Axes->False,Frame->True],{650,3.25}]],{a,-2,2},{q,0.1,1}]