Está en la página 1de 9

ECUACIONES NO LINEALES

F. VADILLO

Estas notas explican algunos mtodos numricamente para resolver ecuaciones no lineales de la forma
Resumen.

f (x) = 0,

donde f es una funcin real de variable real. Dichas soluciones son los ceros de funcin f . El orden de exposicin es el siguiente: se comienza por el mtodo ms "ingenuo " que es el mtodo de biseccin para despus comentar el mtodo de la secante y las iteraciones de punto jo describiendo el algoritmo zeroin. Finalmente se construye el mtodo de Newton y su extensin al problema de los sistemas de ecuaciones no lineales.
ndice

1. Introduccin 2. El mtodo de biseccin 3. El mtodo de la secante 4. Iteraciones de punto jo 5. El algoritmo zeroin 6. El mtodo de Newton 7. El mtodo de Newton para sistemas no lineales Referencias

1 2 3 4 6 7 8 9

1.

Introduccin

Se consideran ecuaciones no lineales de la forma (1.1)

f (x) = 0,

donde f es una funcin real de variable real. Un caso sencillo es cuando la funcin f es un polinomio. Los polinomios de primero y segundo grado ya fueron tratados con xito en tiempos muy remotos, los babilonios eran capaces de resolver ecuaciones cuadrticas. La historia del descubrimiento de la solucin algebraica de la cbica enfrent a dos grandes rivales italianos: Cardano y Tartaglia hacia 1540, y Ferrari, alumno y secretario de Cardano resolvi en 1545 la ecuacin de cuarto grado. Posteriormente fueron muchos los matemticos eminentes que trataron de resolver las ecuaciones de grado superior a cuatro, aunque en vano puesto que el matemtico
Received by the editors 17 de enero de 2006.
1

F. VADILLO

noruego Abel en 1893 prob que es imposible resolver por radicales la ecuacin general de grado mayor que cuatro. En consecuencia, para calcular las races de polinomios de grado mayor que cuatro es imprescindible usar tcnicas numricas.

2.

El mtodo de biseccin

El mtodo de biseccin es el ms sencillo posible. Dada una funcin f real y continua en el intervalo I0 = [a, b] con valores de signos contrario en a y b, esto es f (a)f (b) < 0, el teorema de Bolzano asegura que f se anula en algn punto interior de I0 . El mtodo de biseccin calcula el punto medio del intervalo c = a+b y f (c). Si 2 f (c) = 0, c es la raz y el problema est resuelto. En el caso contrario, si f (c) = 0 tiene el mismo signo que f (a) o f (b), es decir, en uno de los dos intervalos [a, c] o [c, b] la funcin toma valores de signo contrario en los extremos y por lo tanto contiene una raz. Llamando ahora I1 a dicho intervalo estamos en la situacin anterior pero con I1 en lugar de I0 , la ventaja es que la longitud del intervalo I1 es la mitad de la I0 . En el siguiente paso se repite el procedimiento, se evala f en el punto intermedio de I1 y se queda con la mitad I2 donde haya un cambio de signo en los valores de los extremos. Continuando este proceso se construye una sucesin de intervalos encajados In de longitud ba que contienen una raz de f . 2n

Ejemplo 2.1. Para conocer en qu punto de la trayectoria se encuentra un satlite


(2.1)

que gira en una rbita elptica en torno a la Tierra en un instante t hay que resolver la ecuacin de Kepler

x e sin x = z,

donde e es la excentricidad y z es un nmero que se calcula a partir de t. En el caso e = 0,5 y z = 0,7, f (0) = 0,7 < 0 y f (2) = 0,8 > 0 por lo que el proceso iterativo se puede comenzar en el intervalo [0, 2]. Las cinco primeras bisecciones estn recogidas en la siguiente tabla n 0 1 2 3 4 5 Intervalo [0,2] [1,2] [1, 1.5] [1,1.25] [1.125., 1.25] [1.125, 1.875] Punto medio 1 1.5 1.25 1.125 1.1875 1.1563 Valor de f en el punto medio -0.121 0.301 0.075 -0.026 0.023 -0.001

El mtodo de biseccin es muy robusto porque se puede aplicar a cualquier funcin continua y no presenta posibilidades de error, aunque es un mtodo lento: en cada paso dividimos el intervalo por la mitad. Adems no aprovecha otras caractersticas de la funcin, por ejemplo no valora el tamao en los extremos de los intervalos aunque parezca ms plausible que la raz esta ms cercan al extremo donde se encuentre el menor valor absoluto.

ECUACIONES NO LINEALES

3.

El mtodo de la secante

En el mtodo de la secante en lugar de obtener una sucesin de intervalos se calcula una sucesin de nmeros que aproximan el cero de la funcin. Comenzando de dos aproximaciones x0 , x1 a la raz que se busca , primero se construye la rectas secante que pasa por los puntos (x0 , f (x0 )), (x1 , f (x1 )) y se calcula su corte con el eje OX que se le llama x2 , despus se evala f (x2 ). El proceso se repite con x1 y x2 para calcular x3 y sucesivamente x4 , x5 .... La gura 1 ilustra el primer paso del mtodo de la secante para el ejemplo 2.1.
Metodo de la secante 2.5

1.5

0.5

0.5

1.5 1

0.5

0.5

1.5

2.5

Figura 1.

Mtodo de la secante para el ejemplo 2.1.

La expresin que generaliza el mtodo de la secante es la siguiente f (xn )(xn xn1 ) (3.1) xn+1 = xn , n = 1, 2, ... f (xn ) f (xn1 ) Las iteracin del mtodo de la secante (3.1) no son infalibles, puede ocurrir que algn de los xn no se encuentre en el dominio de f o que el denominador sea casi cero, en cuyo caso la secante es horizontal y salvo que xn fuese ya un cero de f no corta al eje de las abscisas. La siguiente tabla recoge los resultados del mtodo de la secante aplicado al ejemplo 2.1 n 0 1 2 3 4 5

xn f (xn ) 0 7,0 101 2 8,45 101 0.9059 1,88 101 1.1046 4,2 102 1.1619 3,2 103 1.1579 4,91 105

Comparado este mtodo con el de biseccin se ve claramente que ahora la convergencia es ms rpida que. En cinco iteraciones se tienen residuos del orden de 105 .

F. VADILLO

Los posibles criterios de parada del algoritmo son tres: (3.2) (3.3) (3.4)

|xn+1 xn | < T ol1 , |f (xn )| < T ol2 , n > M ax.

donde T ol1 es una tolerancia elegida por el usuario, o bien o se supera un nmero de iteraciones M ax tambin elegida por el usuario Una extensin obvia del mtodo de la secante es mtodo de Muller. Comenzando con tres valores x2 , x1 , x0 [a, b] se pude usar interpolacin cuadrtica, es decir, construiremos el polinomio de segundo grado que interpola por los puntos (x2 , f (x2 )),(x1 , f (x1 )) y (x0 , f (x0 )) y hallar el punto de interseccin con el eje de abscisas que sera x1 . Repitiendo este proceso se obtiene una sucesin que en determinadas condiciones aproximan la raz de la funcin.
4. Iteraciones de punto fijo

La iteracin de punto jo es la tcnica ms importante para calcular los ceros de funciones no lineales. Se comienza escribiendo la ecuacin (1.1) de la forma (4.1)

x = g(x),

tal que los ceros de la funcin f son exactamente los puntos jos de la funcin g . Geomtricamente resolver (4.1) signica hallar la interseccin de la grca de g con la bisectriz de los cuadrantes primero y tercero. Existen varias formas de reescribir (1.1) en la forma (4.1), por ejemplo se puede tomar g(x) = x f (x). La forma de construir la funcin g diferenciar a unos mtodos iterativos de otros. Despus de elegir la llamada funcin de iteracin g , el mtodo iterativo construye la sucesin {xn } usando la recurrencia (4.2)

