¿Cómo encuentra una computadora o una calculadora la raíz cúbica, la raíz cuadrada, etc. de un número?

Para raíces cuadradas, el método de división y promedio funciona:

Foro de Matemáticas – Pregúntele al Dr. Math

Dos iteraciones que proporcionan la respuesta correcta para la raíz cuadrada de 2 a 5 decimales.

También funciona para raíces en cubos, y convergerá a la respuesta correcta más rápido si no calcula promedios simples e igualmente ponderados, sino que pondera los resultados que se promediarán por cuán cerca reproducen el valor deseado (quizás linealmente). Esto implica el cálculo de la suma.

Como otros han mencionado, existe el método Newton-Raphson, que en aplicación equivale a:

Raíz cuadrada

  1. Comience con un valor de inicio positivo arbitrario x . Cuanto más cerca de la raíz cuadrada de a , menos iteraciones serán necesarias para lograr la precisión deseada.
  2. Reemplace x por el promedio ( x + a / x ) / 2 entre x y a / x .
  3. Repita desde el paso 2, utilizando este promedio como el nuevo valor de x .

Es decir, si una suposición arbitraria para √ a es x , y x_ ( n + 1) = ( x_ n + a / x_ n ) / 2, entonces cada x es una aproximación de √ a que es mejor para n grande que para pequeño n .

Si a es positivo, la convergencia es cuadrática, lo que significa que al acercarse al límite, el número de dígitos correctos se duplica aproximadamente en cada próxima iteración. Si a = 0, la convergencia es solo lineal.

Para raíces cúbicas, equivale a:

raíz cúbica

El método simplemente promedia tres factores elegidos de manera que

en cada iteración

Es posible que desee analizar el algoritmo de Newton.

Estoy en una PC para poder expandirme ahora.

Debe familiarizarse con el concepto de derivada, que es realmente una forma de “pendiente local”. Debe aceptar (puede encontrar pruebas en línea) que la derivada de [math] x ^ a [/ math] es [math] ax ^ {a-1} [/ math]. Voy a usar este conocimiento … ahora

El algoritmo de Newton comienza con una aproximación [matemática] x_0 [/ matemática]. Siempre que la derivada sea distinta de cero (si lo es, mueva su punto de partida en consecuencia; muévase cuesta abajo usted mismo) puede encontrar una mejor aproximación de la solución resolviendo una ecuación lineal: la línea tiene la misma pendiente que la derivada en el punto de aproximación y los valores se superponen. Resolver este lineal debería dar una mejor aproximación de la solución para la ecuación real.

Ahora queremos resolver una ecuación de la forma [matemática] x ^ a = y [/ matemática] (para obtener una raíz a-ésima; supongo que es mayor que 1, aunque algo positivo debería funcionar bien), que es lo mismo que [ matemáticas] x ^ ay = 0 [/ matemáticas]. La derivada es [math] ax ^ {a-1} [/ math]. La aplicación del algoritmo le da una secuencia [matemática] x_0 = 0 [/ matemática] (digamos; siempre puede ajustar esto), [matemática] x_ {i + 1} = x_i- \ frac {f \ left (x_i \ right) } {f ‘\ left (x_i \ right)} = x_i- \ dfrac {x_i ^ ay} {x_i ^ {a-1}} [/ math].

Para ampliar la respuesta de Paul, es posible que desee analizar el método de Newton.

La idea básica es que si está tratando de resolver [matemática] f (x) = 0 [/ matemática], y tiene una aproximación razonable [matemática] x_0 [/ matemática], puede usar la aproximación lineal de [matemática] f (x_0 + \ delta x) = f ‘(x_0) \ delta x + f (x_0) [/ math] para encontrar una mejor aproximación. Si configura [math] f (x_0 + \ delta x) = 0 [/ math] y resuelve [math] \ delta x = – \ frac {f (x_0)} {f ‘(x_0)} [/ math], puede obtener [matemáticas] x_1 = x_0 + \ delta x [/ matemáticas] como una mejor aproximación.

Repita ese proceso varias veces y podrá obtener rápidamente una buena aproximación.

Por ejemplo, si queremos calcular [math] \ sqrt (5) [/ math], podemos usar la función [math] f (x) = x ^ 2 – 5 [/ math] y resolver [math] f (x) = 0 [/ matemáticas]. Usando [math] x_0 = 2 [/ math] y [math] f ‘(x) = 2x [/ math], obtienes

