Nun zu den Problemen: Plotte ich meine Funktion auf einem Intervall von 1 bis 3 klappt alles (stelle ich über Linspace ein) Plotte ich sie jedoch von 0 bis 10 (wie jetzt gerade), verschwindet meine Funktion und ich habe in der Ausgabe nur mehr eine gerade Linie...
Mein Zweites Problem (ich hoffe es hängt mit dem Ersten zusammen) Integriere ich mit integrate.quad meine Funktion mit den Grenzen von 1 bis 3 so bekomme ich einen akzeptablen Wert. Dies ändert sich jedoch wenn ich meine rechte Grenze in Richtung 1000 verschiebe (wie hier jetzt) dann kommt als Ergebnis 0 bzw. ein sehr kleiner Wert heraus. Das kann aber nicht sein, da all meine Werte der Funktion positiv sind (außer ich hab mich ca. 10 Mal beim durchdenken vertan, was ich mittlerweile auch nicht mehr ausschließen möchte)
Ich hoffe ihr könnt mir helfen und mich vor meinem persönlichen "schwarzen" Freitag bewahren.
LG Christoph
Code: Alles auswählen
import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
x = np.linspace(0,10,10000)
def p(l,n,S):
return (n*l)**S*np.exp(-n*l)*1/(1+0.25*l)
def lnp(l,n,S,K):
return np.exp(S*np.log(n*l)-n*l-np.log(1+0.25*l)-K)
n=60
S=124
K = np.amax(np.log(p(x,n,S)))
print(K)
def f(a,n,S):
return p(a,n,S)*np.exp(-K)
y =lnp(x,n,S,K)
plt.plot(x,y)
plt.show()
b=integrate.quad(lnp,1,1000,args=(n,S,K))
print(b)LG Christoph
