मैं एक भौतिक विज्ञानी हूं, जो एक सुपरकंडक्टर-सुपरकंक्टर जंक्शन के वर्तमान-वोल्टेज विशेषताओं को मॉडल करने की कोशिश कर रहा है।
समीकरण इस मॉडल के लिए है:
वर्तमान ( या कोड में) मूल्यों की गणना इस दिए गए वोल्टेज ( , या कोड में) के लिए अभिन्न मूल्यांकन करके की जाती है ।I
v
मैंने पायथन में यह प्रयास किया है। कोड नीचे दिखाया गया है।
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()
हालाँकि, मुझे प्राप्त है OverflowError: math range error
। क्या किसी के पास कोई विचार है कि इसे कैसे दूर किया जा सकता है? 10**n
और लंबे समय से अभिन्न के लिए माफी । जब घातांक हटाए जाते हैं तो कोड चलता है (रिटर्न 0), और इसके साथ ही समस्या भी है।
किसी भी विचार यह कैसे पायथन, या किसी अन्य भाषा में मॉडलिंग की जा सकती है?