Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168736
Image: ubuntu2004
@interact def _(xexp = input_box(default=[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0], label="Хэксп"),\ yexp = input_box(default=[5.1,10.9,21.1,34.9,53.7,73,103,131.2,160,208], label="Yэксп"),\ p = slider(vmin=1, vmax=10,step_size=1,default=2,label="Степень: ") ): html("Полиномиальная аппроксимация по методу наименьших квадратов") n=min(len(xexp),len(yexp)) xexp=vector(xexp) #экспериментальные yexp=vector(yexp).transpose() X=matrix(n,p+1) #матрица эксперимента for i in range(0,n): for j in range(0,p+1): X[i,j]=xexp[i]^(p-j) a=((X.transpose()*X)^-1)*X.transpose()*yexp x=var('x') k=[] for j in range(0,p+1): k.append(x^(p-j)) k=vector(k) f(x)=(k*a)[0] s=0 for i in range(0,n): s=s+(f(xexp[i])-yexp[i][0])^2 #print xexp[i], yexp[i], f(xexp[i]), (f(xexp[i])-yexp[i][0])^2 p=[] for i in range(0,n): p.append((xexp[i],yexp[i][0])) show(point(p)+plot(f,(x,min(xexp),max(xexp)), rgbcolor='green')) show(f) print "Отклонение =",sqrt(s/n).n()