Muchos son los casos en los que en cine y en televisión se han cometido errores relacionados con la Ciencia por mala (o nula) documentación (como ejemplos pueden servir la confusión entre logaritmo y algoritmo en la serie Castle de la que hablamos en el blog hace un tiempo y la interesante charla de Manu Arregi en Naukas13 sobre errores de astronomía en el cine). Parece que poco a poco los responsables de series y películas se preocupan más por la rigurosidad científica» (Breaking Bad es un gran ejemplo de ello y Gravity parece que lo hace bien, aunque con algunos errores o licencias), pero por desgracia seguirá habiendo errores por mala documentación (y, por tanto, fáciles de resolver). Hoy hablaremos, entre otras cosas, sobre uno de ellos en la película 21 Blackjack.

El tema en cuestión aparece en el siguiente vídeo (en el que, por cierto, también se habla del problema de Monty Hall):

Pero antes de explicar dicho error vamos a comentar un poco qué es el método de Newton-Raphson y a hablar sobre la historia de dicho método.

Encontrar las soluciones de una cierta ecuación es uno de los problemas más importantes de las matemáticas. En cualquier momento en nuestro estudio podemos encontrarnos una ecuación de la cual necesitamos saber sus soluciones. Pero hay un grave problema relacionado con esto: no tenemos métodos que nos permitan obtener las soluciones de todas las ecuaciones que nos pueden aparecer. Podemos resolver ciertas ecuaciones algebraicas (no hay fórmulas para las de grado 5 y superior) y algunas exponenciales, logarítmicas o trigonométricas, pero no todas. Por ejemplo, no hay métodos que nos den las soluciones exactas de esta ecuación:

x \cdot 2^x=1

¿Qué podemos hacer entonces? Pues no nos queda otra que buscar aproximaciones de las soluciones. Es decir, buscar números que aunque no sean las soluciones exactas sí que sean lo suficientemente aproximados a ellas como para que nos puedan servir en nuestro problema. Y eso es lo que hace nuestro método.

El método de Newton-Raphson es un método iterativo con el que podemos encontrar aproximaciones de soluciones de ecuaciones no lineales. El método parte de un valor inicial que se introduce en una expresión relacionada con la ecuación, obteniendo así un resultado. Ese resultado se introduce en la misma expresión, obteniendo un nuevo resultado, y así sucesivamente. Si la elección del valor inicial es buena, cada vez que introducimos unos de los resultados obtenidos en esa expresión (es decir, cada vez que realizamos una iteración del método) el método nos proporciona una aproximación a la solución real mejor que la que tuviéramos anteriormente. Vamos a ponerle símbolos matemáticos al asunto:

Dada una función f(x) derivable en un intervalo [a,b ] en el que f tenga una raíz m y dado un valor real s_0 cercano a dicha raíz, el método iterativo

s_{n+1}=s_n-\cfrac{f(s_n)}{f^\prime (s_n)}

converge a esta raíz m de la función inicial (es decir, a la solución de f(x)=0 que pertenece al intervalo [a,b ]).

O sea que la cosa consiste en elegir bien s_0, meterlo en esa expresión para obtener s_1, meter después s_1 obteniendo así s_2, y así sucesivamente. Y la cosa es que cada s_k que obtenemos en mejor aproximación a una solución de f(x)=0 que los valores obtenidos antes. Bien, ¿no? La fórmula necesaria para aplicar el método es sencilla y las operaciones nos las puede hacer una máquina. Pero queda un «pequeño» detalle: ¿cómo elegimos s_0?

El método de Newton-Raphson tiene un problema: no tenemos un teorema de convergencia global del método. Su convergencia depende de la elección inicial de s_0. Si no elegimos bien ese valor inicial, no tendremos asegurado que los sucesivos resultados obtenidos mediante el método sean de verdad buenas aproximaciones de la solución. Por tanto la elección de s_0 es fundamental. Por ello vamos a dar condiciones para que en el intervalo en cuestión exista una única solución de nuestra ecuación y además el método converja a ella:

Debemos partir de una función f(x) de clase \mathcal{C}^2 en el intervalo [a,b ] (es decir, al menos dos veces derivable en dicho intervalo y con segunda derivada continua en él). Entonces:

1.- En principio debemos escoger un intervalo en el que f(x)=0 cumpla el teorema de Bolzano para poder asegurar así que hay al menos una raíz en dicho intervalo. Es decir, f(x) debe ser continua en dicho intervalo (como le exigimos que sea derivable esta condición no da problemas) y debe cumplirse también que f(a) y f(b) tengan signos distintos.

2.- Debe cumplirse que la primera derivada de f sea distinta de cero en todo el intervalo.

3.- También se debe cumplir que la segunda derivada de f no cambie de signo en dicho intervalo (es decir, que saa siempre positiva o siempre negativa en [ a,b ]).

4.- Con todo esto, es claro que se cumple que

\begin{matrix} f(a) \cdot f^{\prime  \prime} (a) >0, \mbox{ o que} \\ f(b) \cdot f^{\prime  \prime} (b) >0 \end{matrix}

Eligiendo como s_0 el extremo del intervalo que cumpla que ese producto es positivo tenemos asegurado que el método converge a la única solución de la ecuación en [ a,b ].

Vamos a ver un ejemplo de aplicación de este método. Utilizaremos la ecuación para la que comentamos antes que no teníamos método de resolución exacta: x \cdot 2^x=1:

Nuestra función será f(x)=x \cdot 2^x-1. Como la función es derivable infinitas veces en todo \mathbb{R} no tendremos problemas a la hora de exigirle que sea de clase \mathcal{C}^2 en el intervalo que escojamos.

1.- Vamos con el intervalo. Necesitamos que la función tome valores con signos contrarios en los extremos. Una fácil y rápida comprobación nos lleva a que f(0)=-1 < 0 y f(1)=1 > 0, por lo que, según el teorema de Bolzano, nuestra función tiene al menos una raíz en el intervalo [0,1 ].

2.- La primera derivada de nuestra función es

f^\prime (x)=2^x+x 2^x Ln(2)=2^x(1+x Ln(2))

Como 2^x >0 para todo valor real de x, para que esa expresión sea nula debe ser 1+x Ln(2)=0, de donde despejando obtenemos que

x=\cfrac{-1}{Ln(2)}

que al ser negativo no pertenece al intervalo [ 0,1 ]. Por tanto, f^\prime (x) es distinta de cero en todo el intervalo.

3.- La derivada segunda es

f^{\prime \prime} (x)=2^x Ln(2) (2+x Ln(2))

El primer factor, 2^x, es siempre positivo. El segundo, Ln(2), es una constante positiva. Y el tercer factor, 2+x Ln(2), es positivo para todo valor del intervalo [ 0,1 ]. Esto nos lleva a que la segunda derivada de f es positiva en todo el intervalo [ 0,1 ] y, en consecuencia, no cambia de signo en todo el intervalo.

4.- Ahora:

\begin{matrix} f(0) \cdot f^{\prime \prime} (0)=-1 \cdot 2 Ln(2) < 0 \\ f(1) \cdot f^{\prime \prime} (1)=1 \cdot 2 Ln(2) (2+Ln(2)) > 0 \end{matrix}

Por tanto, tomando s_0=1 tenemos asegurada la convergencia del método a la solución de la ecuación inicial.

Calculemos ahora algunas iteraciones para ver qué resultados parciales vamos obteniendo:

\begin{matrix} s_0=1 \\ s_1=s_0-\cfrac{f(s_0)}{f^\prime (s_0)}=0.704691945425 \ldots \\ s_2=s_1-\cfrac{f(s_1)}{f^\prime (s_1)}=0.643475152316 \ldots \\ s_3=s_2-\cfrac{f(s_2)}{f^\prime (s_2)}=0.641188814965 \ldots \\ s_4=s_3-\cfrac{f(s_3)}{f^\prime (s_3)}=0.641185744510 \ldots \end{matrix}

Teniendo en cuenta que una aproximación de la solución a 20 decimales es

s=0.64118574450498598449

la aproximación obtenida con cuatro iteraciones del método no está nada mal.


Después de la descripción del método y del ejemplo que hemos hecho volvamos al vídeo de 21 Blackjack. En él, como habéis visto, se comenta que Raphson fue el primero que publicó el método y Newton se lo apropió indebidamente (vamos, que lo robó). Pero esto no es del todo cierto. Vamos a comentar cómo fue la historia en realidad.

Cierto es que Joseph Raphson fue el primero en publicar el método en 1690 en su libro Analysis Aequationum Universalis, y que el de newton se publicó unos años después de su muerte, en 1736 (por lo que Raphson lo publicó casi 50 años antes). Pero se sabe que Newton lo había escrito en 1671 (y por tanto antes de la publicación de Raphson), aunque aplicado exclusivamente a aproximación de raíces de polinomios (el de Raphson era más general). A todo esto hay que añadir un detalle: Raphson fue una de las pocas personas a las que Newton le permitía ver sus trabajos matemáticos (de hecho se encargó de traducir algunos de esos trabajos matemáticos de Newton del latín al inglés).

O sea que Newton describe su método de aproximación de raíces de polinomios y unos años después Raphson, que tenía acceso a los trabajos de Newton, publica su método válido también para el resto de funciones. Sería entonces razonable pensar que Raphson partió del método de Newton para desarrollar el suyo, ¿verdad? Pues eso es lo que históricamente está más aceptado. Así que nada de robo de Newton.

Por todo ello, en muchos sitios se conoce al método como método de Newton-Raphson, aunque en otros muchos lugares se le llama simplemente método de Newton, honrando solamente a la primera persona que trabajó en él.


Fuentes y más información:


Esta es mi segunda aportación a la Edición 4.1231056 del Carnaval de Matemáticas, que en esta ocasión acoge nuestro amigo José Manuel López Nicolás en su blog Scientia.

Print Friendly, PDF & Email