использование python для соответствия функции cos модели - PullRequest
0 голосов
/ 01 декабря 2018

Я должен построить график зависимости интенсивности от (cos (theta)) ** 2 (для закона Марлуса), но я застрял в том, как построить график функции модели

Пожалуйста, скажите, еслиследуйте правильно:

def cos (x,a, b):
 return a*(np.cos(x))**2+ b

#Load the data
ex1_data= np.loadtxt("1 data2.txt", skiprows=2)
angle1 = [row[0] for row in ex1_data]
intensity = [row[1] for row in ex1_data]
Intensity=np.array(intensity)
cos1=np.cos(angle1)
cos1_square=(cos1)**2

percision_error_I =  Intensity * 0.0025 
accuracy_error_I = 0.001

erry = []
for i in range(len(percision_error_I)):
    erry.append(max(percision_error_I[i], accuracy_error_I))
#find optimized function and cov of x and y
p_opt , p_cov = curve_fit ( cos ,
                           cos1_square , Intensity , p0,
                           erry , True )
print(erry)


a_opt = p_opt[0]#find parameter for a
b_opt = p_opt[1]#find parameter for b

print("p_cov is ", p_cov)
print("a_opt is ", a_opt,"and b_opt is ", b_opt)

#plot model function
plt.plot(cos1_square, cos(cos1_square, a_opt,b_opt ), 'r-',label="cos1_square")
#plot error bar 
plt.errorbar(cos1_square, Intensity,np.array(erry),
             linestyle="",marker='+',label="error bar",lw=.7)
plt.legend()#show legend
#label current and voltage
plt.ylabel(' Intensity ')
plt.xlabel('cos1_square')
#provide a title for graph
plt.title("Voltage vs. cos1_square")
plt.show()

Я собрал данные для интенсивности и угла, но я не знаю, как построить функцию модели или панель ошибок ... пожалуйста, помогите

...