python拟合数据(scipy)
1、先准备数据。
pan.baidu.com/s/1SzUuCjgXcECw4xixVQNe1w
提取码: rjmr
先下载txt文档,里面是1000个数据,用英文的都好分割。
2、用python整理数据:
b=open('0.txt','r')
c=b.read().replace('\r','').split(',')
D=[]
for i in c[:-1]:
i=float(i)
D.append(i)
b.close()
把所有的数字提取出来,保存到列表D里面。
3、绘制数据集的图像。
import pylab as pl
D=np.array(D)
x=np.array(list(range(1000)))
pl.plot(x,D,c='g')
pl.show()
4、这个图像看起来像是正弦曲线,所以,用正弦曲线来拟合这组数据:
from scipy.optimize import leastsq
def f(x, p):
A, k, theta = p
return A*np.sin(2*np.pi*k*x+theta)
def nihe(p, y, x):
A, k, theta = p
return y - f(x,p)
p0 = [1,2,3]
p = leastsq(nihe, p0, args=(D, x))
5、画出拟合的曲线:
pl.plot(x,D,c='g')
pl.plot(x, f(x, p[0]),c='r')
pl.show()
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:188
阅读量:193
阅读量:41
阅读量:72
阅读量:71