Advertisement
Guest User

Untitled

a guest
May 28th, 2015
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.08 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import numpy as np
  5. import matplotlib.pyplot as plt
  6. from scipy.special import jn
  7. from scipy.integrate import quad
  8. from mpl_toolkits.mplot3d import Axes3D
  9. from matplotlib import cm
  10.  
  11. def icart(x, y, delta_l, l_m):
  12.     lower_bound = 1 - delta_l/(2*l_m)
  13.     upper_bound = 1 + delta_l/(2*l_m)
  14.     prefactor = 4E4/(np.pi**2 * (x**2 + y**2))
  15.     return prefactor * quad(lambda labda: (jn(1, np.pi*np.sqrt(x**2 + y**2)/labda))**2,
  16.                             lower_bound, upper_bound)[0]
  17.  
  18. def cartesian_norm_airy(xvals, yvals, delta_l, l_m):
  19.     lower_bound = 1 - delta_l/(2*l_m)
  20.     upper_bound = 1 + delta_l/(2*l_m)
  21.  
  22.     X, Y = np.meshgrid(xvals, yvals)
  23.     prefactor = 4E4/(np.pi**2 * (X**2+Y**2))
  24.     returnarray = np.zeros_like(X)
  25.     for rowidx, rowval in enumerate(X):
  26.         for colidx, colval in enumerate(rowval):
  27.             returnarray[rowidx][colidx] = icart(X[rowidx][colidx], Y[rowidx][colidx], delta_l, l_m)
  28.     return X, Y, returnarray
  29.  
  30.  
  31. x = np.linspace(0,5,100)-2.5+0.0001
  32. y = x
  33. z = cartesian_norm_airy(x, y, 0.3, 45)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement