xxxxxxxxxx
A,B=1+round(random(),2),round(.01+random(),2)
N=500; X=[.1*i*random() for i in range(N)]
Y=[A*x+B+10*random()*(-1)^randint(0,1) for x in X]
var('a,b,x'); F=a*x+b
ff=find_fit(list(zip(X,Y)),F,variables=[x])
a,b=float(str(ff[0])[5:]),float(str(ff[1])[5:])
F=[a*x+b for x in X]
pf=points(zip(X,F),color='#ff36ff',size=5,
legend_label='fitted line')
pr=points(zip(X,Y),color='#3636ff',marker='*',
size=9,legend_label='real data')
(pf+pr).show(figsize=(6,5),gridlines=True,
title=['[A == %s,B == %s]'%(A,B),ff])
No comments:
Post a Comment