微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 scipy.optimize 的 curve_fit 不起作用

如何解决来自 scipy.optimize 的 curve_fit 不起作用

我想用我的原始数据制作拟合曲线,但我收到这样的错误消息:

<ipython-input-6-47cbf1e1c239>:9: RuntimeWarning: invalid value encountered 
in true_divide
  return I0*((np.sin(beta)/beta)**2)*(np.cos(gamma))**2
/Users/username/opt/anaconda3/lib/python3.8/site- 
packages/scipy/optimize/minpack.py:828: OptimizeWarning: Covariance of the 
parameters Could not be estimated
warnings.warn('Covariance of the parameters Could not be estimated')

以下是我的代码和原始数据的散点图:

import numpy as np
from scipy.optimize import curve_fit
import pandas as pd
import matplotlib.pyplot as plt

def sinc(x,b,h,I0,phi):
    beta = 0.5 * b * np.sin(x-phi)
    gamma = 0.5 * h * np.sin(x-phi)
    return I0*((np.sin(beta)/beta)**2)*(np.cos(gamma))**2

                             
data = pd.read_excel('14_laser_doubleslit.xlsx')
display(data)

x = np.array(data.iloc[1:101,0])
y = np.array(data.iloc[1:101,1])

popt,pcov = curve_fit(sinc,x,y)
print(popt)
print(pcov)

plt.scatter(x,y,marker='.')
plt.plot(x,sinc(x,*popt),color='blue',linewidth =2)
plt.show

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。