Problem mit mehreren Variablen in einer Funktion
Verfasst: Samstag 5. November 2022, 21:37
Hallo,
ich muss von Anfang an sagen, dass ich nicht wirklich Erfahrung habe ein Programm in Python zuschreiben. Aber da ich ein Experiment in meinem Physikstudium auswerten möchte, bin ich jetzt dazu gezwungen. Ich bin bis jetzt recht zufrieden mit meinem bisher erlernten Wissen aber nun stellt sich das erste Problem, welches mich überfordert. Hier erst einmal das, was ich bis jetzt hinbekommen habe.
import numpy as np
import matplotlib.pyplot as plt
#Werte einbeziehen
Daten = np.loadtxt('Data30-140.csv',delimiter=';', skiprows=1)
Z = Daten[:,1]
t = Daten[:,2]
#Funktion Poisson
def N_0(tau, N, t1, tk, deltat):
return N/(np.exp(-1*t1 / tau) - np.exp(-1*(tk + deltat)/ tau))
taulist=np.arange(0,4.0001,0.0001)
N_0list=N_0(taulist, 17022, 1.208333333, 2.08333E-05 , 4.16667E-05)
def f_i(N_0, tau, t, deltat):
return N_0/tau * (np.exp(-1*((t+deltat)/2)/tau))*deltat
f_ilist=f_i(N_0list, taulist, t , 4.16667E-05)
def mlm_Poisson(Z, N_0, tau, t, deltat,f_i):
return -2* np.sum(Z*np.log(f_ilist))
poissonlist=mlm_Poisson(Z, N_0list, taulist, t,4.16667E-05, f_ilist )
Nun meine Frage, dazu schildere ich erst einmal mein Ziel. Ich habe verschiedene Werte für t und N_0. Nun möchte ich (es handelt sich um den Abschnitt ab def f_i) das f_i ausrechnen für das erste t und dem ersten N_0 für alle tau. Also möchte ich t und N_0 festsetzten und tau durchlaufen, danach für das zweite t und das zweite N_0 alle tau´s durchlaufen. Ich weiß aber nicht wie ich das machen soll.
Ich hoffe mein Problem ist einigermaßen verständlich dargestellt.
Vielen Dank für eure Hilfe
Justus
ich muss von Anfang an sagen, dass ich nicht wirklich Erfahrung habe ein Programm in Python zuschreiben. Aber da ich ein Experiment in meinem Physikstudium auswerten möchte, bin ich jetzt dazu gezwungen. Ich bin bis jetzt recht zufrieden mit meinem bisher erlernten Wissen aber nun stellt sich das erste Problem, welches mich überfordert. Hier erst einmal das, was ich bis jetzt hinbekommen habe.
import numpy as np
import matplotlib.pyplot as plt
#Werte einbeziehen
Daten = np.loadtxt('Data30-140.csv',delimiter=';', skiprows=1)
Z = Daten[:,1]
t = Daten[:,2]
#Funktion Poisson
def N_0(tau, N, t1, tk, deltat):
return N/(np.exp(-1*t1 / tau) - np.exp(-1*(tk + deltat)/ tau))
taulist=np.arange(0,4.0001,0.0001)
N_0list=N_0(taulist, 17022, 1.208333333, 2.08333E-05 , 4.16667E-05)
def f_i(N_0, tau, t, deltat):
return N_0/tau * (np.exp(-1*((t+deltat)/2)/tau))*deltat
f_ilist=f_i(N_0list, taulist, t , 4.16667E-05)
def mlm_Poisson(Z, N_0, tau, t, deltat,f_i):
return -2* np.sum(Z*np.log(f_ilist))
poissonlist=mlm_Poisson(Z, N_0list, taulist, t,4.16667E-05, f_ilist )
Nun meine Frage, dazu schildere ich erst einmal mein Ziel. Ich habe verschiedene Werte für t und N_0. Nun möchte ich (es handelt sich um den Abschnitt ab def f_i) das f_i ausrechnen für das erste t und dem ersten N_0 für alle tau. Also möchte ich t und N_0 festsetzten und tau durchlaufen, danach für das zweite t und das zweite N_0 alle tau´s durchlaufen. Ich weiß aber nicht wie ich das machen soll.
Ich hoffe mein Problem ist einigermaßen verständlich dargestellt.
Vielen Dank für eure Hilfe
Justus