Advertisement
Dzham

Untitled

Apr 3rd, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. def polynom(k):
  2. A = np.matrix(np.ones(len(x_train))).T
  3. for i in range(1, k + 1):
  4. l = [j**i for j in x_train]
  5. A = np.concatenate((np.matrix(l).T, A), axis=1)
  6. ps = np.linalg.inv(A.transpose() * A) * (A.transpose()) * (np.matrix(y_train).T)
  7. ps = np.squeeze(np.asarray(ps))
  8. return ps
  9.  
  10. def polynom_y(k):
  11. ps = polynom(k)
  12. answer = [0 for i in range(len(x_train))]
  13. for i in range(len(x_train)):
  14. for j in range(k + 1):
  15. answer[i] += (x_train[i] ** j) * ps[len(ps) - j - 1]
  16. return answer
  17.  
  18. def polynom_plot(k, x, y):
  19. xy = []
  20. for i in range(len(x_train)):
  21. xy.append([x[i], y[i]])
  22. plt.plot(*zip(*xy), marker='o', color='r', ls='')
  23. YD = polynom_y(k)
  24. plt.plot(x, YD)
  25. plt.show()
  26.  
  27. def polynom_formule(k):
  28. ps = polynom(k)
  29. answer = ''
  30. for i in range(len(ps) - 1):
  31. answer += '(' + str(ps[i]) + ')' + 'x^' + str(len(ps) - i - 1) + ' + '
  32. answer += str(ps[-1])
  33. print(answer)
  34.  
  35. def f(k, x, y):
  36. ps = polynom(k)
  37. answer = [0 for i in range(len(x))]
  38. for i in range(len(x)):
  39. for j in range(k + 1):
  40. answer[i] += (x[i] ** j) * ps[len(ps) - j - 1]
  41. ps = answer
  42. answer = 0
  43. for i in range(len(ps)):
  44. answer += (ps[i] - y[i])**2
  45. return answer / len(ps)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement