ne peut pas vraiment comprendre pourquoi cette erreur RuntimeWarning: overflow encountered in exp
apparaît. La fonction que je suis en train de mettre en œuvre est:débordement dans exp, python
Id = lambda t_u, yp: Is * (np.exp((Vin(t_u) - L*yp)/(n_Ut*Ut)) - 1.0)
avec des valeurs:
Vin = lambda t: Vo * np.sin(2*np.pi*w*t)
L = 50e-3 # 50 mH
Vo = 5 # 5 V
w = 50 # 50 Hz
Is = 1e-9 # 1 nA
Ut = 25e-3 # 25 mV
n_Ut = 1.0
La fonction Id
fait partie d'un ODE que je suis en train de résoudre avec Runge-Kutta-Méthode.
EDIT:
Methoden\Serien\6>python circuit.py
Traceback (most recent call last):
File "circuit.py", line 148, in <module>
perform_experiment(exrk_o5(), "exrk_o5")
File "circuit.py", line 48, in perform_experiment
t, y = run_method(method, label)
File "circuit.py", line 69, in run_method
t, y = method.__call__(circuit_rhs, y[0, :], t_end, n_steps)
File "C:\Users\-\numerical_methodes\6\rk.py", line 49, in __call__
t[k+1],y[k+1, :] = self.step(f, y[k, :], t[k], dt)
File "C:\Users\-\numerical_methodes\6\rk.py", line 102, in step
dydt[:, i] = rhs(t + c[i] * dt, y0 + dt * np.dot(A[i, :].T, dydt.T))
File "circuit.py", line 38, in circuit_rhs
dydt= np.array ([y[1] , Id(t, y [1]) /(C*L) - y [1]/(R*C) - y [0]/(C*L)])
File "circuit.py", line 27, in <lambda>
Id = lambda t_u, yp: Is * (np.exp((Vin(t_u) - L*yp)/(n_Ut*Ut)) - 1.0)
FloatingPointError: overflow encountered in exp
où y [1] = 0 et y [0] = 0, en tant que premières valeurs. Le fichier rk.py est juste l'implémentation de la méthode Runge-Kutta.
Bienvenue dans Stack Overflow. Veuillez fournir un [exemple minimal, complet et vérifiable] (https://stackoverflow.com/help/mcve). Je ne peux pas reproduire ce problème. Vous devez également fournir une trace complète pour montrer quelle ligne renvoie l'erreur. – roganjosh
Vous n'avez pas fourni toutes les valeurs réelles. Plus particulièrement, vous n'avez pas fourni les arguments à Id qui ont causé le problème. – Prune