Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- n = 50
- N = 1000
- m = 15
- x = np.linspace(-3, 3, n)
- X = np.linspace(-3, 3, N)
- pix = np.pi * x
- y = np.sin(pix) / (pix) + 0.1 * x + 0.05 * np.random.randn(n)
- p = np.zeros([m * 2 + 1, n])
- P = np.zeros([m * 2 + 1, N])
- p[0] = np.ones(n)
- P[0] = np.ones(N)
- for j in range(1, m + 1):
- p[2 * j - 1] = np.sin(j / 2 * x)
- p[2 * j + 0] = np.cos(j / 2 * x)
- P[2 * j - 1] = np.sin(j / 2 * X)
- P[2 * j + 0] = np.cos(j / 2 * X)
- p = p.T
- P = P.T
- t = np.dot(np.linalg.pinv(p), y)
- F = np.dot(P, t)
- plt.plot(x, y, 'bo')
- plt.plot(X, F, 'g-')
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement