Eu preciso implementar uma aproximação ao inverso de , ou seja, a função quadrada de super raiz (ssrt). Por exemplo, meios que . Não estou tão interessado em nenhuma precisão / profundidade de bits em particular quanto em entender quais são minhas opções em contraste com abordagens mais diretas usando séries de potência.
O Wolfram Alpha fornece uma boa solução simbólica em termos da função Lambert W (ou seja, ). Wikipedia dá a mesma fórmula , bem como o equivalente . Dado que há uma quantidade razoável de informações sobre o cálculo de para uma variedade de requisitos. Conheço pelo menos dois livros que detalham detalhadamente a aproximação de ln ( x ) [1] [2], tecnicamente isso é tudo o que é necessário para implementar algo [3] [4], então há muito espaço para otimizar a partir dessa direção.
No entanto, tenho duas perguntas:
- As técnicas de aproximação específicas para esta função foram publicadas em algum lugar?
- Ele tem outro nome além de "super raiz quadrada" que tornaria a busca por referências um pouco mais fácil?
O Wikipedia / Google encontrou algumas referências dedicadas a funções mais gerais de "tetração" que incluem como um caso especial, mas a maioria deles parecem ser mais orientada para explorar / definindo os casos gerais.
-
- Corless, R .; Gonnet, G .; Hare, D .; Jeffrey, D .; Knuth, Donald (1996), "Sobre a função Lambert W" http://www.apmaths.uwo.ca/~djeffrey/Offprints/W-adv-cm.pdf
- Biblioteca Digital de Funções Matemáticas . http://dlmf.nist.gov/4.13
- Crenshaw, Jack W. (2000), Math Toolkit for Real-Time Programming.
- Hart, John F. (1978), Computer Approximations.
- Chapeau-Blondeau, F. e Monir, A. (2002). Avaliação numérica da função Lambert W e aplicação na geração de ruído gaussiano generalizado com expoente 1/2. Transações IEEE no processamento de sinais 50, 2160-2165. http://www.istia.univ-angers.fr/~chapeau/papers/lambertw.pdf
- Minero, Paul. Rápido aproximado Lambert W . http://www.machinedlearnings.com/2011/07/fast-approximate-lambert-w.html
-
Atualizar
Depois de fazer mais algumas pesquisas ao longo dos últimos dias, eu ainda não encontrei o tipo de hands-on "estilo Crenshaw" tratamento de s s r t ( x ) que eu estava esperando, mas eu encontrar um novo referência que vale a pena documentar aqui. Na página três em [ 5 ] , há uma seção intitulada "Aproximação rápida", que detalha a aproximação de W ( x ) no contexto da geração de ruído. Como um aparte interessante, a densidade de probabilidade do "ruído gaussiano com expoente 1/2" [no artigo] parece surpreendentemente semelhante ao histograma na resposta de Kellenjb paraesta pergunta sobre a detecção de recorte de sinal .
Além disso, o link fornecido por rwong nos comentários é um excelente recurso para realmente implementar o W ( x ) , e até vincula ao projeto licenciado por BSD do autor chamado fastapprox , que inclui a implementação descrita.
fonte
Respostas:
Algumas facadas numéricas no escuro renderam o seguinte para uma abordagem iterativa:
Estamos procurando a solução y = f (x) onde y ^ y = x.
O valor para é um ponto fixo da equação acima e, empiricamente, parece convergir para alguns valores de x , mas para valores maiores de x ele oscila ou diverge.y x x
Depois, tentei uma abordagem semelhante à raiz quadrada iterativa de Newton:
onde y * deve representar uma resposta não-convergente, mas otimista, que mantém a precisão se você adivinhar um valor inicial preciso (na raiz quadrada y 2 = x, é y * = x / y).
Parece convergir, mas muito lentamente na extremidade inferior de (próximo de x m i n = ( 1x )xmin=(1e)1e
Também parece que um bom palpite inicial é .y0=ln(x)+1
Então imaginei que talvez houvesse uma solução com melhor convergência:
Então eu encontrei algo interessante.
Solve for the linear terms iny , and you get y=y2+ln(y)×y11+ln(y) ... use ln(y1) in place of ln(y) and you get this iterative approximation:
This appears to work very well, with the initial guessy=1+ln(x) , and appears to converge within 4 or 5 iterations.
(Someone could probably show that this is equivalent to Newton-Raphson in some way, but I think it's beyond my capability.)
fonte