Está en la página 1de 24

32

Tema 1

Ceros de una función

Con el nombre de ceros (o raíces) de una función f (x) designamos aquellos valores del argumento x
que satisfacen la ecuación
f (x) = 0 . (1.1)
En ocasiones, esta ecuación puede resolverse analíticamente, pero otras veces no, tal como se puede com-
probar con los ejemplos siguientes:1
x−sin x = 0 , x−cos x = 0 , x−e−x = 0 , k tan x−tanh x = 0 ,
k cos x+sech x = 0 .
(1.2)
En los casos en que no se puede resolver analíticamente la solución de una ecuación, hay que recurrir a
procedimientos numéricos para conocer una obtener aproximada (con la precisión deseada).
El objetivo de este tema es presentar métodos numéricos para calcular el valor (o valores) de x que
hacen que una función f (x) se anule. La Fig. 1.1 ilustra “artísticamente” este objetivo.

Figura 1.1: El objetivo de este tema está resumido, de forma artística, en la decoración de la fachada
de un taller de bicicletas en el casco antiguo de Atenas. Queda en el aire la pregunta de por qué se
escogió esta imagen para decorar un taller de bicicletas.

Nos restringiremos a buscar sólo los ceros reales de funciones que dependen de una sola variable (es
decir, problemas unidimensionales). Aunque los métodos que presentaremos son generales, para hallar
los ceros de polinomios es necesario tomar algunas precauciones para evitar la propagación peligrosa de
errores. En este tema no estudiaremos los métodos específicos para obtener los ceros de polinomios.
Resolver numéricamente la ecuación f (x) = 0 consiste en dar, dentro de unos límites de error determi-
nados, el valor (o valores) de x que satisface(n) dicha ecuación. Los pasos a seguir para obtener dicho(s)
valor(es) son los siguientes:
1o .- Se propone una estimación aproximada x0 para el valor de x que satisface la ecuación f (x) = 0;
el valor aproximado x0 se suele determinar mediante un método gráfico (Fig. 1.2).
1 Las dos últimas ecuaciones surgen cuando se analizan ciertos tipos de vibraciones.

33
34 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

2o .- Se mejora la estimación anterior del cero mediante un algoritmo iterativo, que proporcione el valor
xk a partir de valores anteriores (xk−1 ,...).
3o .- Se finaliza el proceso en la iteración k cuando se ha obtenido el cero buscado con una determinada
precisión :2
|xk − xk−1 | ≤  (criterio de error absoluto) , (1.3)

xk − xk−1
xk−1 ≤  (criterio de error relativo) . (1.4)

Figura 1.2: Representación esquemática de la obtención del cero de la función f (x). En el primer
paso (Izq.) se propone una solución x0 próxima al punto donde la función f (x) corta al eje X. En el
segundo paso (Der.) se obtiene la secuencia de valores aproximados x1 , x2 , . . . , xk , con la esperanza
de que converjan hacia la solución x̄.

Así pues, salvo excepciones, el procedimiento a seguir en la práctica será siempre el mismo: (1) Es-
coger el valor inicial x0 , (2) establecer la precisión  (relativa o absoluta), (3) fijar el número máximo de
iteraciones a ejecutar, kmax , para que el cálculo dure un tiempo razonable, sin eternizarse, y (4) proponer el
algoritmo que se empleará en la resolución. Designaremos por k (| xk − xk−1 | o | xk − xk−1 | /xk−1 ) el
error (absoluto o relativo) en la iteración k.
Para simplificar la escritura, en las expresiones que siguen usaremos el error absoluto, aunque el criterio
del error absoluto o relativo lo decidirá el usuario, según el tipo de problema que esté resolviendo. En
muchas ocasiones conviene emplear un criterio de error relativo, en lugar del criterio de error absoluto;
pero si el denominador es muy próximo a cero, puede haber problemas.3
Antes de aplicar algún algoritmo para obtener los ceros de una función, hay que asegurarse de que
dicha función posee tales ceros. Por ejemplo, no hay ningún algoritmo que permita obtener los ceros de las
funciones f (x) = ex − x o f (x) = x2 + 1, porque no tienen cero reales, como se aprecia en la Fig. 1.3.
En las siguientes secciones se discuten algunos de los algoritmos más empleados para obtener los ceros
reales de una función.

1.1. Método de sustitución repetida


El método de sustitución repetida (también denominado método del punto fijo o de aproximaciones su-
cesivas) se presenta como introducción a los métodos iterativos, que se emplearán en numerosas ocasiones,
pero su utilidad es muy limitada, por no decir nula, por lo que no se aconseja su utilización.
Para hallar los valores de x que satisfacen f (x) = 0, se reescribe esta ecuación como x = g(x). Se
parte de un valor inicial x0 y luego se obtiene la secuencia de valores x1 , x2 , x3 , . . . mediante el proceso
iterativo
xk+1 = g(xk ) , (k = 0, 1, 2 . . .) . (1.5)
Cuando k ≤  finaliza la iteración y se toma como solución x ∼
= xk , donde k es el número de iteraciones
empleadas para satisfacer el criterio de convergencia.
2A
este valor se le suele denominar “tolerancia”, aunque hay que indicar si se refiere al error absoluto o relativo.
3 Para que
tengan el mismo peso las dos últimas iteraciones que se han realizado se puede usar el siguiente criterio de error relativo:
| xk − xk−1 | /(| xk | + | xk−1 |) ≤ /2.
F ÍSICA COMPUTACIONAL , Ceros de una función 35

Figura 1.3: Representación de las funciones f (x) = ex − x y f (x) = x2 + 1. Puede comprobarse


que ninguna de ellas se cruza con el eje de las x, por lo que no procede buscar sus ceros, ya que no
los tienen.

En determinadas funciones, el método de sustitución repetida converge para algunos de sus ceros, pero
diverge para otros; también puede suceder que el algoritmo no converja al resultado correcto si se parte de
un valor inicial u otro. La Fig. 1.4 ilustra el cálculo de los ceros de la función f (x) = ex/2 /2 − x por el
método de sustitución repetida. A partir del valor xk se traza una recta vertical hasta la curva g(x), desde
la cual se traza una línea horizontal hasta la recta y = x. Esto proporciona el valor xk+1 . A partir de xk+1
se repite el proceso anterior (línea vertical hasta la curva g(x) y, desde allí, línea horizontal hasta la recta
y = x). Este procedimiento gráfico recuerda la forma de una escalera o de una espiral (tal como puede
verse en la Fig. 1.4 o en el ejercicio 1.1, respectivamente).

Figura 1.4: Al tratar de calcular los ceros de la función f (x) = ex/2 /2 − x por el método de
sustitución repetida, las iteraciones convergen hacia uno de los ceros (xA = 0.7148), mientras que
divergen cuando se intenta obtener el otro cero (xB = 4.3066). Para más detalles, se puede consultar
el ejercicio 1.2.

Los dos ceros de f (x) = ex/2 /2 − x son xA = 0.7148 y xB = 4.3066, pero el método de sustitución
repetida sólo proporciona el primer cero (cuando el valor x0 para iniciar el cálculo satisface −∞ < x0 <
xB ); pero si x0 > xB , las iteraciones divergen y no se puede obtener el segundo cero. Por lo tanto, el
método de sustitución repetida no es recomendable para la obtención de ceros de una función.
36 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

