4 votos

¿Cómo encontrar una aproximación de Newton para esa función?

Quiero encontrar el complejo de punto fijo $t=b^t $ para bases reales $b> \eta = \exp(\exp(-1))$.

añade comentario: soy consciente de que hay una solución utilizando ramas de la de Lambert-W-función, pero no tengo Arce/Mathematica y sólo una áspera aplicación en Pari/GP para los valores reales. Que motivado para intentar una solución a través de Newton/Raphson. Y para entender y resolver este tipo de implementación (que tiene que lidiar con derivados y valores complejos) es/era entonces mi pregunta aquí. Véase también mi comentario de Fabián respuesta a continuación. Me parece que han solucionado lo mismo para la "rama principal" (ver mi propia respuesta a continuación), pero todavía está abierto para el caso general de los k-ésimos de la rama. [fin del comentario]

Lo que tengo es una función de un parámetro $ \beta $ dando la auxiliar de valores
$$ u = \frac{\beta}{ \sin(\beta) } *\exp( i * \beta) $$ $$ t=\exp(u) $$ $$ b= f(\beta) = \exp(u/t) = \exp(u * \exp(-u)) $$

Por esto me puede hacer una aproximación dada una base $B$ mediante búsqueda binaria. Puedo encontrar los límites de un intervalo de tomar inferior y el límite superior de la beta de $ \beta_l = \epsilon $ $ \beta_u = \pi-\epsilon $ con pequeñas epsilons dando a la parte inferior y superior de bases de $b_l$ $b_u$ respectivamente. A continuación, la comparación de $b_m = f(\beta_m)$ donde $ \beta_m = (\beta_l + \beta_u)/2 $ con mis dado base $B$ I podemos poner en práctica una búsqueda binaria que se aproxima $b_m$ $B$arbitrariamente y disponer de $\beta_m$ me puede reconstruir u y el punto fijo de t mediante la fórmula anterior.

Sin embargo, que la búsqueda binaria necesidades sorprendentemente el número de iteraciones y pensé que, posiblemente una de Newton-como método para que la aproximación sea más eficiente. Pero desde que tengo complejo de valores en juego, ¡no quiero ni ver la derivada y menos aún la fórmula de cómo involucrar a los que derivado de dicha aproximación-fórmula y cómo aplicar este último para hacer el iteraciones...

[actualización 4] movía mis propias conclusiones en una propia respuesta (como se sugiere en el meta.*)

[update 1] (en esta antigua trama que utilizan la letra s en lugar de b) plot of function f(beta)

3voto

Jorrit Reedijk Puntos 129

(Como se sugiere por un hilo en el meta.stackexchange me mudé de mi propia solución (que es, sin embargo, todavía parcial) en una respuesta)

Los siguientes resuelve el problema de encontrar el método de Newton-iteración, al menos para el "principal" de valor.

El uso de $c(b) = ln(ln(b))$ no sólo se extiende el rango para la evaluación numérica sino que también simplifica el problema. Primero me quite el uso del nombre de la variable u por una función correctamente dependend en $\beta$ : $$u(\beta) = \frac{\beta}{ \sin(\beta) } *\exp( i * \beta) = \beta \cot(\beta) + i \beta $$

Then I consider the replacement of the binary search using $ v(\beta) = \ln(u(\beta))-u(\beta) $ by the Newton/Raphson-iteration-scheme to approximate to a zero of $$ v(\beta,b) = v(\beta) - c(b) $$

Por cierto., aquí v tiene una interesante powerseries: coeficientes racionales escalas de bernoulli-números, resp. zeta en argumentos negativos: $$v(x)=-1 + \sum_{k=2}^{\infty} (2 i)^k*(k+1)/k! \zeta (1-k) x^k $$

Que valor de c(b) a la que quiero aproximado define la constante de desviación de v(x) así que tengo que incluir que en el término constante: $$v(x,b)=-1 - c(b) + \sum_{k=2}^{\infty} (2 i)^k*(k+1)/k! \zeta (1-k) x^k $$

La derivada por termwise diferenciación es $$ dv(x) = v'(x) = \sum_{k=2}^{\infty} (2 i)^k*(k+1)*k/k! \zeta (1-k) x^{k-1} $$ y es el mismo que de $ v(x,b) $

