Ich habe 2 Dateien GBM_simulation.py
und test_GBM.py
.Das von IPython erstellte Diagramm ist nicht korrekt
GBM_simulation.py
import numpy as np
# Return path as numpy array of length and step predefined
# simulate exact GBM
def GBM(n, dt, s0, r, sigma):
path = np.zeros(n)
s_old = s0
for i in range(n):
s_new = s_old*np.exp((r-sigma**2/2)*dt + sigma*(dt)**(1/2)*np.random.normal())
path[i] = s_new
s_old = s_new
return path
# simulate Euler scheme GBM:
def Euler_GBM(n, dt, s0, r, sigma):
path = np.zeros(n)
s_old = s0
for i in range(n):
s_new = s_old*(1 + r*dt + sigma*(dt)**(1/2)*np.random.normal())
path[i] = s_new
s_old = s_new
return path
test_GBM.py
import matplotlib.pyplot as plt
import GBM_simulation as sim
s0 = 2
n = 500
r = 1
sigma = 1
dt = 0.001
exact = sim.GBM(n, dt, s0, r, sigma)
euler = sim.Euler_GBM(n, dt, s0, r, sigma)
# Now plot
plt.plot(exact, label = 'Exact')
plt.plot(euler, label = 'Euler')
plt.legend(loc = 'best')
plt.show()
Allerdings, wenn ich test_GBM.py
auf IPython Konsole ausführen, der Graph ich nicht bekommen überhaupt richtig aussehen. Ich habe auf Jupyter Notebook getestet (mit ein paar kleinen Änderungen) und es hat richtig funktioniert. Warum passiert das?
Edit: das ist die grafische Darstellung I auf Jupyter Notebook bekam
Was meinen Sie mit "es sieht nicht korrekt aus"? Auf Eclipse sieht es genauso aus. Was ist der Unterschied zu der Ausgabe in Jupyter Notebook? Und was waren diese "kleinen Modifikationen"? – MrT
Ich habe das Diagramm auf Jupyter Notebook hinzugefügt. Was ich unter kleinen Änderungen verstehe, ist nur den Austausch von sim.GBM ... durch GBM, sim.Euler_GBM durch Euler_GBM und es gibt keine Zeile: importiere GBM_simulation als sim und lege diese 2 Dateien .py in ein Notebook. – SiXUlm
Matplotlib zeichnet nur, was Sie sagen, um es zu plotten. Es gibt keine Möglichkeit, in beiden obigen Beispielen dieselben Datenpunkte zu zeichnen. Überprüfen Sie Ihren Code, Sie tun etwas anderes irgendwo ... Auch die Handlung, die Sie sagen, ist von Jupyter scheint mit Seaborn getan worden (die tatsächlich Matplotlib verwendet). – tiago