Las iteraciones de este método sólo convergen en determinadas circunstancias;4 en particular, la secuen-
cia de iteraciones convergerá si |g 0 (x)| < 1 en las proximidades del cero buscado. Esta condición equivale
a decir que la curva g(x) tiene menor pendiente que la recta x en las proximidades de la solución buscada,
lo cual asegura que xk+1 se encuentra más próximo al cero buscado que xk .
Si xk es alternativamente mayor y menor que el cero buscado, la iteración convergerá más rápidamente
si se hace el cambio5 xk+1 = (xk + xk+1 )/2, pero sólo cuando g 0 (x) < −1/3. Para mayores valores de
g 0 (x) el método explicado en el párrafo anterior converge más rápidamente que el que se acaba de comentar.
Sin embargo este segundo método garantiza la convergencia de las iteraciones si −3 < g 0 (x) < 1, es decir,
en un rango mayor de pendientes de g(x) que en el método precedente.

1.2. Método de bisección


Para aligerar la escritura, en lo que sigue, usaremos la notación fk = f (xk ).
Si f (x) es una función continua en un intervalo cerrado [xL , xR ], tal que fL = f (xL ) y fR = f (xR )
tienen signos opuestos, la función f (x) se anula (al menos una vez, o un número impar de veces) en dicho
intervalo.6
Para obtener el cero de la función f (x) se parte de dos valores de x entre los que se halle el cero de la
función (pero que no contenga otros ceros); por ejemplo, se comienza con xL y xR , tales que fL fR < 0.
A partir de estos dos valores de x se calcula un punto intermedio xM , en el cual la función toma el valor
fM = f (xM ).
Tras obtener el valor de xM , se va actualizando el valor de xL o de xR , de manera que si fL fM < 0, se
toma xR = xM ; en caso contrario, se toma xL = xM . De esta forma se va acotando (“acorralando”) el cero
buscado, hasta que la diferencia entre los extremos del intervalo que acota el cero es menor o igual que la
precisión  requerida. Por lo tanto, la iteración finaliza cuando |xR − xL | ≤ .
La Fig. 1.5 ilustra el procedimiento para acotar el cero entre dos valores cada vez más próximos.7

Figura 1.5: El método de bisección comienza el proceso iterativo a partir de dos valores xL y xR tales
que fL fR < 0. La iteración consiste en hallar un nuevo punto intermedio entre los dos anteriores,
que puede obtenerse como el punto medio (Izq.) xM = (xL + xR )/2, o como la posición falsa (Der.)
xFP = (xR fL − xL fR )/(fL − fR ), aunque este último procedimiento no lo usaremos porque es muy
parecido al método de la secante (las diferencias se discuten en Numerical recipes: §9.2).

En el método de bisección, propiamente dicho, la iteración se realiza tomando el punto medio del
4 J. M. Blair, Some practical aspects of finding the roots of equations using fixed-point iteration with a computer program, American

Journal of Physics 60 (1990) 929.


5 E. T. Whittaker y G. Robinson, The Calculus of Observations (Blackie and Son, London, 1944), 4th ed., pp.78-131; citado en

J. M. Blair, Some practical aspects of finding the roots of equations using fixed-point iteration with a computer program, American
Journal of Physics 60 (1990) 929.
6 Los subíndices L y R indican left (izquierda) y right (derecha), ya que los puntos x y x se hallan a la izquierda y a la derecha,
L R
respectivamente, de la solución buscada.
7 DeVries usa el método de “posición falsa” (regula falsi) para dar el punto intermedio o el punto final; este método es muy

parecido al de la secante (tal como se discute al hablar de este último método), aunque hay alguna sutil diferencia. Para una discusión
más detallada puede consultarse Numerical recipes: §9.2. De todos modos, nosotros no discutiremos el método de la posición falsa;
para más información sobre este método puede consultarse http://mathworld.wolfram.com/MethodofFalsePosition.html.
F ÍSICA COMPUTACIONAL , Ceros de una función 37

intervalo [xL , xR ] (Fig. 1.5 Izq.):


xL + xR
xM = . (1.6)
2
En el método de la posición falsa la iteración conduce al punto en que la línea secante desde (xL , f (xL ))
hasta (xR , f (xR )) interseca el eje X (Fig. 1.5 Der.):

xR fL − xL fR
xFP = . (1.7)
fL − fR

Puede demostrarse esta relación mediante la semejanza de triángulos ilustrada en la Fig. 1.6:

fL −fR xR fL − xL fR
= ⇒ xFP = . (1.8)
xFP − xL xR − xL fL − fR

En el caso de funciones continuas, el método de bisección (o sus variantes) siempre converge hacia un
valor concreto cuando se parte de valores xL y xR entre los cuales hay un único cero.

Figura 1.6: Los dos triángulos de la figura son semejantes, por lo que coinciden los cocientes de sus
catetos respectivos. Nótese que el cateto vertical derecho tiene longitud −fR , puesto que fR < 0, de
acuerdo con la figura.

Método de barrido y acotamiento


En esencia, este método equivale al de bisección, pero en lugar de dividir la región en dos subintevalos,
ahora se divide la región de búsqueda en varios subintervalos (diez, por ejemplo).
Para hallar los ceros de f (x) = 0 se propone un valor x0 a la izquierda del cero buscado y se calcula
f (x0 ). Se va incrementando x0 en cantidades fijas ∆x, de manera que xk = x0 + k∆x, y se evalúa la
secuencia fk para k ≥ 1. Cuando fk fk+1 < 0 (es decir, cuando la función cambia de signo respecto del
valor precedente), se vuelve a comenzar de nuevo el procedimiento, pero ahora se parte de x0 = xk y se
toman incrementos ∆x menores que el anterior (por ejemplo, ∆x/10).
Este proceso se repite sucesivamente hasta que se tomen incrementos ∆x tan pequeños como la preci-
sión requerida para determinar el cero.
Un inconveniente del método de barrido y acotamiento es que puede realizarse la búsqueda en el sentido
equivocado. También puede haber varios ceros muy próximos y los incrementos que damos a la variable x
sean tales que pasemos por encima de los ceros sin darnos cuenta.

1.3. Método de Newton-Raphson (o de la tangente)


Este método se usa cuando la función f (x) es derivable en el intervalo donde se halla el cero busca-
do. Para aplicar el método de Newton-Raphson conviene que la derivada sea una expresión cómoda de
programar.
La función f (x) tiene una pendiente definida (y, por tanto, una única línea tangente en cada punto).
Aproximaremos la curva f (x) en el entorno de un punto (xk , f (xk )) por una línea recta que pase por dicho
punto con la misma pendiente que la curva: f 0 (xk ). El valor de x en el que se anula la línea recta es una
aproximación del cero de f (x). Por este motivo, el método de Newton-Raphson también se denomina
38 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

método de la tangente, pues extrapola la derivada local para hallar un valor estimado del cero, tal como se
ilustra en la Fig. 1.7.
Este método funciona bien si se puede aproximar la curva mediante una línea recta cerca del cero
buscado, es decir, si la función f (x) tiene un comportamiento lineal cerca del cero.

Figura 1.7: Método de Newton-Raphson. La derivada (tangente) de la función en el punto xk conduce


al punto xk+1 ; la derivada de la función en este punto lleva al punto xk+2 , y así sucesivamente, hasta
aproximarnos al cero buscado x̄ con la precisión deseada.

Si f 0 (xk ) es la pendiente de la curva f (x) en el punto xk , la ecuación de la recta que pasa por el punto
(xk , f (xk )) es
y = f (xk ) + f 0 (xk )(x − xk ) . (1.9)
El valor de x donde esta recta se cruza con el eje X se obtiene haciendo y = 0 en la ecuación anterior:

f (xk )
0 = f (xk ) + f 0 (xk )(x − xk ) ⇒ x = xk − . (1.10)
f 0 (xk )

Esta expresión conduce al siguiente proceso iterativo para calcular xk+1 a partir de xk :

fk
xk+1 = xk − . (1.11)
fk0

Si se parte de un valor inicial x0 , este método genera una secuencia de valores xk que convergen al cero
x̄ si se supone que f (x) es localmente lineal cerca de x̄.
Pueden surgir problemas cuando xk está cerca de un valor extremo (máximo o mínimo), donde f 0 (x) '
0, y también cuando se busca un cero múltiple, pues en este caso se cumple que f 0 (x) = 0.8 La Fig. 1.8
ilustra dos casos patológicos en los que el método de Newton-Raphson no converge. En el ejercicio 1.16
también aparecen patologías dependiendo del valor inicial que se emplee para buscar el cero.

1.4. Método de la secante


En este método no es necesario calcular analíticamente la derivada de la función f (x), tal como es
necesario en el método de Newton-Raphson. Este procedimiento es útil cuando la función que ha de anularse
no viene dada por una expresión analítica, como sucede en el caso del método del disparo que se aplica al
resolver ecuaciones diferenciales con condiciones de contorno (vid. Tema 5).
Si se aproxima la derivada de la función f (x) en el punto xk por

f (xk ) − f (xk−1 ) ∼ f (xk ) − f (xk−1 )


f 0 (xk ) = lı́m = , (1.12)
xk →xk−1 xk − xk−1 xk − xk−1
8 Recordemos que si x̄ es un cero de f (x) con multiplicidad m, entonces x̄ es un cero de f 0 (x) con multiplicidad m − 1, lo cual

conduce a que f 0 (x̄) = f 00 (x̄) = · · · = f (m−1) (x̄)=0 y f (m) (x̄) 6= 0.


F ÍSICA COMPUTACIONAL , Ceros de una función 39

Figura 1.8: Dos casos problemáticos para aplicar el método de Newton-Raphson: (Izq.) La secuencia
de puntos {xk } se encuentra un máximo (o mínimo) local, donde la tangente a la función es horizon-
tal, y busca el siguiente punto de la secuencia en el infinito [Numerical recipes: Fig. 9-4-2]. (Der.) La
secuencia de valores {xk } se mete en un bucle no convergente (cerrado) del cual no puede salir. Este
comportamiento se encuentra frecuentemente cuando la función f se obtiene, totalmente o en parte,
mediante interpolación a partir de datos de una tabla; podría haberse evitado esta situación si se parte
de un valor inicial mejor [Numerical recipes: Fig. 9-4-3].

y se sustituye en la ec. (1.11), obtenemos la fórmula recursiva de tres términos:9


xk − xk−1
xk+1 = xk − fk . (1.13)
fk − fk−1

Como vemos, el método de la secante equivale a aproximar la función f (x) mediante la secante que pasa
por la pareja de puntos (xk−1 , fk−1 ) y (xk , fk ). Para comenzar el proceso iterativo ahora es necesario partir
de dos valores iniciales: x0 y x1 .
El método de la secante es muy parecido al de la posición falsa.10 La única diferencia entre ambos
métodos es que el de la secante retiene la estimación más reciente de las previas (Fig. 1.9 Izq.; esto requiere
una elección arbitraria de la primera iteración), mientras que la posición falsa retiene la estimación previa
para la cual el valor de la función tiene signo opuesto al valor de la función en la mejor estimación actual
de la raíz, de manera que los dos puntos continúan acotando la raíz (Fig. 1.9 Der.). Matemáticamente, el
método de la secante converge más rápidamente cerca de una raíz de una función suficientemente continua.
El método de la posición falsa no converge tan rápidamente como el de la secante, pero es más certero.
Al igual que con el método de Newton-Raphson, puede suceder que el método de la secante no converja,
según la forma que tenga la función en la región donde se aplica.

1.4.1. Problemas en la determinación de ceros


En la Fig. 1.10 se ilustran algunos casos patológicos (pues pueden dar problemas) para hallar los ceros
de una función. En las Figs. (a)-(d) se verifica que f (x̄) ≈ 0 y f 0 (x̄) ≈ 0; en ellas podemos encontrarnos
9 Como se calcula el cero de la función f (x) mediante la intersección de la secante y el eje X, también se puede deducir el método
de la secante como sigue. Sean xk−1 y xk dos valores de partida para iniciar el proceso iterativo. La ecuación de la recta secante que
pasa por los puntos (xk−1 , fk−1 ) y (xk , fk ) es
fk − fk−1
y − fk = (x − xk ) ,
xk − xk−1
donde se ha tenido en cuenta que la pendiente de esta recta es (fk − fk−1 )/(xk − xk−1 ). La aproximación al cero buscado es el
valor de x = xk+1 en el que se anula y. Es decir,
fk − fk−1
0 − fk = (xk+1 − xk ) ,
xk − xk−1
de donde se obtiene que
xk − xk−1
xk+1 = xk − fk .
fk − fk−1
10 De hecho, ambos métodos se discuten conjuntamente en [Numerical recipes: §9.2].
40 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

Figura 1.9: (Izq.) En el método de la secante se determina el nuevo punto mediante la intersección
con el eje de abscisas de la recta (trazos discontinuos) que pasa por los dos puntos calculados más
recientemente [Numerical recipes: Fig. 9-2-1]. (Der.) En el método de la posición falsa se determina
el nuevo punto mediante la intersección con el eje de abscisas de la recta (trazos discontinuos) que
pasa por los puntos más recientes que acotan la raíz. En este ejemplo, el punto 1 permanece “activo”
durante muchos pasos [Numerical recipes: Fig. 9-2-2].

problemas porque los errores de redondeo del ordenador pueden asignar un valor f (x) → 0+ o f (x) → 0−
cuando en realidad no es así, y ante un cambio de signo en la función f (x) estaríamos tentados de localizar
un cero de la función.

Figura 1.10: Diversos casos en los que hay que tener especial cuidado a la hora de buscar ceros de
una función. (a) La función f tiene el mismo signo a ambos lados del cero. (b) Si hay dos ceros muy
próximos, la función no cambia de signo si se busca a la izquierda de x̄1 y a la derecha de x̄2 . (c)
La función no llega a anularse, pero su valor es muy próximo a cero. (d) Aquí hay una cero, pero
cuesta ver dónde se encuentra, pues la función difiere muy poco de cero a ambos lados del punto
donde se anula. [(a)-(d) Maron Fig. 2-1-4]. (e) Función patológica con muchos ceros muy próximos,
especialmente los del centro. (f) El cambio de signo de la función en los puntos a y b se debe a que
entre ellos hay una singularidad, no un cero. [(e)-(f) Numerical recipes: Fig. 9-1-1].

1.5. Convergencia de las iteraciones


Los métodos anteriores proporcionan una sucesión de valores . . . , xk−1 , xk , xk+1 , . . . que (presumi-
blemente) converge al valor buscado x̄. La convergencia de la sucesión depende de cómo evolucione con k
el valor absoluto de la diferencia entre dos iteraciones consecutivas:

