from numpy import *
from scipy.optimize import leastsq
import pylab
def groundTruth(x):
return sin(2*pi*x)
def fit_function(x,n):
f=poly1d(n)
return f(x)
def loss(p,gt,x):
return fit_function(x,p)-gt
x=linspace(0,1,9)
y=groundTruth(x)
y1=[random.normal(0,0.1)+i for i in y]
init_p=random.randn(9)
pere=leastsq(loss,init_p,args=(y1,x))
print(pere[0])
pylab.plot(x,y,label='real')
pylab.plot(x,fit_function(x,pere[0]),label='fitted curve')
pylab.legend()
pylab.show()
python 最小二乘
最新推荐文章于 2023-05-17 22:53:22 发布