¿Qué técnicas de aproximación existen para la función de superraíz cuadrada?


17

Necesito implementar una aproximación a la inversa de , es decir, la función de superraíz cuadrada (ssrt). Por ejemplo, significa que . No estoy tan interesado en ninguna precisión / profundidad de bits particular como en comprender cuáles son mis opciones en contraste con enfoques más directos que utilizan series de potencia.XX1.56 1.562ssrt(2)1,561,561,562

Wolfram Alpha ofrece una buena solución simbólica en términos de la función Lambert W (es decir, ). Wikipedia da la misma fórmula , así como el equivalente . Dado que hay una cantidad razonable de información sobre la computación [1] [2], técnicamente eso es todo lo necesario para implementar algo para una variedad de requisitos. Sé de al menos dos libros que detallan extensamente acerca de la aproximación de [3] [4], por lo que incluso hay mucho espacio para optimizar desde esa dirección.En(X)/ /W(En(X)) W ( x )miW(En(X))W(X)En(X)

Sin embargo, tengo dos preguntas:

  1. ¿Se han publicado en algún lugar técnicas de aproximación específicas para esta función?
  2. ¿Tiene otro nombre además de "superraíz cuadrada" que facilitaría un poco la búsqueda de referencias?

Wikipedia / Google ha encontrado algunas referencias dedicadas a funciones de "tetración" más generales que incluyen como un caso especial, pero la mayoría de ellas parecen estar más orientadas a explorar / definir los casos generales.ssrt(X)

-

  1. Corless, R .; Gonnet, G .; Liebre, D .; Jeffrey, D .; Knuth, Donald (1996), "Sobre la función Lambert W" http://www.apmaths.uwo.ca/~djeffrey/Offprints/W-adv-cm.pdf
  2. Biblioteca digital de funciones matemáticas . http://dlmf.nist.gov/4.13
  3. Crenshaw, Jack W. (2000), Math Toolkit for Real-Time Programming.
  4. Hart, John F. (1978), Aproximaciones informáticas.
  5. Chapeau-Blondeau, F. y Monir, A. (2002). Evaluación numérica de la función Lambert W y aplicación a la generación de ruido gaussiano generalizado con exponente 1/2. Transacciones IEEE sobre procesamiento de señales 50, 2160-2165. http://www.istia.univ-angers.fr/~chapeau/papers/lambertw.pdf
  6. Minero, Paul. Fast aproximado W de Lambert . http://www.machinedlearnings.com/2011/07/fast-approximate-lambert-w.html

-

Actualizar

Después de investigar un poco más en los últimos días, todavía no he encontrado el tipo de tratamiento práctico "estilo Crenshaw" de que esperaba, pero encontré un nueva referencia que vale la pena documentar aquí. En la página tres en , hay una sección titulada "Aproximación rápida" que entra en gran detalle acerca de la aproximación de en el contexto de la generación de ruido. Como comentario interesante, la densidad de probabilidad de "ruido gaussiano con exponente 1/2" [en el artículo] se ve sorprendentemente similar al histograma en la respuesta de Kellenjb a esta pregunta sobre la detección de recorte de señal .s s r t ( x ) [ 5 ] W ( x )[3]ssrt(X)[5 5]W(X)

Además, el enlace proporcionado por rwong en los comentarios es un gran recurso para implementar realmente , e incluso se vincula al proyecto con licencia BSD del autor llamado fastapprox , que incluye la implementación descrita.W ( x )[6 6]W(X)



2
Pregunté sobre esto en Meta, ya que el campo de comentarios no está destinado a discusiones extendidas. Sugiera cómo debemos manejar estas preguntas aquí: ¿Son las preguntas sobre análisis numérico sobre el tema?

@datageist: la conclusión inicial de la meta pregunta fue que si desea utilizar este análisis numérico para procesar datos DSP, entonces es sobre el tema. Si no, entonces no. ¿Cómo se relaciona esto con DSP?
Kevin Vermeer

2
@Kevin Surgió en el contexto del desarrollo de un efecto de audio.
Datageist

1
Siempre que necesito escribir una rutina para la función de Lambert, usualmente uso las aproximaciones dadas en este artículo y luego pulido con Newton-Raphson, Halley o cualquier otro método iterativo. Se pueden adaptar este enfoque para invertir ...XX

Respuestas:


6

Algunas puñaladas numéricas en la oscuridad arrojaron lo siguiente para un enfoque iterativo:

Estamos buscando la solución y = f (x) donde y ^ y = x.

yEny=EnX

y=sol(X,y)=miEnXy

El valor para es un punto fijo de la ecuación anterior, y empíricamente parece converger para algunos valores de x , pero para valores mayores de x oscila o diverge.yXX

Luego probé un enfoque similar a la raíz cuadrada iterativa de Newton:

y=ypagrmivyootus+y2=y+miEnXy2

donde se supone que y * representa una respuesta no convergente pero optimista que mantiene la precisión si adivina un valor inicial preciso (en raíz cuadrada y 2 = x, es y * = x / y).

Esto parece converger, pero muy lentamente en el extremo inferior de (cerca de x m i n = ( 1X )xmin=(1e)1e

También parece que una buena suposición inicial es .y0=ln(x)+1

Así que pensé que tal vez hay una solución mejor convergente:

para algún valor de a que es función de x .y=(1-un)×y+un×sol(X,y)unX

Entonces encontré algo interesante.

Si obtengo una respuesta convergente del enfoque anterior para y y = x , y luego calculo y 2 = g ( x , y + ϵ ) = e ln ( x )yyy=X ,parecequey2-y= aproximadamenteϵ×(-ln(y)).... por ejemplo, si teníamos una conjeturay1=y+ϵpara algún desconocidoϵ, y calculamosy2=g(x,y1), luego(y2-y)ϵ×(-ln(y2=sol(X,y+ϵ)=miEn(X)y+ϵy2-yϵ×(-En(y))y1=y+ϵϵy2=sol(X,y1) . (Solo para aclarar, no tengo análisis para verificar esto, pero los números simplemente salieron de alguna evaluación numérica que realicé).(y2-y)ϵ×(-En(y))=(y1-y)×(-En(y))

Resuelve los términos lineales en , y obtienes y = y 2 + ln ( y ) × y 1y ... useln(y1)en lugar deln(y)y obtendrá esta aproximación iterativa:y=y2+En(y)×y11+En(y)En(y1)En(y)

y[norte+1]=sol(X,y[norte])+En(y[norte])×y[norte]1+En(y[norte])=miEn(X)y[norte]+En(y[norte])×y[norte]1+En(y[norte])

y=1+En(X)

(Alguien probablemente podría mostrar que esto es equivalente a Newton-Raphson de alguna manera, pero creo que está más allá de mi capacidad).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.