k = |xk − xk−1 | . (1.14)

El ritmo de convergencia de un método se determina a partir de la relación entre k+1 y k cuando


F ÍSICA COMPUTACIONAL , Ceros de una función 41

Figura 1.11: Ejemplo en el que tanto el método de la secante como el de la posición falsa ejecutarán
numerosas iteraciones antes de llegar al cero verdadero; esta función también presentará dificultades
para otros métodos de hallar ceros de funciones [Numerical recipes: Fig.9-2-3].

k → ∞. Si existe un número m y una constante no nula 0 < C < 1 tal que

lı́m k+1 = Cm


k , (1.15)
k→∞

se dice que la convergencia de la sucesión es de orden m y que C es el error asintótico constante. Para
m = 1, 2 y 3, la convergencia es lineal, cuadrática y cúbica, respectivamente.
Puede encontrarse una discusión detallada sobre el orden de convergencia en [Vázquez et al.: §2.5].

Sustitución repetida
En el caso de que el algoritmo converja, la convergencia es lineal:

k+1 ∼ Ck .

Bisección
La precisión con que se determina un cero viene dada por la diferencia entre los valores de x entre los
cuales se acota la solución: k = |xR − xL |. Tras cada iteración, los límites de la región entre los que está
el cero decrecen en un factor 2. Así pues, la convergencia de este método es lineal, ya que si el error en el
paso k vale k , el error en el paso k + 1 vale11

1
k+1 = k .
2

Newton-Raphson
Supongamos que xk es un valor (muy) próximo al verdadero cero x̄ de la función f (x). El error en la
iteración k es k = x̄ − xk .
Si cambiamos de signo la ec. (1.11) y le sumamos x̄ en ambos términos, podemos escribir

f (xk )
k+1 = k + . (1.16)
f 0 (xk )

Tras desarrollar la función f (x) en serie de Taylor, para el punto xk que está muy próximo a x podemos
escribir:

(x̄ − xk )2 00 2
f (x̄) = f (xk ) + (x̄ − xk )f 0 (xk ) + f (xk ) + ... = f (xk ) + k f 0 (xk ) + k f 00 (xk ) + ... (1.17)
2! 2!
11 [DeVries: final p.50 y principio p.51; Numerical recipes: p.346]
42 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

Si retenemos los tres primeros términos en la ec. (1.17) y tenemos en cuenta que f (x̄) = 0, obtenemos
la siguiente expresión para f (xk ):

2k 00
f (xk ) = −k f 0 (xk ) − f (xk ) . (1.18)
2
Tras sustituir esta expresión en la ec. (1.16), tenemos

2
−k f 0 (xk ) − 2k f 00 (xk ) 2 f 00 (xk )
k+1 = k + 0
=− k 0 . (1.19)
f (xk ) 2f (xk )

Si f 00 /f 0 es aproximadamente constante cerca del cero, entonces en cada paso el error es proporcional al
cuadrado del error en el paso previo:
k+1 = C2k .
Esta forma en la que evoluciona el error se denomina convergencia cuadrática: en cada iteración se duplica
el número de cifras significativas que son exactas.12

Método de la secante
El método de la secante converge más rápidamente que el de bisección pero más lentamente que el de
Newton-Raphson.
√ Puede demostrarse13 que el orden de convergencia del método de la secante es la razón
áurea (1 + 5)/2 = 1.618:
k+1 = C1.618
k . (1.20)

Comprobación práctica del orden de convergencia de los diferentes métodos


Nos limitaremos a constatar el ritmo de convergencia de los tres métodos que hemos estudiado hasta
ahora mediante el estudio del comportamiento numérico del error k =| xk − xk−1 | para un caso práctico,
tal como se ilustra en la Fig. 1.12. Dado que k+1 = Cm k , si se representa log k+1 en función de log k
se obtendrá una línea recta, cuya pendiente corresponderá al valor de m. Puede apreciarse que el ritmo
de convergencia del método de sustitución repetida y el de bisección es lineal, el del método de Newton-
Raphson es cuadrático y el del método de la secante va con la potencia ∼ 1.6.

1.6. Proyecto: Estados ligados de un pozo de potencial cuadrado


Seguidamente calcularemos las energías y las funciones de onda de los estados ligados de una partícula
en un pozo de potencial cuadrado.14 Éste es un problema físico en que, después de plantear las expresiones
correspondientes y de operar con ellas, al final se llega a una ecuación que no puede resolverse analítica-
mente.
Sea un sistema unidimensional formado por una partícula de masa m que se mueve en una región donde
el potencial es V (x). La función de onda ψ(x) y la energía E de los estados ligados de la partícula se
obtienen a partir de las soluciones estacionarias de la ecuación de Schrödinger independiente del tiempo

~2 d2 ψ(x)
− + V (x)ψ(x) = Eψ(x) . (1.21)
2m dx2

Ésta es una ecuación de valores propios, ya que la función de onda ψ sólo tiene soluciones para determina-
dos valores de la energía E.
12 Aunque es posible que el método no converja si el error inicial es demasiado grande, o si f 0 ' 0 en las proximidades de un cero
(lo cual puede suceder).
13 Numerical Recipes: p. 349; F. S. Acton, Numerical Methods that Work, Part I: pp. 54-55.
14 Este problema se discute típicamente en un curso de mecánica cuántica y puede encontrarse resuelto en los siguientes textos: S.

Gasiorowicz, Quantum Physics, 3rd ed. (Wiley, 2003): §4-5; Constantinescu-Magyari, Problems in Quantum Mechanics: # II.9; G. L.
Squires, Problems in Quantum Mechanics: # 3.3.
F ÍSICA COMPUTACIONAL , Ceros de una función 43

Figura 1.12: Evolución del error en iteraciones sucesivas, k+1 vs. k , cuando se obtienen los ceros
de la ecuación f (x) = x2 /4 − sin(x) por el método de sustitución repetida, bisección, Newton-
Raphson y secante. El error converge como: k+1 ∝ k (sustitución repetida), k+1 ∝ k (bisección)
k+1 ∝ 2k (Newton-Raphson) y k+1 ∝ 1.6 k (secante) [vid. ejercicio 1.9].

El pozo de potencial cuadrado de profundidad V0 y anchura 2a está definido por el potencial



−V0 , si − a ≤ x ≤ a ,
V (x) = (1.22)
0, si |x| > a .

En la figura 1.13 aparece representado este potencial y las tres regiones en las que lo dividimos para su
estudio.

Figura 1.13: Pozo de potencial cuadrado, de profundidad V0 y anchura 2a. Para facilitar su estudio
lo dividimos en tres regiones: 1, 2 y 3.

La energía E de los estados ligados de la partícula será negativa (−V0 < E < 0). Por ello,pen lo que sigue
escribiremos
p E = −E, con E > 0. Para simplificar la escritura usaremos la notación α = 2mE/}2 > 0
y β = 2m(V0 − E)/}2 > 0. En las tres regiones del pozo de potencial representadas en la figura 1.13,
la ecuación de Schrödinger y la correspondiente función de onda son:
44 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

Región 1 (x < −a):

d2 ψ1 (x) 2m
− 2 Eψ1 (x) = 0 , ψ1 (x) = Aeαx + Be−αx . (1.23)
dx2 }
Región 2 (−a ≤ x ≤ a):