Ahora el método de Newton-iteración para encontrar la raíz de $v(\beta,b) $ es $$ \beta_0 = \frac{\pi}2 \text{ and } \beta_{n+1} = \beta_n - \frac{v(\beta_n,b)}{v'(\beta_n)} $$ y con algunos de los n-ésimos de la iteración I get $\beta_n$ que proporciona aproximaciones a los parámetros $$ t \approx t_n = \exp(u(\beta_n)) $$ $$ B \approx b_n = \exp(\exp(v(\beta_n,B))) $$ donde también $$ B = t^{\frac1t} \approx t_n \ ^{\frac1{t_n}} $$ and B is the given real base for which I search the complex fixpoint t.

Numerically this iteration converges well with few (say 64) terms; I need now only 4 to 8 iterations to find a well approximated t for base b=4 where I needed hundreds of iterations using the binary search to get accuracy of, say, fourty digits.

(I've not yet tried to extend this to other complex solutions in t, so this is still open)

[update2] The selection of another branch (and meaning of another fixpoint) is as simple as possible: just adjust the search-interval for the iterative function to the appropriate interval of $k*\pi+\epsilon \ldots (k+1)*\pi\epsilon$ Using the Pari/GP-builtin binary search with the new functions, I get the first seven fixpoints as follows

$$ \begin{array} {rrr} k & log(t) & t \ \ (=Fixpoint) & error: \ \ \ 4 - t^{\frac1t} \\ 0 & 0.0886671+1.51223*I & 0.0639598+1.09084*I & 2.04128E-202 \\ 1 & 1.20116+4.44867*I & -0.866450-3.20904*I & 8.36925E-201 \\ 2 & 1.73066+7.63096*I & 1.24841+5.50457*I & 1.49014E-200 \\ 3 & 2.07153+10.8062*I & -1.49429-7.79501*I & 7.14449E-201 \\ 4 & 2.32409+13.9723*I & 1.67648+10.0789*I & 1.16353E-200 \\ 5 & 2.52508+17.1324*I & -1.82146-12.3584*I & 1.01043E-199 \\ 6 & 2.69214+20.2884*I & 1.94197+14.6350*I & 1.85757E-200 \end{array} $$

[actualización] Hmm, el número necesario de los términos m en el powerseries de v(x) para obtener, por ejemplo, la precisión de 40 dígitos decimales pueden ser bastante bien estimado por la fórmula siguiente para las bases b, donde 2 <= b <= 2000 .
$$ m \approx 62.448 * \ln(\ln(b)) + 100 \text{ (formula estimated using Excel) } $$

Para una base fija de b , se puede determinar la exactitud del número de dígitos dependiendo del número de términos n de la potencia de la serie v(ß). Aquí es un complot para b=2, b=4, b=16, b=256

Por ejemplo, para la base B=4 I get mediante 150 el poder de términos de la serie de v(x) el complejo de punto fijo de t 40 dígitos con 6 iteraciones como

t =  0.06395981030134317249921085931098535528761 +     
       1.090843376539957576373598843800166909991*I
4 - t^(1/t) = 1.67294184828 E-46

Accuracy

3voto

Fabian Puntos 12538

Podría ser ventajoso para reducir el problema a algo que ha sido estudiado en la literatura: la palabra clave es la función W de Lambert. La función W de Lambert $W(z)$ se define a través de $$z= W(z)e^{W(z)}.$$ En muchos sistemas ya existen implementaciones de esta función. En términos de la función W de Lambert su $t$ es dado a través de la relación $$t = - \frac{W(-\log b)}{\log b}.$$

Tenemos que encontrar una forma para calcular el $w=W(z)$$z<-1/e$. Yo sigo una idea de esta página. Deje $z=-r$ (con $r>1/e$), $w=R e^{i \theta}$ ($R>0$). Escrito $w e^{w} =z$ en coordenadas polares, se reduce al conjunto de la ecuación $$r= R e^{R \cos \theta}$$ and $$\pi = \theta + R \sin \theta.$$ This set of equations can be solved for $R>0$ and $\theta \[0,\pi]$.

La segunda ecuación se puede reescribir como $R= (\pi - \theta)/\sin \theta$. Conectando en la primera ecuación rendimientos $$r \sin \theta= (\pi - \theta) e^{(\pi - \theta) \cot \theta}.$$ This last equation can be solved using bisection (we know that the solution is between 0 and $\pi$).

2voto

Andrew Puntos 140

Usted está interesado en la evaluación de la función de $\exp(-W_k(-\log\,b))$ varios $k$; se puede restringir a no negativo $k$, debido a la conjugar la relación entre positivo y negativo de las ramas. Un truncamiento de la fórmula 86 de este artículo puede servir como un punto de partida para la aproximación de $W_k(z)$, que puede ser pulido con Newton-Raphson o Halley:

$$W_k(z)\approx \log\,z+2\pi ik-\log(\log\,z+2\pi ik)-\log\left(1-\frac{\log\,\log\,z}{\log\,z}\right)\left(1+\frac1{\log\,z-\log\,\log\,z}\right)$$

Su curso de acción, entonces es tomar $z=-\log\,b$, elija su $k$, evaluar la aproximación dada anteriormente, el polaco con un método iterativo, y, finalmente, negar y exponentiate.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X