¿Cómo se puede resolver la ecuación [matemáticas] x ^ x = c [/ matemáticas], donde [matemáticas] c [/ matemáticas] es una constante como 1234567890? ¿Cuál es el método de resolución que no sea el enfoque de prueba y error?

No hay una función elemental para describir estos valores en general.

Pero cuando no existe una función adecuada, los matemáticos con frecuencia inventan una. Podemos expresar las soluciones a estas ecuaciones usando una de esas funciones, llamada función Lambert W.

Esta función satisface la ecuación [matemáticas] z = W (ze ^ z) [/ matemáticas]. Transformemos nuestra ecuación en esta forma.

Primero, tome el registro de ambos lados, para obtener [matemáticas] x \ log x = \ log c [/ matemáticas].

A continuación, deje que [math] z = \ log x [/ math]. Entonces [math] ze ^ z = \ log c [/ math].

Ahora aplique la función W en ambos lados. El lado izquierdo se simplifica a [matemática] z [/ matemática] por definición, lo que resulta en [matemática] z = W (\ log c) [/ matemática]. Por lo tanto, [matemáticas] x = e ^ {W (\ log c)} [/ matemáticas].

En el caso dado, donde [matemática] c = 1234567890 [/ matemática], esto resulta alrededor de [matemática] x = 9.36 [/ matemática]. Pero dependiendo de su caso de uso, el valor decimal puede no ser mejor que expresar el valor exactamente usando la función W.

Puedes usar el método de Newton-Rhapson, que usa derivadas para descubrir las raíces de una función.

Si tiene [matemática] x ^ x = C [/ matemática], donde C es una constante, puede reorganizarla como [matemática] x ^ x – C = 0 [/ matemática]. Puede convertir [matemáticas] x ^ x – C [/ matemáticas] en una función, y luego usar el método Newton-Rhapson para descubrir sus raíces, es decir, en qué punto la función es igual a 0.

El método consiste en calcular la línea tangente de una curva en un punto elegido, obtener la intersección x de esa línea y usar esa intersección x como la próxima aproximación más cercana para el algoritmo. Matemáticamente, para una función [matemática] f (x) [/ matemática], es:

[matemáticas] x = x_0 – \ dfrac {f (x_0)} {f ‘(x_0)} [/ matemáticas]

Para su hipotético 1234567890, [matemáticas] f (x) = x ^ x – 1234567890 [/ matemáticas] y su derivada es [matemáticas] f ‘(x) = x ^ x (\ ln {(x)} + 1) [ / math], entonces, si comienzas con [math] x = 10 [/ math]:

[matemáticas] x_1 = 10 – \ dfrac {10 ^ {10} – 1234567890} {10 ^ {10} (\ ln {(10)} + 1)} [/ matemáticas]

[matemáticas] x_1 \ aprox 9.7345887581 [/ matemáticas]

[matemáticas] x_1 [/ matemáticas] es una mejor aproximación, pero para acercarse aún más a lo que desea, debe repetir el método, utilizando el nuevo valor en lugar de 10, y hacerlo una y otra vez, hasta que esté satisfecho.

Usando Python para iterar varias veces, obtuve [matemáticas] x \ aprox 9.360265395006172 [/ matemáticas]

Si desea cambiar a lo que [matemática] x ^ x [/ matemática] será igual, todo lo que tiene que hacer es cambiar [matemática] f (x) [/ matemática] y el valor de C, ya que la derivada permanecerá igual sin importar el valor de la constante.