d2 ψ2 (x) 2m
+ 2 (V0 − E)ψ2 (x) = 0 , ψ2 (x) = C sin(βx) + D cos(βx) . (1.24)
dx2 }
Región 3 (x > a):

d2 ψ3 (x) 2m
− 2 Eψ3 (x) = 0 , ψ3 (x) = F eαx + Ge−αx . (1.25)
dx2 }
Las condiciones de contorno imponen que la función de onda sea nula en x → ±∞, por lo tanto
B = F = 0. Aunque las regiones 1 y 3 están prohibidas clásicamente, en mecánica cuántica hay una
probabilidad no nula de que la partícula se encuentre en ellas. La densidad de probabilidad viene dada por
el módulo al cuadrado de la función de onda y disminuye exponencialmente al alejarse del pozo: |ψ1 |2 =
ψ1∗ ψ1 = A2 e2αx y |ψ3 |2 = ψ3∗ ψ3 = G2 e−2αx .
Si el potencial es simétrico (es decir, tiene paridad par) y la energía no es degenerada, las soluciones
de la ecuación de Schrödinger pueden clasificarse en pares e impares.15 De acuerdo con las ecs. (1.23) –
(1.25), las soluciones pares tienen C = 0 y A = G, mientras que para las soluciones impares D = 0 y
A = −G.
Se pueden obtener los valores propios de la energía, así como las constantes A, C y D, al imponer
la continuidad de la función de onda y de su derivada en la frontera entre las regiones del potencial. La
continuidad de ψ en x = −a permite obtener la relación entre las constantes:

Ae−αa = D cos(βa) (soluciones pares) , (1.26)

Ae−αa = −C sin(βa) (soluciones impares) . (1.27)


De esta forma, la función de onda en las tres regiones se puede escribir en términos de una sola constante
(D para las soluciones pares y C para las impares), cuyo valor puede obtenerse a partir de la normalización
de la función de onda.
Una vez se ha determinado la función de onda ψ, pueden obtenerse todas las cantidades observables del
sistema. En particular ψ ∗ ψ dx representa la probabilidad de hallar la partícula entre x y x + dx.
De la continuidad de ψ 0 en x = −a se obtiene:16

Aαe−αa = Dβ sin(βa) (soluciones pares) , (1.28)

Aαe−αa = Cβ cos(βa) (soluciones impares) . (1.29)


Las energías de los estados ligados pares se obtienen a partir de las ecs. (1.26) y (1.28), mientras que
las energías de los estados ligados impares se obtienen a partir de las ecs. (1.27) y (1.29).17 De este modo,
podemos escribir los siguientes resultados.18
Soluciones pares (C = 0, D 6= 0, A = G):

α cos(βa) = β sin(βa) . (1.30)

Sin utilizar la notación abreviada, esta ecuación es


r r ! r r !
2m 2m 2m 2m
E cos a (V0 − E) = (V0 − E) sin a (V0 − E) . (1.31)
}2 }2 }2 }2
15 G.L. Squires, Problems in Quantum Mechanics (University of Bangaloore Press, New Delhi, 1997), p. 31.
16 Se obtiene el mismo resultado, ecs.(1.26) – (1.29), si se impone la continuidad de ψ y ψ 0 en x = a.
17 Dada la simetría del problema, basta con imponer la continuidad de ψ 0 (x)/ψ(x) en x = −a o en x = a.
18 Las ecs. (1.30) y (1.32) son las mismas que las que aparecen en S. Gasiorowicz, Quantum Physics: ecs. (4-51) y (4-52); G. L.

Squires, Problems in Quantum Mechanics: # 3.3.


F ÍSICA COMPUTACIONAL , Ceros de una función 45

Soluciones impares (C 6= 0, D = 0, A = −G):


α sin(βa) = −β cos(βa) . (1.32)
Sin utilizar la notación abreviada, esta ecuación es
r r ! r r !
2m 2m 2m 2m
E sin a (V0 − E) = − (V0 − E) cos a (V0 − E) . (1.33)
}2 }2 }2 }2
Las energías permitidas en cada caso se obtienen resolviendo las ecs. (1.31) y (1.33), lo cual no pue-
de realizarse analíticamente. Para resolver numéricamente cada una de estas ecuaciones, se debe emplear
alguna de las técnicas que hemos estudiado en este tema para hallar los ceros de una función.
Emplearemos procedimientos gráficos para conocer los valores aproximados que usaremos inicialmente
cuando se busque la solución mediante alguno de los métodos numéricos discutidos a lo largo de este tema.
Como caso práctico resolveremos el problema de un electrón (m = 9.11·10−31 kg) en un pozo de potencial
cuadrado cuyos parámetros son a = 3 Å y V0 = 10 eV. Para evitar manejar magnitudes en las que aparezcan
potencias de 10 muy grandes o muy pequeñas, conviene emplear un sistema de unidades que sea adecuado
al tipo de problema que se está estudiando. En los problemas de física atómica conviene emplear el sistema
de unidades atómicas (atomic units, a.u.), en el cual m = e = ~ = 1. Así, la escritura de la ecuación de
Schrödinger para un electrón se simplifica notablemente:
1 d2 ψ(x)
− + V (x)ψ(x) = Eψ(x) . (1.34)
2 dx2
Las unidades de longitud y energía en el sistema de unidades atómicas son, respectivamente, el radio
de Bohr (a0 = 0.529 Å) y el doble de la energía de ionización del átomo de hidrógeno, que se denomina
Rydberg (1 Ry = 27.2 eV). Por lo tanto, al usar unidades atómicas, las características del pozo de potencial
son a = 5.671 a.u., V0 = 0.3677 a.u. y m = 1 a.u. Una vez se resuelva el problema, se convertirán las
unidades atómicas en otras más familiares; para ello, multiplicamos por 27.2 eV las energías en a.u., por
0.529 Å las distancias en a.u., etc.

Figura 1.14: Solución gráfica para las energías de los estados ligados del pozo de potencial cuadrado,
ecs. (1.31) y (1.33), correspondientes al caso en que V0 = 10 eV y a = 3 Å. Por comodidad, se ha
trabajado en unidades atómicas, de manera que los datos del pozo de potencial en unidades atómicas
son V0 = 10 eV = 10/27.2 a.u. = 0.3676 a.u. y a = 3 = 3/0.529 a.u. = 5.671 a.u. En la
izquierda se han representado las curvas f (E) = 0 correspondientes a las ecs. (1.31) y (1.33). En el
centro y en la derecha se han representado las intersecciones de las funciones que aparecen a ambos
lados de las igualdades de las ecs. (1.31) y (1.33), respectivamente. Los subíndices de las energías Ei
indican el orden tradicional de los niveles energéticos, contados desde el fondo del pozo de potencial.

La figura 1.14 muestra la solución gráfica de las ecs. (1.31) y (1.33) en términos de la energía. Tras
aplicar el método de bisección, obtenemos las energías para los estados ligados del pozo cuadrado con
V0 = 10 eV y a = 3 Å que aparecen en la tabla 1.1, cuyas funciones de onda se representan en la figura
1.15. Tan sólo hay cuatro estados ligados; el más ligado corresponde al índice n = 1. Nótese que el último
estado ligado está casi a ras del borde del pozo de potencial, es decir, está muy poco ligado.19
19 Como es tradición en física cuántica, los estados ligados se ordenan desde menor hasta mayor energía (en este caso, desde el

fondo del pozo de potencial).


