Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. n = 50
  5. N = 1000
  6. m = 15
  7.  
  8. x = np.linspace(-3, 3, n)
  9. X = np.linspace(-3, 3, N)
  10.  
  11. pix = np.pi * x
  12. y = np.sin(pix) / (pix) + 0.1 * x + 0.05 * np.random.randn(n)
  13.  
  14. p = np.zeros([m * 2 + 1, n])
  15. P = np.zeros([m * 2 + 1, N])
  16. p[0] = np.ones(n)
  17. P[0] = np.ones(N)
  18. for j in range(1, m + 1):
  19. p[2 * j - 1] = np.sin(j / 2 * x)
  20. p[2 * j + 0] = np.cos(j / 2 * x)
  21. P[2 * j - 1] = np.sin(j / 2 * X)
  22. P[2 * j + 0] = np.cos(j / 2 * X)
  23. p = p.T
  24. P = P.T
  25.  
  26. t1 = np.dot(np.linalg.pinv(p), y)
  27. F1 = np.dot(P, t1)
  28.  
  29. rmtx = np.diag(np.hstack((np.ones(11), np.zeros(20))))
  30. t2 = np.dot(np.linalg.pinv(p.dot(rmtx)), y)
  31. F2 = np.dot(P, t2)
  32.  
  33. plt.plot(x, y, 'bo')
  34. plt.plot(X, F1, 'g-')
  35. plt.plot(X, F2, 'r-.')
  36.  
  37. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement