back to table · edit · history · where entries came from · files
the sine mode. The angle $\varphi$ is measured anticlockwise from the positive $x$-axis.'- comment-normalisation: The entries are unnormalised. The OSA/ANSI and Noll normalised- modes multiply these polynomials by $\sqrt{n+1}$ when $l=0$ and by $\sqrt{2(n+1)}$- when $l\ne0$ CITE{Wiki}.+ comment-normalisation: The entries are unnormalised, scaled so that $R_n^m(1)=1$.+ The OSA/ANSI and Noll normalised modes multiply these polynomials by $\sqrt{n+1}$+ when $l=0$ and by $\sqrt{2(n+1)}$ when $l\ne0$ CITE{Wiki}. comment-omissions: 'The monomial rows are omitted: $R_n^n(t)=t^n$ for the radial form, and the Cartesian rows $Z_0^0=1$, $Z_1^1=x$ and $Z_1^{-1}=y$. The non-monomial
comment-uses: Zernike polynomials are used for wavefront aberrations on circular pupils, Zernike moments in image analysis and related expansions on the unit disk- CITE{Wiki} CITE{MathWorld}. The classical aberration names for the first modes- are included in the Cartesian entry comments.+ CITE{Wiki} CITE{MathWorld}. The non-monomial entries with $n\leq4$ carry the classical+ aberration name, in both forms; the table gives no aberration names for $n>4$. Formulas: formula-angular: $Z_n^l(\rho,\varphi)=R_n^{|l|}(\rho)\cos(l\varphi)$ for $l\geq0$,
for $0\leq m\leq n$ and $n-m$ even CITE{Wiki}. formula-cartesian: If $R_n^m(\rho)=\sum_s c_s\rho^{m+2s}$, then $Z_n^l(x,y)=\sum_s- c_s(x^2+y^2)^s\operatorname{Re}(x+iy)^m$ for $l=m>0$, $Z_n^l(x,y)=\sum_s c_s(x^2+y^2)^s\operatorname{Im}(x+iy)^m$- for $l=-m<0$, and $Z_n^0(x,y)=R_n^0(\sqrt{x^2+y^2})$.+ c_s(x^2+y^2)^s\operatorname{Re}\left[(x+iy)^m\right]$ for $l=m>0$, $Z_n^l(x,y)=\sum_s+ c_s(x^2+y^2)^s\operatorname{Im}\left[(x+iy)^m\right]$ for $l=-m<0$, and $Z_n^0(x,y)=R_n^0(\sqrt{x^2+y^2})$. formula-jacobi: $R_n^m(\rho)=(-1)^{(n-m)/2}\rho^m P_{(n-m)/2}^{(m,0)}(1-2\rho^2)$, where $P_k^{(\alpha,\beta)}$ is the HREF{Jacobi_polynomials}[Jacobi polynomial]
code: "import numberdb.sage as numberdb\nfrom sage.arith.misc import binomial\n\ from sage.rings.integer_ring import ZZ\nfrom sage.rings.polynomial.polynomial_ring_constructor\- \ import PolynomialRing\n\nR = PolynomialRing(ZZ, 't')\nt = R.gen()\n\ndef radial(n,\- \ m):\n return sum((-1)**k * ZZ(binomial(n - k, k)) *\n ZZ(binomial(n\- \ - 2*k, (n - m)//2 - k)) *\n t**(n - 2*k)\n for\- \ k in range((n - m)//2 + 1))\n\nradial(22, 0) # the next\- \ even radial row after this table"+ \ import PolynomialRing\n\nR = PolynomialRing(ZZ, 't')\nt = R.gen()\nXY = PolynomialRing(ZZ,\+ \ ('x', 'y'))\nx, y = XY.gens()\n\ndef radial_terms(n, m):\n return [((-1)**k\+ \ * ZZ(binomial(n - k, k)) *\n ZZ(binomial(n - 2*k, (n - m)//2 -\+ \ k)),\n n - 2*k)\n for k in range((n - m)//2 + 1)]\n\+ \ndef radial(n, m):\n return sum(c * t**e for c, e in radial_terms(n, m))\n\+ \ndef real_part_power(m):\n return sum((-1)**(j//2) * ZZ(binomial(m, j))\+ \ * x**(m - j) * y**j\n for j in range(0, m + 1, 2))\n\ndef imag_part_power(m):\n\+ \ return sum((-1)**((j - 1)//2) * ZZ(binomial(m, j)) * x**(m - j) * y**j\n\+ \ for j in range(1, m + 1, 2))\n\ndef cartesian(n, l):\n m\+ \ = abs(l)\n if l > 0:\n angular = real_part_power(m)\n elif l\+ \ < 0:\n angular = imag_part_power(m)\n else:\n angular = XY.one()\n\+ \ r2 = x**2 + y**2\n return sum(c * r2**((e - m)//2) * angular for c,\+ \ e in radial_terms(n, m))\n\nradial(22, 0) # the next\+ \ even radial row after this table\ncartesian(13, 1) # the\+ \ next odd Cartesian row after this table" Similar tables: - table: HREF{Jacobi_polynomials}[Jacobi polynomials]
- table: HREF{Zeros_of_Bessel_J_functions}[Zeros of Bessel functions of the first kind]- relation: the Hankel transform in CITE{formula-hankel} has $J_{n+1}$ in its numerator+ relation: the Hankel transform in CITE{formula-hankel} has zeros at the positive+ zeros of $J_{n+1}$ Links: Wiki:
complete: 'no' complete-note: it holds every non-monomial radial polynomial with $n\leq20$ and- every non-monomial Cartesian polynomial with $n\leq12$+ every non-monomial Cartesian polynomial with $n\leq12$, where the Cartesian rows+ stop sooner because they grow faster; $Z_{12}^0$ is 365 characters, while $R_{12}^0$+ is 65 characters rigour details: Every entry is exact, a polynomial with integer coefficients. The generator computes CITE{formula-radial-sum} over Sage's integer polynomial rings
CITE{formula-jacobi}; the radial polynomials must satisfy $R_n^m(1)=1$ and the exact orthogonality relation CITE{formula-orthogonality}; and the single-index- formulas must reproduce the checked initial Noll and Fringe lists.+ formulas must reproduce the four single indices tabulated for $n\leq4$ in CITE{Wiki}. Display properties: number-header: $R_n^{|l|}(t)$ or $Z_n^l(x,y)$
Sign in to restore an earlier version.