¿Cómo se resolvería [matemáticas] x ^ x = 24 [/ matemáticas]?

Hay una opción recursiva más rápida que la que Aniruddh mencionó.

El método de Newton-Raphson.

[matemáticas] x ^ x = 24 [/ matemáticas]

[matemáticas] x ^ x-24 = 0 [/ matemáticas]

Cuando [math] f (x) = 0 [/ math], y la función se comporta bien, puede aproximar las raíces con esta fórmula:

[matemáticas] x_ {n + 1} = x_n – \ dfrac {f (x_n)} {f ‘(x_n)} [/ matemáticas]

Por lo tanto, necesitamos calcular la derivada.

[matemáticas] f (x) = x ^ x – 24 [/ matemáticas]

[matemáticas] f ‘(x) = x ^ x (\ ln x + 1) [/ matemáticas]

[matemáticas] x_ {n + 1} = x_n – \ dfrac {{x_n} ^ {x_n} – 24} {{x_n} ^ {x_n} (\ ln x_n + 1)} [/ matemáticas]

[matemáticas] 3 ^ 3 = 27 [/ matemáticas], lo que hace un punto de partida bastante decente.

[matemáticas] x_0 = 3 [/ matemáticas]

[matemática] x_1 [/ matemática] es precisa cuando se redondea a 2.9

[matemática] x_2 [/ matemática] es precisa cuando se redondea a 2.9436

[matemática] x_3 [/ matemática] es precisa cuando se redondea a 2.943621727

[matemática] x_4 [/ matemática] es precisa cuando se redondea a 2.943621726628982697

[matemática] x_5 [/ matemática] es precisa cuando se redondea a 2.94362172662898269684134370285004321440

Eso seguramente sería suficiente precisión para cualquier propósito aplicado, porque en ese momento cualquier inexactitud se debería a sus mediciones.

Editar: Gracias a Stev Iones por detectar un error tipográfico en [math] x_5 [/ math], obtuve algunos de los 4 y 0 al final. Lo recalculé y lo corregí.

Esto podría resolverse mediante métodos numéricos, pero en este momento no puedo recordar ninguno de ellos. Pensé en resolverlo manualmente tomando x = 3, ya que 3 ^ 3 = 27, como mi primera aproximación.

Seguí cambiando los dígitos en mi calculadora y calculé la respuesta por método de prueba y error. La respuesta es

x = 2.9436217267

Puedes resolver esto de forma recursiva. Para x> 0, tome el logaritmo de ambos lados para obtener

xlog (x) = log (24)

O x = log (24) / log (x)

Puede seleccionar un valor de x e iterarlo para obtener el siguiente valor

x_new = log (24) / log (x_old)

hasta que los valores x_new y x_old converjan. Después de aproximadamente 125 iteraciones, obtiene x = 2.944 dentro de un margen de error de 0.02%.

[matemáticas] \ displaystyle \ begin {align} x ^ x & = 24 \\ x \ ln x & = \ ln 24 \\ \ ln xe ^ {\ ln x} & = \ ln 24 \\ \ ln x & = W (\ ln 24) \\ x & = e ^ {W (\ ln 24)} \ aprox 2.944 \ end {align} \ tag * {} [/ math]

Fuerza bruta:

  #include 
 #include 

 int main () {
	 doble x = 0;
	 doble d = 0.1;
	 doble t;
	 hacer{
		 hacer{
			 t = pow (x, x);
			 x + = d;
		 } while (t <24.0);
		 d / = 10.0;
		 hacer{
			 t = pow (x, x);
			 x - = d;
		 } while (t> 24.0);
		 d / = 10.0;
	 } while (d> 1e-8);
	 printf ("% f \ n", x);
 } // resultado: 2.943622