46 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

Figura 1.15: Funciones de onda de los estados ligados en el pozo cuadrado de profundidad V0 = 10
eV y semianchura a = 3 Å.

Tabla 1.1: Energías de los estados ligados en un pozo cuadrado de profundidad V0 = 10 eV y semianchura a = 3 Å.
n (orden y paridad del estado ligado) En (a.u.) En (eV)
1 (par) −0.3414 −9.285
2 (impar) −0.2640 −7.181
3 (par) −0.1418 −3.856
4 (impar) −0.005025 −0.1367

Bibliografía
J. M. Blair, Some practical aspects of finding the roots of equations using fixed-point iteration with a
computer program, American Journal of Physics 60 (1992) 929.
G. J. Borse, Programación en FORTRAN77, con aplicaciones de cálculo numérico en ciencias e inge-
niería (Anaya, Madrid, 1989). Secc. 4.1, Cap. 11.
P. DeVries, A First Course in Computational Physics (Wiley, New York, 1994). Cap. 2.
A. L. Garcia, Numerical methods for physics, 2nd ed. (Prentice-Hall, Upper Saddle River, NJ, 2000)
Secc. 4.3.

R. Guardiola, E. Higón y J. Ros, Mètodes numèrics per a la física (Universitat de València, Valencia,
1995). Cap. 2.
S. E. Koonin y D. C. Meredith, Computational Physics. Fortran version (Addison-Wesley, Redwood
City, CA, 1990). Secc. 1.3.
W. H. Press, S. A. Teukolsky, W. T. Vetterling y B. P. Flannery, Numerical Recipes, in Fortran. The Art
of Scientific Computing, 2a ed. (Cambridge University Press, Cambridge, 1992). Cap. 9.
L. Vázquez, S. Jiménez, C. Aguirre y P. J. Pascual, Métodos numéricos para la Física y la Ingeniería
(McGraw-Hill, Madrid, 2009). Cap. 2
F ÍSICA COMPUTACIONAL , Ceros de una función 47

Resumen del Tema 1: Ceros de una función


Objetivo
Encontrar el valor (o valores) de x que hacen que la función f (x) se anule: f (x) = 0.
Normalmente se obtiene una sucesión de valores xk , xk+1 , ... que (presumiblemente) convergen al
valor buscado. La convergencia de la sucesión depende de cómo evolucione con k el valor absoluto de la
diferencia entre dos términos consecutivos de dicha sucesión: k = |xk − xk−1 |.

Método de sustitución repetida ( NO SE RECOMIENDA SU USO )


Se despeja x de la ecuación f (x) = 0 y se escribe x = g(x). Se parte de un valor inicial x0 y se sigue
el proceso iterativo:
xk+1 = g(xk ) .
Convergencia (cuando la hay): k+1 ∼ Ck (0 < C < 1).

Método de bisección
Dados dos puntos xL y xR tales que f (xL )f (xR ) < 0, se obtiene un nuevo punto xM ∈ [xL , xR ] que
bisecta el intervalo inicial:
xL + xR
xM = .
2
Si f (xL )f (xM ) < 0 se repite el proceso anterior tomando ahora xR = xM ; si f (xL )f (xM ) > 0 se
repite el proceso anterior tomando ahora xL = xM .
Convergencia: k+1 ∼ Ck (0 < C < 1).

Método de Newton-Raphson
f (xk )
xk+1 = xk −
f 0 (xk )

Convergencia: k+1 ∼ C2k (0 < C < 1).

Método de la secante
xk − xk−1
xk+1 = xk − f (xk )
f (xk ) − f (xk−1 )

Convergencia: k+1 ∼ C1.618


k (0 < C < 1).

El método de bisección garantiza que se obtiene el cero buscado si está bien acotado mediante los dos
valores iniciales para comenzar la iteración.
Los métodos de Newton-Raphson y de la secantefvalor va pueden conducir a un cero que no es el que
se busca, dependiendo del valor inicial con el que se inicia la iteración.
48 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

Ejercicios resueltos
1.1 Calcula los ceros de la función

f (x) = cos x − x

mediante los siguientes métodos: (a) sustitución repetida, (b) bisección, (c) Newton-Raphson y (d) secante.
Compara el número de iteraciones que necesita cada método para alcanzar la misma precisión en el
resultado, si se parte de un valor inicial común.

La figura adjunta muestra que la función f (x) = cos x − x tiene solo un cero, que vale x ' 0.7.

En todos los casos trabajaremos con una precisión de 10−3 en el error absoluto y partiremos de valores
iniciales de x que se hallen a la misma distancia, aproximadamente, del cero buscado.
Método de sustitución repetida. Al aplicar el método de sustitución repetida, la solución evoluciona
como se muestra en la figura adjunta.

El resultado que se obtiene con el método de sustitución repetida aparece a continuación.


1 x0= 0.50000000 tol= 1.00000005E-03
2 1 1.0000000
3 2 0.54030228
4 3 0.85755324
5 4 0.65428978
6 5 0.79348034
7 6 0.70136881
8 7 0.76395965
9 8 0.72210246
10 9 0.75041771
11 10 0.73140407
12 11 0.74423736
13 12 0.73560476
14 13 0.74142510
15 14 0.73750687
16 15 0.74014735
17 16 0.73836917
18 17 0.73956722
19 18 0.73876029
20 num.iter.= 18 x= 0.73876029
21 se alcanzo la precision deseada
F ÍSICA COMPUTACIONAL , Ceros de una función 49

Método de bisección. La evolución de la solución mediante el método de la bisección se muestra a


continuación.
1 xl= 0.50000000 xr= 1.0000000 tol= 1.00000005E-03
2 1 0.75000000
3 2 0.62500000
4 3 0.68750000
5 4 0.71875000
6 5 0.73437500
7 6 0.74218750
8 7 0.73828125
9 8 0.74023438
10 9 0.73925781
11 10 0.73876953

Método de Newton-Raphson. A continuación se muestra la evolución de la solución mediante el mé-


todo de Newton-Raphson.
1 k x_k
2 0 0.50000000
3 1 0.75522238
4 2 0.73914164
5 3 0.73908514

Método de la secante. La evolución de la solución mediante el método de la secante aparece a conti-


nuación.
1 k x_k
2 0 0.50000000
3 1 1.0000000
4 2 0.72548157
5 3 0.73839861
6 4 0.73908722

En todos los casos la solución converge al valor x = 0.739. Puede comprobarse que el método más
eficiente es el de Newton-Raphson, seguido por el de la secante y, luego, por el de bisección. El método de
sustitución repetida es el menos eficiente.

1.2 Calcula los ceros de la función


1 x/2
f (x) = e −x
2
mediante los siguientes métodos: (a) sustitución repetida, (b) bisección, (c) Newton-Raphson y (d) secante.
(i) Compara el resultado obtenido en cada método tras haber efectuado el mismo número de iteraciones
cuando se parte de un valor inicial común.
(ii) Compara el número de iteraciones que necesita cada método para alcanzar la misma precisión en el
resultado, si se parte de un valor inicial común.

Según se observa en la figura adjunta, la función f (x) = 12 ex/2 − x tiene dos ceros, pues las curvas
y = x e y = 12 ex/2 se cortan en dos puntos: x1 ' 0.71 y x2 ' 4.3.
50 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

