Source code for chaospy.expansion.laguerre

import numpy
import chaospy


[docs]def laguerre( order, alpha=0.0, physicist=False, normed=False, retall=False, ): """ Examples: >>> polynomials, norms = chaospy.expansion.laguerre(3, retall=True) >>> polynomials polynomial([1.0, q0-1.0, q0**2-4.0*q0+2.0, q0**3-9.0*q0**2+18.0*q0-6.0]) >>> norms array([ 1., 1., 4., 36.]) >>> chaospy.expansion.laguerre(3, physicist=True).round(5) polynomial([1.0, -q0+1.0, 0.5*q0**2-2.0*q0+2.0, -0.16667*q0**3+1.5*q0**2-5.33333*q0+4.66667]) >>> chaospy.expansion.laguerre(3, alpha=2, normed=True).round(3) polynomial([1.0, 0.577*q0-1.732, 0.204*q0**2-1.633*q0+2.449, 0.053*q0**3-0.791*q0**2+3.162*q0-3.162]) """ multiplier = -1.0 / numpy.arange(1, order + 1) if physicist else 1.0 _, [polynomials], [norms] = chaospy.recurrence.analytical_stieltjes( order, chaospy.Gamma(alpha + 1), multiplier=multiplier ) if normed: polynomials = chaospy.true_divide(polynomials, numpy.sqrt(norms)) norms[:] = 1.0 return (polynomials, norms) if retall else polynomials