Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.56 KB | None | 0 0
  1. def polyfit2d(x, y, z, order=3):
  2.     x = x.flatten()
  3.     y = y.flatten()
  4.     z = z.flatten()
  5.     ncols = (order + 1)**2
  6.     G = np.zeros((x.size, ncols))
  7.     ij = itertools.product(range(order+1), range(order+1))
  8.     for k, (i,j) in enumerate(ij):
  9.         G[:,k] = x**i * y**j
  10.     m, _, _, _ = np.linalg.lstsq(G, z)
  11.     return m
  12.  
  13. def polyval2d(x, y, m):
  14.     order = int(np.sqrt(len(m))) - 1
  15.     ij = itertools.product(range(order+1), range(order+1))
  16.     z = np.zeros_like(x)
  17.     for a, (i,j) in zip(m, ij):
  18.         z = z + a * x**i * y**j
  19.     return z
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement