ich bin eigentlich noch ein absoluter Anfänger in der Programmierung und ich arbeite mich nun seit zwei Monaten in Python3 ein.
Ich möchte ein Programm schreiben, das Zufallszahlen x_1 bis x_5 erzeugt, die einer bestimmten Verteilung unterliegen.
beispielsweise ist x_1 dreieckverteilt, x_2 normalverteilt, usw und damit werden dann Zufallszahlen y = f(x_1,...,x_5) berechnet,
wobei f irgendeine Funktion ist. Anschließend sollen die Werte für y in einem Histogramm ausgegeben werden.
Das Programm läuft auch bereits, aber bislang habe ich für f nur die vier Grundrechenarten und Potenzen verwendet.
Nun habe ich ein Problem, wenn ich aus numpy mathematische Funktionen wie cos, sin und exp verwenden will.
Mein Problem besteht darin, dass die Laufzeit bei 3*10**5 Zufallszahlen bis zu 180 Sekunden und teilweise noch länger beträgt.
Hier einmal ein Minimalbeispiel, dass bei mir nach 10 Minuten noch kein Histogramm zum Vorschein bringt.
Code: Alles auswählen
import random
import matplotlib.pyplot as plt
import sympy
import time
Timestamp_1 = time.time()
Data = [ float(sympy.sin(random.triangular(0, 5, 10))) for i in range(0, 3*10**5) ]
plt.hist(Data ,bins = 55, color='maroon', normed=True)
plt.title('Error Distribution')
plt.xlabel('x-Achse')
plt.ylabel("Probability")
plt.show()
Timestamp_2 = time.time()
T=round(Timestamp_2 - Timestamp_1,2)
print('Laufzeit:', T)
Wege und Möglichkeiten gibt, die Laufzeit zu optimieren. Daher wollte ich einmal fragen, ob das bei meinem Vorhaben auch möglich ist und ob jemand
einen effektiveren Weg sieht, ein solches Histogramm zu erstellen.
Schon einmal vielen lieben Dank im Voraus!