xn+1 = g(xn ),

n = 0, 1, 2, ,

comenzando con un dato inicial x0 . La gura 2 ilustra la geometra del mtodo iterativo en el ejemplo 2.1 con g(x) = 0,7 + 0,5 sin x comenzando en x0 = 0. La cuestin que ahora se plantea es si es la sucesin {xn } converje a la raz de la funcin f , el siguiente teorema da una condicin suciente de convergencia.

Teorema 4.1. Sea g una funcin con derivada continua en un intervalo de la


forma ( r0 , + r0 ) tal que r0 > 0 y g() = . Entonces si
(4.3)

|g ()| < 1,

existe r < r0 tal que para x0 [r, +r] la sucesin xn+1 = g(xn ), n = 0, 1, .. est en [ r, + r] y converge hacia . Adems, si los errores en = xn = 0 sus cocientes en+1 g () cuando n . en
La demostracin de este teorema se puede consultar en la pgina 119 de la referencia [3].

ECUACIONES NO LINEALES
Iteracion de punto fijo 3

2.5

1.5

0.5

0.5

1 1

0.5

0.5

1.5

2.5

Figura 2.

Iteracin de punto jo para el ejemplo 2.1.

Volviendo al ejemplo 2.1 con g(x) = 0,7 + 0,5 sin x, el mdulo de su derivada |g (x)| = |0,5 cos x| < 1 de donde se deduce la convergencia de la gura 2. En muy importante destacar que este resultado es un teorema de convergencia local porque la convergencia slo se garantiza si el valor inicial x0 est prximo a la raz que se busca. Aunque la condicin de convergencia (4.3) es slo suciente, es casi necesaria, de hecho se puede demostrar que en las hiptesis del teorema si (4.4)

|g ()| > 1,

las nicas sucesiones de la forma xn+1 = g(xn ) que convergen a son aquellas cuyos trminos son a partir de uno dado (teorema 9.4.3 de la pgina 129 de [3]). Adems de la convergencia de la sucesin a la raz es tambin importante la velocidad de convergencia para estimar el tiempo de computacin necesario. Un mtodo iterativo se dice que tiene un orden de convergencia p 1 si: (4.5)

| xn+1 | | xn |p ,

n 0,

para algn > 0. Si p = 1 se dice que la convergencia es lineal, si p = 2 la convergencia es cuadrtica , cbica cuando p = 3 etc. exactamente el orden es la famosa razn urea pgina 49 de [4]).

Ejemplo 4.2. El mtodo de la secante tiene una convergencia superlineal (p > 1),
1+ 5 2

