1import numpy 2import chaospy 3 4 5def laguerre( 6 order, 7 alpha=0., 8 physicist=False, 9 normed=False, 10 retall=False, 11): 12 """ 13 Examples: 14 >>> polynomials, norms = chaospy.expansion.laguerre(3, retall=True) 15 >>> polynomials 16 polynomial([1.0, q0-1.0, q0**2-4.0*q0+2.0, q0**3-9.0*q0**2+18.0*q0-6.0]) 17 >>> norms 18 array([ 1., 1., 4., 36.]) 19 >>> chaospy.expansion.laguerre(3, physicist=True).round(5) 20 polynomial([1.0, -q0+1.0, 0.5*q0**2-2.0*q0+2.0, 21 -0.16667*q0**3+1.5*q0**2-5.33333*q0+4.66667]) 22 >>> chaospy.expansion.laguerre(3, alpha=2, normed=True).round(3) 23 polynomial([1.0, 0.577*q0-1.732, 0.204*q0**2-1.633*q0+2.449, 24 0.053*q0**3-0.791*q0**2+3.162*q0-3.162]) 25 26 """ 27 multiplier = -1./numpy.arange(1, order+1) if physicist else 1. 28 _, [polynomials], [norms] = chaospy.recurrence.analytical_stieltjes( 29 order, chaospy.Gamma(alpha+1), multiplier=multiplier) 30 if normed: 31 polynomials = chaospy.true_divide(polynomials, numpy.sqrt(norms)) 32 norms[:] = 1. 33 return (polynomials, norms) if retall else polynomials 34