[matemáticas] x_1 = x_0 – \ frac {x_0 ^ 2-5} {2x_0} = 2 – \ frac {-1} {4} = 2.25 [/ matemáticas]

[matemáticas] x_2 = x_1 – \ frac {x_1 ^ 2 – 5} {2x_1} = 2.25 – \ frac {5.0625 – 5} {4.5} = 2.25-0.01389 = 2.23611 [/ matemáticas]

El valor real de [math] \ sqrt {5} [/ math] es aproximadamente 2.23607, por lo que después de dos iteraciones la solución está muy cerca, aproximadamente 1 parte en 200,000 de descuento. La próxima iteración estará aún más cerca. En general, el número de decimales exactos se duplica con cada iteración.

Las raíces cúbicas se manejan de manera similar. Para calcular [math] \ sqrt [3] {10} \ aprox 2.15443 [/ math], usaría [math] f (x) = x ^ 3 – 10, f ‘(x) = 3x ^ 2 [/ math ], y aplique el mismo método (usemos [math] x_0 = 3 [/ math]:

[matemáticas] x_1 = x_o – \ frac {x_0 ^ 3-10} {3x ^ 2} = 3 – \ frac {17} {27} \ aprox 2.3703 [/ matemáticas]

[matemáticas] x_2 = x_1 – \ frac {x_1 ^ 3-10} {3x ^ 2} \ aprox 2.3703 – \ frac {3.3171} {16.8550} = 2.17350 [/ matemáticas]

Después de dos iteraciones, hay casi 2 decimales correctos, y después de dos más que deberían estar cerca de 8.

El método de Newton generalmente converge rápidamente, pero requiere una “buena” aproximación inicial. Para raíces simples, casi cualquier aproximación es “buena”, pero para funciones más complicadas, puede ser más difícil. El artículo de Wikipedia al que me vinculé tiene mucha más información e indicaciones para obtener más información.

Puede encontrar las soluciones numéricas para una amplia gama de funciones utilizando el método de Newton, siempre que conozca la derivada de su función. Si no, o la función no tiene una derivada en ese rango, puede usar el método Secante.

En el caso de las raíces, el método de Newton está bien y trataré de explicarlo aquí:

Imagine que desea calcular [math] \ sqrt {2} [/ math]. Entonces, en realidad estás tratando de resolver [matemáticas] x = \ sqrt {2} \ rightarrow x ^ 2 = 2 [/ matemáticas].

[matemáticas] x ^ 2 = 2 \ flecha derecha x ^ 2-2 = 0 [/ matemáticas]

Así que vamos a definir [matemáticas] f (x) = x ^ 2-2 [/ matemáticas] e intentamos encontrar su raíz con el método de Newton.

El método de Newton es el siguiente :

1. Adivina la raíz y llámalo [math] x_0 [/ math]

2. Siga el siguiente proceso hasta que obtenga su respuesta con la precisión que desea:

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

Entonces, para [matemáticas] f (x) = x ^ 2-2 [/ matemáticas]:

[matemáticas] f ‘(x) = 2x [/ matemáticas]

El método de Newton en este caso sería [matemáticas] x_ {n + 1} = x_n- {x_n ^ 2-2 \ over 2x_n} [/ matemáticas]

Supongamos que nuestra primera suposición es 1, entonces [math] x_0 = 1 [/ math] y:

[matemáticas] x_1 = 1- {1 ^ 2-2 \ más de 2 \ veces 1} = 1.5 [/ matemáticas]

[matemáticas] x_2 = 1.5- {1.5 ^ 2-2 \ más de 2 \ veces 1.5} = 1.41666 [/ matemáticas]

[matemática] x_3 = 1.41666- {1.41666 ^ 2-2 \ over 2 \ times 1.41666} = 1.414215 [/ math]

Con solo 3 pasos hemos alcanzado una precisión de 5 puntos decimales.

  • Un ejemplo para la raíz cúbica :

[matemáticas] x = \ sqrt [3] {2} \ flecha derecha x ^ 3 = 2 [/ matemáticas]

[matemáticas] f (x) = x ^ 3-2 [/ matemáticas]

[matemáticas] f ‘(x) = 3x ^ 2 [/ matemáticas]

[matemáticas] x_ {n + 1} = x_n- {x_n ^ 3-2 \ over 3x ^ 2_n} [/ matemáticas]

Deje [math] x_0 = 1 [/ math]

[matemáticas] x_1 = 1.33333333333333 [/ matemáticas]

[matemáticas] x_2 = 1.26388888888889 [/ matemáticas]

[matemáticas] x_3 = 1.25993349344998 [/ matemáticas]

[matemáticas] x_4 = 1.25992105001777 [/ matemáticas]

Con solo 4 pasos hemos alcanzado una precisión de 7 puntos decimales (Gracias Angie Segura por señalar el error que cometí en el proceso).

  • Un ejemplo un poco más complicado para encontrar la solución para ([math] \ sin_x + \ cos_x = \ sqrt {x} [/ math])

[matemáticas] \ sin_x + \ cos_x = \ sqrt {x} \ rightarrow \ sin_x + \ cos_x- \ sqrt {x} = 0 [/ matemáticas]

[matemáticas] f (x) = \ sin_x + \ cos_x- \ sqrt {x} [/ matemáticas]

[matemáticas] f ‘(x) = \ cos_x- \ sin_x- {1 \ over 2 \ sqrt {x}} [/ matemáticas]

[matemáticas] x_ {n + 1} = x_n – {\ sin_x + cos_x- \ sqrt {x} \ over \ cos_x- \ sin_x- {1 \ over 2 \ sqrt {x}}} [/ math]

Deje [math] x_0 = 1 [/ math]

[matemáticas] x_1 = 1.47652048902019 [/ matemáticas]

[matemáticas] x_2 = 1.38098724894177 [/ matemáticas]

[matemáticas] x_3 = 1.37734243869716 [/ matemáticas]

[matemáticas] x_4 = 1.37733687713611 [/ matemáticas]

Con solo 4 pasos hemos alcanzado una precisión de 10 puntos decimales.

Para mayor precisión, puede continuar el proceso.

*** *** ***

Hay otra forma de calcular la enésima raíz. Como sabe, exp (x) e ln (x) están predefinidos en la mayoría de los compiladores e intérpretes que utilizan expansiones de la serie Taylor. Por lo tanto, puede usarlos para encontrar la raíz enésima para N real distinto de cero (no necesariamente entero) de la siguiente manera:

[matemáticas] \ sqrt [N] {x} = x ^ {{1 \ over N}} = e ^ {\ ln {x ^ {1 \ over N}}} = e ^ {{1 \ over N} \ ln x} = e ^ {\ ln x \ sobre N} [/ math]

Es obvio que este es un caso especial que solo funciona para calcular la enésima raíz. Para otras ecuaciones no lineales como mi tercer ejemplo, me temo que está atascado con el método de Newton y necesita elegir sus conjeturas iniciales para evitar los problemas mencionados (mínimos y máximos locales) por caso, o idear un algoritmo que si f ‘(x) = 0 en el proceso, comience el proceso desde arriba con otra aproximación inicial.

*** *** ***

Solo por mencionarlo, el método Secante utiliza 2 conjeturas iniciales y no necesita la derivada para su cálculo, pero converge más lentamente que el método de Newton.

El método es como el de Newton:

1. Tome 2 conjeturas iniciales.

2. Repita el siguiente proceso hasta llegar a la precisión requerida:

[matemáticas] x_n = x_ {n-1} -f (x_ {n-1}) {x_ {n-1} -x_ {n-2} \ over f (x_ {n-1}) – f (x_ {n-2})} [/ matemáticas]

Básicamente quiero saber el algoritmo computacional para la solución de ecuaciones no lineales. ¿Cómo funciona un compilador o intérprete o una calculadora que trabaja en el método iterativo genera valores iniciales o conjeturas? Puede haber el problema de dividir por cero, el ciclo de la raíz alrededor de máximos y mínimos locales, etc. ¿Cómo es que siempre encuentra la mejor suposición inicial?

Hay un método simple e inteligente, en el que simplemente adivinas, calculas la pendiente de dónde estás y dónde quieres estar, luego usas extrapolación lineal para hacer una mejor suposición y repites este proceso. La curva de raíz cuadrada se acerca bastante a una línea recta a medida que te acercas, por lo que la línea recta aproximada se vuelve bastante buena después de algunos intentos, por lo que solo necesitas repetir el procedimiento como 5 veces y tienes una aproximación muy cercana .