python拟合数据(scipy)

2025-10-08 07:28:11

1、先准备数据。

pan.baidu.com/s/1SzUuCjgXcECw4xixVQNe1w

提取码: rjmr

先下载txt文档,里面是1000个数据,用英文的都好分割。

python拟合数据(scipy)

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里面。

python拟合数据(scipy)

3、绘制数据集的图像。

import pylab as pl

D=np.array(D)

x=np.array(list(range(1000)))

pl.plot(x,D,c='g')

pl.show()

python拟合数据(scipy)

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))

python拟合数据(scipy)

5、画出拟合的曲线:

pl.plot(x,D,c='g')

pl.plot(x, f(x, p[0]),c='r')

pl.show()

python拟合数据(scipy)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