1,62 (Teorema 2.1 de la

En la convergencia lineal con = |g ()| < 1 para mejorar r decimales en la solucin el nmero de iteraciones m necesarias sera r < m, m < 10r log10 donde el factor log10 se denomina razn de convergencia del mtodo. De esta forma 1. Si 0 < 1 ( prximo a uno), log10 0 por lo que m es muy grande y la convergencia muy lenta.

F. VADILLO

2. Por el contrario si 0 < 1 ( cercano a cero), log10 es un valor grande y m pequeo, es decir, con pocas iteraciones se mejora mucho la aproximacin.

5.

El algoritmo zeroin

La primera versin del algoritmo zeroin fue desarrollado por T.J.Dekker y sus colaboradores en 1969, aunque versiones posteriores lo han mejorado considerablemente. La idea de este algoritmo es la de combinar la versatilidad del mtodo de biseccin con la velocidad del mtodo de la secante y el mtodo IQI (inverse quadratic interpolation). El mtodo IQI en cada paso determina el polinomio cuadrtico P (y) con las condiciones: (5.1) (5.2)

xn = P (f (xn )),

xn1 = P (f (xn1 )), xn+1 = P (0).

xn2 = P (f (xn2 )),

que siempre corta al eje de abscisas en y = 0, as la siguiente iteracin es: El mtodo IQI puede tener serios problemas, por ejemplo necesita que f (xn ), f (xn1 ) y f (xn2 ) sean diferentes lo que no est garantizado, pero sin embargo es muy rpido cerca de la raz. A grandes rasgos el algoritmo es como sigue

Se Se Se Se

comienza con a y b tales que f (a) y f (b) tienen signos opuestos. usa el mtodo de la secante para calcular c. repiten los siguientes pasos hasta que |b a| < |b| o f (b) = 0. ordenan a, b, c tales que f (a) y f (b) tienen signos opuestos, |f (b)| |f (a)|, c es el anterior a b. Si c = a se da un paso con el algoritmo IQI. Si c = a se da un paso con el mtodo de la secante. Si el paso dado est en [a, b] se toma. Si el paso no est en [a, b] se usa biseccin.

La implementacin en matlab del algoritmo zeroin es el comando fzero que permite con gran ecacia aproximar races de ecuaciones no lineales. Para el ejemplo 2.1 el resultado de la instruccin fzero('x-.5*sin(x)-.7',1) es 1,1580 y f (1,1580) = 1,1102 1016 . Moler en [1] da otra versin llamada fzerotx con dos argumentos, el primero especica la funcin cuyo cero se quiere calcular y el segundo el intervalo [a, b] de bsqueda, el resulta de fzerotx('x-.5*sin(x)-.7',[1,1.2])) es otra vez 1,1580. Finalmente el chero fzerogui.m muestra grcamente el comportamiento del algoritmo zeroin, si teclea la instruccin fzerogui('x-.5*sin(x)-.7',[1,1.2]) se abrir una ventana grca donde puede optar por correr el algoritmo eligiendo el botn auto, o bien puede ir eligiendo la opcin del mtodo: biseccin est marcado en rojo, el punto secante en verde y el punto del algoritmo IQI en azul.

ECUACIONES NO LINEALES

6.

El mtodo de Newton

Si se quisiera sustituir la funcin f no lineal por una recta que pasa por el punto (xn , f (xn )) de ecuacin (6.1)

y f (xn ) = m(x xn ).

La interseccin de la recta con el eje de abscisas tiene lugar para el valor de x = 1 xn m f (xn ) y el mtodo iterativo que resulta es

1 f (xn ). m El error es en = xn que llevado a la ecuacin anterior resulta 1 (6.3) + en+1 = + en f ( + en ). m Suponiendo regularidad de f en se escribe 1 1 (6.4) en+1 = en en f () + e2 f () + , m 2 n o tambin 1 1 2 (6.5) en+1 = 1 f () en e f () . m 2m n La eleccin ptima de la pendiente ser entonces m = f (), sin embargo como no es un valor conocido elegiremos m = f (xn ) de donde obtenemos el mtodo de Newton-Raphson
(6.2)

xn+1 = xn

(6.6)

xn+1 = xn

f (xn ) , f (xn )

suponiendo siempre que la derivada f no se anula en los puntos xn . Este mtodo simplemente sustituye la funcin por la recta tangente a la curva en el punto de abscisa xn . La iteracin de Newton es una iteracin de punto jo para la funcin de iteracin (6.7)

g(x) = x

f (x) . f (x)

Notese que efectivamente si f () = 0 entonces g() = . La convergencia depende de |g ()|, calculando la derivada de g resulta que (6.8)

g (x) = 1

(f (x))2 f (x)f (x) . (f (x))2

Como f () = 0 cuando f () = 0, g () = 0 y la convergencia es cuadrtica. Ms concretamente si f es de clase C 2 en el teorema 2.2 de la pgina 54 de [4] se demuestra que (6.9)

limn

f () xn+1 = . ( xn )2 2f ()

El mtodo de Newton tiene evidentes dicultades cuando la raz es mltiple porque entonces f () = 0. Si es de multiplicidad p entonces f (x) = (x )p F (x) donde F () = 0 y la funcin de iteracin de Newton tiene una derivada que en vale 1 1/p por lo cual la convergencia del mtodo de Newton ya no es cuadrtica.

