Brownian Motion kehrt immer wieder NP.comPlex128 (0J) zurück

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Brownian Motion kehrt immer wieder NP.comPlex128 (0J) zurück

by Anonymous » 20 Mar 2025, 23:24

Ich versuche, Code für eine geometrische Brownsche Bewegung mit Daten anstelle von zufällig generierten Zahlen basierend auf 0 zu schreiben. Die Daten werden entweder als Pandas -Serie oder als Numpy Array eingeleitet. Egal welchen Datensatz ich den Code füttere, ich bekomme immer wieder NP.comPlex128 (0J) als die letzten paar tausend Variablen im Array. Es soll randomisiert werden, also sollte es nicht weiter zu 0 zurückkehren. Wo ist der Fehler in meinem Code oder in Mathematik? < /P>

Code: Select all

def geometric_brownian_motion(data):
mu = data.mean()
sigma = data.std()
S0 = data[len(data) - 1]
T = 1
dt = T / len(data)
n = len(data)

t = np.linspace(0, T, n)
W = np.random.standard_normal(size=n)
S = []
S.append(S0)
for i in range(1, n):
S_temp = S[0] * np.exp((mu - 0.5 * sigma ** 2) * dt + sigma * np.sqrt(dt) * W[i - 1])
S.append(S_temp)
S = np.array(S)
return S

Top