Sustitución repetida. Mediante el método de sustitución repetida sólo podemos encontrar el cero x1 =
0.714806. El otro cero no lo podemos hallar por este método.
Si comenzamos por cualquier punto a la izquierda del segundo cero (x2 ) siempre se converge a la
solución x1 = 0.7148. En cambio, si comenzamos por cualquier punto a la derecha del segundo cero, cada
vez nos alejamos más del mismo.
A continuación se muestra cómo evoluciona la secuencia de valores que devuelve el programa 1-02SustRep-rgm.f,
cuando se comienza la búsqueda del cero desde la izquierda o la derecha del punto x2 . Aunque en el se-
gundo caso se indica que se alcanzó la precisión deseada, esto no es cierto, pues la secuencia de valores
diverge. Pero como los valores consecutivos tan elevados son idénticos (para la precisión con la que trabaja
el programa), se indica que se alcanzó la precisión, ya que difieren en menos de la precisión deseada. De
todos modos, al escribir +Infinity para el valor está indicando que no se ha alcanzado la convergencia.
1 1-02SustRep-Izq-rgm.dat
2 x0= 1.5000000 tol= 1.00000005E-03
3 1 1.0585001
4 2 0.84882933
5 3 0.76434767
6 4 0.73273343
7 5 0.72124207
8 6 0.71710992
9 7 0.71562982
10 8 0.71510047
11 num.iter.= 8 x= 0.71510047
12 se alcanzo la precision deseada

1 1-02SustRep-Der-rgm.dat
2 x0= 9.1999998 tol= 1.00000005E-03
3 1 49.742153
4 2 3.16476396E+10
5 3 +Infinity
6 4 +Infinity
7 num.iter.= 4 x= +Infinity
8 se alcanzo la precision deseada

Métodos de bisección, de Newton-Rapshon y de la secante. En estos casos se obtienen ambos ceros


sin ningún problema. Los resultados son: x1 = 0.7148 y x2 = 4.3066.

1.9 Emplea los métodos de sustitución repetida, bisección, Newton-Raphson y secante, para calcular
el primer cero positivo de la función f (x) = x2 /4 − sin x, con un error menor que 0.001. A partir de los
resultados que obtienes en función del número de iteraciones, ¿cuál es el orden de convergencia de cada
uno de los métodos que has empleado?
Mediante la figura adjunta determinamos la localización aproximada de los ceros. Además del valor
x = 0 (que es un cero trivial), el cero que hemos de buscar está comprendido entre 1 y 3.

Para resolver el ejercicio se han empleado los siguientes programas: 1-09SustRep-rgm.f, 1-09bisecc-rgm.dat,
1-09Newton-rgm.f y 1-09secante-rgm.f, cuyas nombres identifican el método que se ha utili-
zado en cada caso. En la siguiente tabla aparecen los valores que se obtienen para el cero buscado mediante
los diferentes métodos, junto con los valores utilizados para comenzar el proceso iterativo en cada caso. Por
comodidad, se ha utilizado el criterio de error absoluto para detener el proceso iterativo.
F ÍSICA COMPUTACIONAL , Ceros de una función 51

método xinic iteración k xk


Sustitución repetida x0 = 3 9 1.93392
Bisección xL = 1, xR = 3 12 1.93408
Newton-Raphson x0 = 3 4 1.93375
Secante x0 = 5, x1 = 3 6 1.93375

Las cuatro figuras adjuntas muestran la evolución del error k+1 = Cm k cuando se obtienen los ceros
de la función f (x) = x2 /4 − sin x por los métodos de sustitución repetida, bisección, Newton-Raphson y
secante. Al representar log k+1 vs. log k se observa un comportamiento lineal. La pendiente de la recta
que se obtiene tras ajustar por mínimos cuadrados da el orden de convergencia de cada método.

La tabla adjunta muestra la pendiente en cada caso, que toma los siguientes valores: m = 1 (sustitución
repetida), m = 1 (bisección), m = 1.96 ' 2 (Newton-Raphson) y m = 1.57 ' 1.6 (secante). En el caso
del método de bisección puede comprobarse que k+1 = 0.5k , ya que del ajuste lineal de log k+1 =
log C + m log k se obtiene que log C = −0.30, lo cual implica que C = 10−0.30 = 0.5.

método pendiente convergencia


Sustitución repetida 1 k+1 ∝ k (lineal)
Bisección 1 k+1 ∝ k (lineal)
Newton-Raphson 1.96 ∼ 2 k+1 ∝ 2k (cuadrática)
Secante 1.57 ∼ 1.6 k+1 ∝ 1.6
k

1.15 Cuando una onda, cuya longitud de onda es λ, pasa a través de una rendija de anchura b, la
intensidad de la onda difractada depende del ángulo θ respecto de la dirección de incidencia. Mediante la
aproximación de Fraunhofer, los máximos de la intensidad vienen dados por la siguiente ecuación trascen-
dente
tan z = z ,
52 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

donde z = (πb sin θ)/λ.


Si λ/b = 0.1, obtén los valores de z que satisfacen la ecuación anterior y comprueba que, además del
valor z = 0, el resto satisface razonablemente bien la relación z = (2n + 1)π/2, con n = 1, 2, .... Despeja
el ángulo θ de tus cálculos numéricos y compáralo con los valores correspondientes a la aproximación

λ
sin θ = (2n + 1) ,
2b
la cual funciona tanto mejor cuanto mayor es el valor de n.

Los máximos en la intensidad de una onda de longitud de onda λ que pasa a través de una rendija de
anchura b se obtienen a partir de la siguiente expresión (en la aproximación de Fraunhofer):

tan z = z ,

donde z = (πb sin θ)/λ.

Debido a la simetría del problema sólo buscaremos los valores de z positivos, a partir de los cuales se
pueden obtener los ángulos θ en los que hay un máximo de la intensidad.

Para evitar problemas con la función tangente (que presenta divergencias cerca de múltiplos impares de
π/2 y, por tanto, varía muy rápidamente cerca de esos puntos), reescribimos la ecuación tan z − z = 0 en
la forma equivalente sin z = z cos z y buscamos los ceros de la función f (z) = sin z − z cos z. Puede verse
en la figura adjunta la localización aproximada de los ceros (Izq.: mediante la intersección entre f (z) = z
y g(z) = tan z; Der.: mediante la intersección de f (z) = sin z − z cos z con el eje de abscisas).
Empleamos el método de bisección (1-15bisecc-rgm.f). Como z = (πb/λ) sin θ ⇒ z ≤ πb/λ,
la búsqueda de ceros finalizará cuando se cumpla que z > πb/λ. La siguiente tabla muestra los resultados
obtenidos para el caso en que λ/b = 0.1, así como los que da la expresión aproximada z = (2n + 1)π/2, .
Una vez conocidos los valores de z, se calcula sin θ = zλ/(πb) y se compara con los resultados obtenidos
a partir de la aproximación sin θaprox = (2n + 1)λ/(2b).
Como puede comprobarse, la diferencia entre los resultados aproximados y los exactos disminuye a
medida que aumenta el orden n de la difracción.
F ÍSICA COMPUTACIONAL , Ceros de una función 53

n z zaprox sin θ sin θaprox