F. VADILLO

Incluso puede darse el caso perverso de que el mtodo de Newton se eternice en una oscilacin entorno a una raz. Si se supone que (6.10)

xn+1 a = (xn a)

n,

entonces f (x) debe satisfacer la ecuacin diferencial de variables separadas (6.11) cuya solucin exacta es (6.12)

f (x) a = (x a), f (x) |x a|.

f (x) = sign(x a)

Evidentemente a es una raz de f pero el mtodo de Newton nunca llegar a alcanzarla porque calculado xn

xn+1 = 2a xn

xn+2 = 2a xn+1 = 2a (2a xn ) = xn .

7.

El mtodo de Newton para sistemas no lineales

Para construir el Mtodo de Newton para sistemas de ecuaciones lineales, se considera el caso de dos ecuaciones de la forma (7.1) (7.2)

f1 (x1 , x2 ) f2 (x1 , x2 )

= 0, = 0.
(k) (k)

En la iteracin k-sima se conoce x(k) = (x1 , x2 ) y tomando el desarrollo de Taylor hasta el primer orden se tiene

f1 (x) =

f1 (k) (k) (x )(x1 x1 ) + f1 (x(k) ) + x1 f2 (k) (k) f2 (x) f2 (x(k) ) + (x )(x1 x1 ) + f2 (x(k) ) + = x1 que de forma matricial se escribe f1 (x(k) ) + f1 f2 (x) = f1 f2 (x(k) )+ f1 /x1 f2 /x1 f1 /x2 f2 /x2

f1 (k) (k) (x )(x2 x2 ) = 0, x2 f2 (k) (k) (x )(x2 x2 ) = 0, x2

(x(k) )

x1 x1 (k) x2 x2

(k)

0 0

Resolviendo ahora la ecuaciones en x1 y x2 la iteracin que resulta es

x1 (k+1) x2

(k+1)

x1 (k) x1

(k)

f1 /x1 f2 /x1

f1 /x2 f2 /x2

(x(k) )

f1 f2

(x(k) ),

que habitualmente se escribe en la forma (7.3)

x(k+1) = x(k) (J(k) )1 f (x(k) ),

con el Jacobiano J(k) (m, n) = [fm /xn ](x(k) ). En el programa newtons.m de la referencia [8] se puede observar una implementacin de este mtodo de Newton para sistema de ecuaciones no lineales.

ECUACIONES NO LINEALES

La extensin del mtodo de Newton para sistemas de n ecuaciones no lineales es trivial y se puede consultar en [4], [2], [6], [5] y [7]. Lo que resulta ms complicados son los resultados de convergencia. Los teoremas de convergencia son locales por lo cual es necesario comenzar las iteraciones sucientemente cerca de la solucin que se busca, y la convergencia, en general, es cuadrtica.

Referencias

1. 2. 3. 4. 5. 6. 7. 8.

C.B.Moler, Numerical computing with matlab, SIAM, 2004. H.Keller E.Isaacson, Analysis of numerical methods, Wiley, 1966. J.M.Sanz-Serna, Diez lecciones de clculo numrico, Universidad de Valladolid, 1998. K.E.Atkinson, An introduction to numerical analysis, Wiley, 1978. C.F.Van Loan, Introduction to scientic computing, Prentice-Hall, 2000. R.Bulirsch and J.Stoer, Introduction to numerical analysis, Springer, 1980. A.Quarteroni R.Sacco, F.Saleri, Numerical mathematics, Springer, 2000. T.S.Chung W.Y.Yang, W.Cao and J.Morris, Applied numerical methods using matlab, Wiley Interscience, 2005.
Dep. Matemtica Aplicada y Estadstica de la Universidad del Pais Vasco

E-mail address : fernando.vadillo@ehu.es

También podría gustarte