Попытка подобрать упрощенную кривую Блоха-Грюнайзена для удельных сопротивлений.Не лучший в Python, поэтому он немного грязный.
Кажется, что все работает "отлично" до кривой_fit, где я получаю сообщение об ошибке:
IndexError: только целые числа,Срезы (:
), многоточие (...
), numpy.newaxis (None
) и целые или логические массивы являются допустимыми индексами
import numpy as np
import matplotlib.pyplot as plt
import scipy.integrate as sc
from scipy.optimize import curve_fit
import scipy.constants as spc
import scipy as spy
Cu_2000A=np.genfromtxt('Cu_2000A.txt')
R = Cu_2000A[:,0]
T = Cu_2000A[:,1]
ylist = []
def Bloch1(T,k,debye):
for Tval in np.nditer(T):
yval = float((k*(Tval/debye)**5))
ylist.append(yval)
return ylist
xlist = []
def Integrate(debye):
for Tval in np.nditer(T):
xval =(sc.quad(lambda x: ((x**5)/(((np.exp(x))-1)*(1-(np.exp(-x))))), 0, (debye/(Tval))))
xlist.append(float(xval[0]))
return xlist
def Bloch(T, R0, k, debye):
test = np.asarray(Bloch1(T, k, debye))
test2 = np.asarray(Integrate(debye))
return (R0 + (test*test2))
popt, pcov = curve_fit(Bloch, T, R [0.1, 1000, 350])