Aller au contenu principal

Aproximación de Lanczos


Aproximación de Lanczos


En matemáticas, la aproximación de Lanczos es un método para evaluar la función gamma numéricamente, publicado por Cornelius Lanczos en 1964. Se trata de una alternativa práctica a la más popular aproximación de Stirling para el cálculo de la función gamma con precisión fija.

Introducción

La aproximación de Lanczos aplica la fórmula

Γ ( z + 1 ) = 2 π ( z + g + 1 2 ) z + 1 2 e ( z + g + 1 2 ) A g ( z ) {\displaystyle \Gamma (z+1)={\sqrt {2\pi }}{\left(z+g+{\frac {1}{2}}\right)}^{z+{\frac {1}{2}}}e^{-\left(z+g+{\frac {1}{2}}\right)}A_{g}(z)}

para la función Gamma, con

A g ( z ) = 1 2 p 0 ( g ) + p 1 ( g ) z z + 1 + p 2 ( g ) z ( z 1 ) ( z + 1 ) ( z + 2 ) + . {\displaystyle A_{g}(z)={\frac {1}{2}}p_{0}(g)+p_{1}(g){\frac {z}{z+1}}+p_{2}(g){\frac {z(z-1)}{(z+1)(z+2)}}+\cdots .}

Aquí g es una constante que puede ser elegida arbitrariamente sujeta a la restricción de que Re (z)> 1/2.[1]​ Los coeficientes p, dependientes de g, son ligeramente más difícil de calcular (véase más adelante). Aunque la fórmula como se indica aquí solo es válida para los argumentos en el semiplano complejo derecho, se puede extender a todo el plano complejo mediante la fórmula de reflexión,

Γ ( 1 z ) Γ ( z ) = π sin π z . {\displaystyle \Gamma (1-z)\;\Gamma (z)={\pi \over \sin \pi z}.}

La serie A es convergente, y se puede truncar para obtener la aproximación con la precisión deseada. Al elegir una apropiada g (pequeño entero), solo son necesarios de entre 5 a 10 términos de la serie para calcular la función gamma con la típica de precisión simple o doble de coma flotante. Si se elige un g fijo, los coeficientes se pueden calcular de antemano y la suma se refunden en la siguiente forma:

A g ( z ) = c 0 + k = 1 N c k z + k {\displaystyle A_{g}(z)=c_{0}+\sum _{k=1}^{N}{\frac {c_{k}}{z+k}}}

Por lo tanto el cálculo de la función gamma se convierte en una cuestión de la evaluación de solo un pequeño número de funciones elementales y la multiplicación por constantes almacenadas. La aproximación de Lanczos fue popularizado por Numerical Recipes, según la cual el cálculo de la función Gamma se convierte en "no mucho más difícil que otras funciones incorporadas que damos por sentado, como el sen x o e x. El método también se implementa en el Biblioteca Científica GNU.

Coeficientes

Los coeficientes están dados por

p k ( g ) = a = 0 k C ( 2 k + 1 , 2 a + 1 ) 2 π ( a 1 2 ) ! ( a + g + 1 2 ) ( a + 1 2 ) e a + g + 1 2 {\displaystyle p_{k}(g)=\sum _{a=0}^{k}C(2k+1,2a+1){\frac {\sqrt {2}}{\pi }}\left(a-{\begin{matrix}{\frac {1}{2}}\end{matrix}}\right)!{\left(a+g+{\begin{matrix}{\frac {1}{2}}\end{matrix}}\right)}^{-\left(a+{\frac {1}{2}}\right)}e^{a+g+{\frac {1}{2}}}}

donde C (i, j)denota la (i, j) -ésimo elemento del polinomio de Chebyshev. Los coeficientes de la matriz puede calcularse recursivamente a partir de las identidades

Paul Godfrey describe cómo obtener los coeficientes y también el valor de la serie truncada A como un producto de matrices.

Derivación

Lanczos deriva la fórmula de la integral de Leonhard Euler

Γ ( z + 1 ) = 0 t z e t d t , {\displaystyle \Gamma (z+1)=\int _{0}^{\infty }t^{z}\,e^{-t}\,dt,}

realiza una secuencia de operaciones básicas para obtener

Γ ( z + 1 ) = ( z + g + 1 ) z + 1 e ( z + g + 1 ) 0 e [ v ( 1 log v ) ] z 1 2 v g d v , {\displaystyle \Gamma (z+1)=(z+g+1)^{z+1}e^{-(z+g+1)}\int _{0}^{e}[v(1-\log v)]^{z-{\frac {1}{2}}}v^{g}\,dv,}

y derivar una serie para la integral.

Implementación simple

La siguiente implementación en el lenguaje de programación Python sirve para argumentos complejos y por lo general da 15 decimales correctos:

Véase también

  • Aproximación de Stirling
  • Aproximación de Spouge
Collection James Bond 007

Referencias

  • Godfrey, Paul (2001). «Lanczos Implementation of the Gamma Function». 
  • Lanczos, Cornelius (1964). «A Precision Approximation of the Gamma Function». SIAM Journal on Numerical Analysis series B (Society for Industrial and Applied Mathematics) 1: 86-96. ISSN 0887-459X. JSTOR 2949767. doi:10.2307/2949767. 
  • Press, W. H.; Teukolsky, S. A.; Vetterling, W. T.; Flannery, B. P. (2007), «Section 6.1. Gamma Function», Numerical Recipes: The Art of Scientific Computing (3rd edición), New York: Cambridge University Press, ISBN 978-0-521-88068-8 .
  • Pugh, Glendon (2004). An analysis of the Lanczos Gamma approximation (Tesis de PhD). 
  • Toth, Viktor (2005). «Programmable Calculators: The Lanczos Approximation». 
  • Weisstein, Eric W. «Lanczos Approximation». En Weisstein, Eric W, ed. MathWorld (en inglés). Wolfram Research. 

Text submitted to CC-BY-SA license. Source: Aproximación de Lanczos by Wikipedia (Historical)


PEUGEOT 205