Newer
Older
abgabensammlungSS15 / is / ub9 / sample.py
#!/usr/bin/python3
import numpy as np
import matplotlib.pyplot as plt
import random as rand
from sklearn import svm
from scipy.optimize import curve_fit

n=500

X=[]
Y=[]

for i in range(n):
    X.append(rand.uniform(0,2))
    Y.append(X[i]**2+rand.gauss(0,1))

plt.plot(X,Y,'x')

X=np.array(X)
Xt=X.reshape((500,1))

def func(x,p1,p2,p3,p4,p5):
  return p1*x**p2+p3*np.exp(x*p4)+p5

popt, pcov = curve_fit(func, X, Y)
p1 = popt[0]
p2 = popt[1]
p3 = popt[2]
p4 = popt[3]
p5 = popt[4]
print(popt)
ypred=func(X,p1,p2,p3,p4,p5)
print(np.sum(Y-ypred))
print(np.mean(Y-ypred))

plt.plot(X,ypred,'rx')

plt.show()

plt.plot(Y,Y-ypred,'ro')

plt.grid()
plt.show()