Je suis un physicien qui essaie de modéliser les caractéristiques courant-tension d'une jonction supraconductrice-supraconductrice.
L' équation pour ce modèle est:
Les valeurs de courant ( ou dans le code) sont calculées en évaluant cette intégrale pour des tensions données ( V , ou dans le code).I
v
J'ai tenté cela en Python. Le code est illustré ci-dessous.
from scipy import integrate
from numpy import *
import pylab as pl
import math
ec = 1.6021764*10**(-19)
r = 2500
gap = 200*10**(-6)*ec
g = (gap)**2
t = 0.04
k = 1.3806503*10**(-23)
kt = k*t
v_values = arange(0,0.001,0.00001)
I=[]
for v in v_values:
result, error = integrate.quad (lambda E:(abs(E)/sqrt((E**2-g)))*(abs(E+ec*v)/(sqrt(((E+ec*v)**2-g))))*(math.exp(-E/kt)*(math.exp(-ec*v/kt)-1)),(-inf),(-gap*0.9-ec*v))
I.append(result)
I = array(I)
I2=[]
for v in v_values:
result2 = integrate.quad(lambda E:(abs(E)/sqrt((E**2-g)))*(abs(E+ec*v)/(sqrt(((E+ec*v)**2-g))))*(math.exp(-E/kt)*(math.exp(-ec*v/kt)-1)),(gap*0.9),(inf))
I2.append(result2)
I2 = array(I2)
pl.plot(v_values,I,'-b',v_values,I2,'-r')
pl.xlabel(r'Voltage ($V$)')
pl.ylabel(r'Current ($A$)')
pl.title('Theoretical I(V) curve')
pl.grid(True)
pl.savefig('IVcurve.png')
pl.show()
Cependant, je reçois OverflowError: math range error
. Quelqu'un a-t-il des idées sur la façon de surmonter cela? Toutes mes excuses pour les 10**n
intégrales longues. Le code s'exécute lorsque les exponentielles sont supprimées (renvoie 0), et c'est là que réside le problème.
Des idées sur la façon dont cela peut être modélisé en Python ou dans tout autre langage?
python
numpy
integral-equations
requete
la source
la source
Réponses:
Tout d'abord, il est toujours bon de déboguer davantage le problème et de voir exactement d'où (quel terme, pour quels paramètres) le débordement vient. Ce n'était pas clair pour moi à la question.
Une fois que vous savez précisément quel est le problème, vous pouvez mieux diagnostiquer le problème. Par exemple, prenons le problème de débordement. C'est quelque part au-dessus de 1e300 si je me souviens bien.
Bonne chance!
la source