1 4.49316 4.71239 0.14302 0.15000
2 7.72559 7.85398 0.24591 0.25000
3 10.90332 10.99557 0.34706 0.35000
4 14.06543 14.13717 0.44772 0.45000
5 17.22168 17.27876 0.54818 0.55000
6 20.37207 20.42035 0.64846 0.65000
7 23.51978 23.56194 0.74866 0.75000
8 26.66626 26.70354 0.84881 0.85000
9 29.81152 29.84513 0.94893 0.95000

1.16 Calcula los ceros de la función f (x) = e−x − cos x mediante los métodos siguientes: (a) sustitu-
ción repetida, (b) bisección, (c) Newton-Raphson y (d) secante.
La gráfica adjunta muestra la localización aproximada de los primeros ceros de la función f (x) =
e−x − cos x, cuyos valores son 0 (solución trivial), ∼ 1.3 y ∼ 4.7.

(a) Sustitución repetida. Una posibilidad para despejar es x = − ln(cos x). Este procedimiento falla
porque cos x puede tomar valores negativos, y la función ln no está definida para valores negativos del
argumento. De hecho, sólo se obtiene la solución (trivial) x = 0, si se parte de valores de x0 que están a la
izquierda del primer cero no trivial: x0 < 1.2927.
La otra posibilidad para despejar es x = arc cos(e−x ). Este procedimiento no presenta problemas en lo
que se refiere a los valores del argumento de la función arc cos, pues 0 < e−x ≤ 1. Pero siempre converge
al valor del primer cero, x = 1.2927, independientemente del valor inicial x0 , pues la función arc cos nunca
puede proporcionar un valor que sea mayor que π/2 ' 1.57, por lo que nunca se obtendrá el segundo cero,
x = 4.7213. Puede realizarse una representación gráfica de la intersección entre la recta y = x y la curva
y = arc cos e−x , para comprobar cómo evoluciona la solución.
(b) Bisección. Si se trabaja con una tolerancia de 10−4 obtenemos los siguientes resultados mediante el
programa 1-16bisecc-rgm.f:
Si se parte de los valores iniciales [1.0, 3.0], con 15 iteraciones se obtiene x = 1.292664.
Si se parte de los valores iniciales [4.0, 6.0], con 15 iteraciones se obtiene x = 4.721252.
(c) Newton-Raphson. Si se trabaja con una tolerancia de 10−4 , el programa 1-16Newton-rgm.f
proporciona los siguientes resultados:
Si se parte de x0 = 1.0, con 4 iteraciones se obtiene x = 1.292696.
Si se parte de x0 = 1.5, con 3 iteraciones se obtiene x = 1.292696.
Si se parte de x0 = 4.0, con 4 iteraciones se obtiene x = 4.721293.
Hay que tener cuidado al aplicar el método de Newton-Raphson para buscar los ceros de esta función,
pues puede suceder que alguno de los puntos x0 , x1 , x2 , . . . , xk , . . . conduzca a una pendiente de la función
54 Rafael Garcia Molina, Departamento de Física – CIOyN, Universidad de Murcia

tal que el siguiente punto, xk+1 , se aleje mucho de la serie a la que debería converger; esto sucede cerca de
los puntos xk para los cuales la función f (x) tiene poca pendiente (por ejemplo, cerca de los máximos y
los mínimos). En el peor de los casos, la pendiente de la curva es nula (en un máximo o un mínimo) y la
tangente no interseca nunca al eje de las x, por lo que el método de Newton-Raphson no se puede aplicar.
A continuación aparecen algunos ejemplos en los que este método no funciona correctamente.
Si se parte de x0 = 6.0, con 6 iteraciones se obtiene x = −6.3058 × 10−15 ' 0 (dentro de la precisión
requerida). Cerca de x = 6 la pendiente de la función es casi horizontal, de manera que la intersección con
el eje x tiene lugar muy lejos del cero que esperaríamos encontrar, que sería 4.7213 (el más próximo a 6).
(d) Secante. Si se trabaja con una tolerancia de 10−4 , el programa 1-16secante-rgm.f) propor-
ciona los resultados:
Si se parte de x0 = 1.0 y x1 = 3.0, con 4 iteraciones se obtiene x = 1.292696.
Si se parte de x0 = 4.0 y x1 = 6.0, con 4 iteraciones se obtiene x = 4.721293.
Si se parte de x0 = 4.0 y x1 = 7.0, con 9 iteraciones se obtiene x = 4.721293.
Veamos, seguidamente, algunos ejemplos en los que el método de la secante no funciona correctamente.
Si se parte de x0 = 6.0 y x1 = 7.0, con 8 iteraciones se obtiene x = 10.99559. En este caso hubiéramos
esperado obtener el valor x . 8, pero la secante a la curva que pasa por los puntos obtenidos en las
iteraciones conduce a un cero que está más alejado del que esperaríamos obtener.
Si se parte de x0 = 2.0 y x1 = 3.0, con 7 iteraciones se obtiene x = 1.292696. Si se parte de x0 = 3.0
y x1 = 4.0, con 6 iteraciones se obtiene x = 4.721293. En estos dos casos, una variación en los valores
iniciales que no es especialmente importante conduce a dos ceros diferentes.
La explicación de este comportamiento es análoga a la que se ha dado en el caso anterior (método de
Newton-Raphson) cuando las evaluaciones se realizan en puntos que dan lugar a secantes que hacen que la
serie de valores xk se aleje del cero próximo a la región donde comienza la iteración.

1.32 Calcula con una precisión de 10−3 los ceros del polinomio

f (x) = x5 − 4.5x4 + 4.55x3 + 2.675x2 − 3.3x − 1.4375 .

El comportamiento asintótico del polinomio es f (x → ±∞) → ±∞, por lo tanto está garantizado que
los ceros reales del polinomio están contenidos en la porción de la función f (x) que se representa en la
figura adjunta.

Los dos ceros que se observan son x1 ' −0.5 y x2 ' 2.5. Para calcularlos con mayor precisión
emplearemos alguno de los métodos numéricos estudiados en este tema. El cero x1 es doble, mientras que
el cero x2 es sencillo. En este ejercicio no empleamos ningún método para desinflar polinomios.20
20 Se denomina desinflado de un polinomio P (x) al procedimiento para calcular varios o todos sus ceros x factorizando el poli-
k
nomio en la forma P (x) = (x − xk )Q(x) a medida que se van obteniendo los ceros xk . Procediendo de este modo se calculan los
F ÍSICA COMPUTACIONAL , Ceros de una función 55

La función f (x) no cambia de signo alrededor de x1 , por lo tanto sólo podemos usar el método de
bisección para calcular el cero x2 . Si se parte de los valores iniciales xL = 2.0 y xR = 3.0, con el programa
1-32r8-bisecc-rgm.f se obtiene el resultado x2 = 2.50098 (tras 11 iteraciones).
Mediante el método de Newton-Raphson (1-32r8-Newton-rgm.f), cuando se parte de los valo-
res iniciales x0,1 = −1.0 y x0,2 = 3.0 se obtienen los siguientes resultados: x1 = −0.50084 (tras 10
iteraciones) y x2 = 2.50000 tras 5 iteraciones.

ceros del nuevo polinomio Q(x), que es de un grado menor que el original. Así, el esfuerzo de hallar ceros adicionales disminuye,
pues a medida que vamos hallando más ceros se trabaja cada vez con polinomios de menor grado. Además, y más importante, con el
desinflado se puede evitar que el método iterativo propuesto converja por dos veces al mismo cero (no siendo éste múltiple), en lugar
de converger por separado a dos ceros diferentes.

También podría gustarte