Está en la página 1de 18

Mtodos Matemticos de Especialidad. e a Especialidad de Construccin. o Curso 2012-2013 Tema 7.

Resolucin Numrica de Ecuaciones y o e Sistemas de Ecuaciones no lineales


Luis Sanz Lorenzo Dpto. Matemticas E.T.S.I. Industriales, UPM a 10 de diciembre de 2012

Indice
1. Introduccin o 2. Mtodos de resolucin de una ecuacin no lineal e o o 2.1. Mtodo de la biseccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e o 2.2. Mtodo de Newton para una ecuacin . . . . . . . . . . . . . . . . . . . e o 2.3. Mtodos que no utilizan derivada . . . . . . . . . . . . . . . . . . . . . . e 2.3.1. Mtodo de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . e 2.3.2. El mtodo de la posicin falsa . . . . . . . . . . . . . . . . . . . . e o 3. Mtodos de resolucin de un sistema de ecuaciones no lineales e o 3.1. Consideraciones generales . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Mtodo de Newton para sistemas de ecuaciones . . . . . . . . . . . . . e 3.3. Mtodos que no utilizan derivada . . . . . . . . . . . . . . . . . . . . . . e 3.3.1. Mtodo de Newton utilizando diferencias nitas para evaluar e la matriz jacobiana . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2. Mtodo de Broyden . . . . . . . . . . . . . . . . . . . . . . . . . . . e 4. Resolucin de ecuaciones no lineales mediante Matlab o 2 7 7 8 10 10 11 12 12 12 13 14 14 17

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

1. Introduccin o
Planteamiento del problema: Consideramos ecuaciones de la forma F (x) = 0 (1)

donde F es una funcin no lineal. Distinguiremos dos casos que, como veremos, son cualitao tivmente muy distintos: 1. F : R R (caso escalar), es decir, x R y slo hay una incgnita. El resolver la o o ecuacin es equivalente a hallar los puntos de corte de la grca de la funcin f con el o a o eje x.
f

Por ejemplo, la funcin de la gura anterior tiene dos soluciones en el intervalo [a, b]. o Un ejemplo de ecuacin de este tipo es o sen x = 1 + x2 2

2. F : Rn Rn con n > 1 (caso vectorial) con lo que x = (x1 , .., xn ). Se tiene as un sistema de ecuaciones. Ejemplo: x2 y + x = 1 x y2 = 0 Comentario: Para que el problema de resolver (1) tenga sentido, la funcin F debe estar o denida de forma continua. En caso de que la funcin F corresponda a una variable que se o muestrea, habr que ajustar por algn mtodo (por ejemplo interpolando o por m a u e nimos cuadrados) una cierta funcin suave a la mustra de la que se dispone. o Existencia e unicidad de solucin o Las ecuaciones de la forma (1), incluso en el caso escalar, pueden no tener solucin, tener o solucin unica o tener varias soluciones. En el caso no lineal no existen resultados anlogos o a a los correspondientes a los sistemas lineales de ecuaciones para saber si existe solucin y si o esta es unica. Veamos algunos ejemplos: 1. La ecuacin escalar x4 + x2 = 0 tiene una unica solucin. En efecto, si factorizamos o o tenemos x2 x2 + 1 = 0 y como x2 + 1 no se anula nunca, la unica solucin es x = 0. o 2

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

2. La ecuacin escalar sen x 2 = 0 no tiene ninguna solucin, pues el seno nunca puede o o valer 2. 3. La ecuacin escalar sen x 1/2 = 0 tiene innitas soluciones. o Hablando de forma laxa, podemos decir que en muchas ocasiones (pero de ninguna manera en todas) los sistemas de ecuaciones F (x) = 0 con F : Rn Rm no tendrn solucin a o si m > n (ms restricciones que parmetros libres) y tendrn innitas soluciones si n > m a a a (ms parmetros libres que restricciones). En el caso m = n es frecuente (pero, como decirmos, a a no hay regla ja) que haya solucin unica. o En este tema nosotros slo estudiaremos el caso m = n y, puesto que nuestro objetivo o es calcular soluciones, supondremos que los sistemas con los que trabajamos tienen al menos una solucin. o Estructura general y propiedades generales de los algoritmos para ecuaciones no lineales. Salvo para ecuaciones lineales, los procedimientos para encontrar ra ces operan siempre de forma iterativa. Se empieza en un valor inicial x0 y se genera una sucesin xk hasta que o se satisface un determinado criterio de parada. Convergencia global y convergencia local. Convergencia global. Se dice que un mtodo iterativo para resolver la ecuacin o el sistema e o de ecuaciones F (x) = 0, que se supone tiene alguna solucin, es globalmente convergente o si para cualquier iteracin inicial x0 el mtodo converge a una solucin del mismo. o e o Convergencia local. Se dice que un mtodo iterativo para resolver la ecuacin o el sistema e o de ecuaciones F (x) = 0 es localmente convergente a una ra s si existe un entorno U de z s tal que para cualquier iteracin inicial x0 U el mtodo converge a s. o e Obviamente, la convergencia global implica convergencia local, no siendo cierto el rec proco. Para funciones F suaves, los algoritmos buenos siempre son localmente convergentes, es decir, convergen bajo la hiptesis de que la estimacin inicial est sucientemente cerca o o e de la ra Como veremos, la convergencia global slo se puede garantizar en determinadas z. o circunstancias. Denicin 1 Orden de convergencia local de un algoritmo iterativo. Una sucesin o o xk que converge a x se dice que tiene orden de convergencia q si q es el supremo de los nmeros reales tales que u
x(k+1 x x(k x
q

a con a > 0. De esta denicin se sigue que q puede o

no existir y de hacerlo puede ser no entero. Comentarios: 3

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

En el caso p = 1 se habla de convergencia lineal y en el caso p = 2 de convergencia cuadrtica. a Si


x(k+1 x x(k x

0 se dice que hay convergencia superlineal.

Problemas unidimensionales (una ecuacin) frente a multidimensionales (siso tema de ecuaciones) Sea f una funcin real de variable real. Consideremos la ecuacin escalar f (x) = 0. o o Intentaremos encontrar algn criterio para garantizar la existencia de solucin a esta ecuacin. u o o Diremos que el intervalo [a, b] es un corchete (en ingls, bracket) para f , si f toma e signos distintos en los extremos del intervalo [a, b], es decir, si f (a)f (b) < 0. Teorema 1 Teorema de Bolzano. Si f es continua y toma signos distintos en los extremos del intervalo [a, b] (es decir, si f (a)f (b) < 0, entonces existe al menos un cero de f en el intervalo [a, b], es decir, existe al menos un punto c [a, b] tal que f (c) = 0. Como consecuencia de este resultado tenemos: siempre que se dispone de un bracket para f sabemos que en dicho intervalo existe al menos una ra con lo que podemos buscarla en z dicho intervalo. Por ejemplo, la gura
f

(2) mustra que [a, b] es un bracket para f , con lo que f tiene al menos una solucin en dicho o intervalo. En este caso hay una sola solucin, pero por ejemplo en el caso de la gura o
f

en [a, b] hay 3 soluciones. Pues bien, en el caso multidimensional no se dispone de ningn procedimiento anlogo u a al anterior, con lo que no es fcil encontrar condiciones que garanticen que en un cierto a conjunto exista una ra z.

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

Por ello, la resolucin de sistemas de sistemas de varias ecuaciones no lineales es mucho o ms complicada que la resolucin de una sola ecuacin no lineal. a o o En particular, en el caso unimensional siempre que se tenga un bracket de partida podemos garantizar que el algoritmo de solucin sea globalmente convergente. En efecto, basta con o dividr el bracket en dos subintervalos y estudiar los signos de f en los extremos de dichos subintervalos (esto quedar claro cuando vemos el mtodo de la biseccin ms adelante). As a e o a , tenemos garantizada convergencia a una solucin independientemente del punto de partida. o Por el contrario, no existen algoritmos que garanticen convergencia global para sistemas de ecuaciones no lineales. Por lo dicho anteriormente, y sobre todo en el caso multidimensional, el empezar la iteracin con una estimacin inicial adecuada es crucial para que el mtodo converja a la ra o o e z deseada. Relacin entre la resolucin de un sistema y la minimizacin o o o M nimos cuadrados no lineales. Considrese el problema de resolver F (x) = 0 donde e n Rn . Denimos la funcin residuo o error (en la norma dos) mediante F :R o r(x) := F (x)
2 2

= F (x)T F (x) = F1 (x)2 + + Fn (x)2

Ahora nos planteamos el problema de minimizar localmente r(x), es decir, de encontrar x0 tal que existe un entorno U de x0 tal que para todo x U , r(x) r(x0 ). Anlogamente se a puede plantear el problema de minimizacin global de r. A estos problemas se les denomina o problemas de m nimos cuadrados no lineales, puesto que se est intentando minimizar la a norma dos de una cierta funcin no lineal. o Claramente tenemos: Proposicin 1 x es solucin de F (x) = 0 si y slo si x es un m o o o nimo local de r(x) := F (x) tal que r(x) = 0 Comentarios: 1. Como r es una funcin no negativa, un m o nimo local con valor del objetivo igual a cero tambin es un m e nimo global). 2. Si F (x) = 0 no es compatible, y x0 es un punto en el que se alcanza el m nimo global de r, entonces x0 es la pseudosolucin por m o nimos cuadrados del sistema. Pues bien, los mtodos de minimizacin de funciones son ms efectivos que los mtodos e o a e para resolver sistemas en el sentido de que existen varios mtodos de minimizacin de fune o ciones que, en circunstancias muy generales, son globalmente convergentes hacia un m nimo local, lo que no sucede en el caso de los mtodos de resolucin de sistemas. e o
2 2

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

Por ello, una estrategia muy utilizada para resolver un sistema F (x) = 0 es la de minimizar el residuo o error r(x) := F (x) 2 = F (x)T F (x). Por ejemplo, en el caso del sistema 2 x2 y + x = 1 x y2 = 0 podemos denir r(x, y) = x2 y + x 1 y proceder a su minimizacin. o
2

+ x y2

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

2. Mtodos de resolucin de una ecuacin no lineal e o o


2.1. Mtodo de la biseccin e o
Exposicin del mtodo o e Sea la ecuacin escalar f (x) = 0 donde suponemos que f es continua. Ya hemos visto o que si se dispone de un intervalo [a, b] tal que f (a)f (b) < 0 se tiene garantizado que existe al menos una ra s en dicho intervalo. La estimacin ms razonable de s es el punto medio del z o a 1 intervalo, es decir, c = 2 (a + b) Para anar la estimacin se evala f (c) y se toma como nuevo bracket aquel de entre o u [a, c] y [c, b] en el que est garantizado que exista una ra es decir: a z, el intervalo [a, c] si f (a)f (c) < 0 el intervalo [c, b] si f (c)f (b) < 0. Por ejemplo, en el caso de la gura (2) tenemos
f

y el bracket est formado por el intervalo [c, b]. a Ahora se puede repetir el proceso, con lo que obtenemos una sucesin de intervalos encao jados que converge al valor de la ra Se procede de esta forma: z. [a0 , b0 ] = [a, b] xk = 1 (ak + bk ) 2 [ak+1 , bk+1 ] se dene con xk y aquel de los valores ak y bk que constituya un bracket junto con xk .

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

Estimacin del error y criterio de parada. o Es fcil deducir que se verica la siguiente acotacin para el error. a o 1 |s xk | (bk ak ) 2 y como bk ak =
b0 a0 2k

se tiene |s xk | b0 a0 2k+1 (3)

Velocidad de convergencia. De (3) tenemos que el mtodo converge linealmente. e Coste computacional. En cada iteracin hay que llevar a cabo una nueva evaluacin de la o o funcin. o Recapitulacin: si se parte de un bracket inicial, el mtodo de la biseccin converge siempre o e o a una ra aunque la convergencia es lenta, pues slo es lineal. z o

2.2. Mtodo de Newton para una ecuacin e o


Exposicin del mtodo. o e Sea la ecuacin escalar f (x) = 0 donde f es una funcin de clase 1. En lo sucesivo o o suponemos que f tiene un cero en s. Supongamos que se parte de x0 y que en la etapa k se tiene xk . Para obtener xk+1 se hace lo siguiente. Se aproxima f por la funcin f correspondiente a la recta tangente a f en o el punto xk (es decir, f es el polinomio de Taylor de orden 1 de la funcin en el entorno de o xk ) y se toma como xk+1 el cero (fcilmente calculable) de esta funcin f . Es decir a o f (x) = f (xk ) + f (xk )(x xk ) y entonces f (xk ) f (x) = 0 x = xk f (xk ) siempre que sea f (xk ) = 0. Entonces se toma xk+1 = xk Comentarios: Obviamente, por la propia construccin del mtodo, si f es una funcin lineal el mtodo o e o e converge en una sola iteracin. o Ntese que para que se pueda aplicar el mtodo se debe cumplir f (xk ) = 0 para todo k. o e f (xk ) f (xk )

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

Ejemplo: la siguiente gura ilustra la aplicacin del mtodo o e


f

x0 x2 x1

Obsrvese que si se empieza con otra estimacin inicial se puede converger a otra ra e o z
f

a x0

x2

x1

Coste computacional. En cada iteracin hay que llevar a cabo una nueva evaluacin de la o o funcin y de su derivada. o Convergencia. El mtodo de Newton no es globalmente convergente, como es fcil ver con ejemplos. e a Sin embargo el siguiente resultado garantiza que bajo ciertas condiciones hay convergencia cuadrtica: a Proposicin 2 Sea s un cero de una funcin f de clase C 1 . Entonces si f (s) = 0 el mtodo o o e est bien denido en un entorno de s y adems converge localmente de forma al menos a a cuadrtica. Si f (s) = 0 y el mtodo est bien denido entonces tambin converge, pero slo a e a e o se puede asegurar que la convergencia sea lineal. El mtodo de Newton se puede modicar para garantizar que si se tiene un bracket para e la ra el mtodo siempre converja. La idea es trabajar siempre con un bracket de forma que z e en todo momento se tenga localizada la ra Una posibilidad es la siguiente: Se parte del z. bracket inicial [a, b] y entonces la primera estimacin es x0 = (a + b)/2. Entonces se da un o f paso del mtodo de Newton, es decir, x = x0 f (x0 )) . Ahora, (a) si x pertenece al bracket e (x0 [a, b] se hace x1 = x y se determina un nuevo bracket, que ser [a, x ] o [x , b]. (b) si por el a se sale de [a, b] entonces se descarta y se da un paso de la biseccin para obtener contrario x o x1 , es decir, x1 = (a + b)/2, determinndose el nuevo bracket. El proceso contina de forma a u anloga. a Recapitulacin: El mtodo de Newton puro es computacionalmente costoso y no es gloo e balmente convergente pero en caso de converger a una ra lo hace de forma muy rpida z a (convergencia cuadrtica). Combinndolo con un procedimiento de biseccin se puede hacer a a o globalmente convergente. 9

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

2.3. Mtodos que no utilizan derivada e


En muchas ocasiones no se dispone de las derivadas de f o bien estas son muy costosas de evaluar. Entonces se recurre a mtodos que imitan de alguna forma al mtodo de Newton e e pero que no utilizan derivadas. 2.3.1. Mtodo de la secante e Exposicin del mtodo. o e En el mtodo de la secante la derivada que aparece en el mtodo de Newton se sustituye e e por la diferencia nita [f (xk ) f (xk1 )]/[xk xk1 ]. As se obtiene: xk+1 = xk f (xk )(xk xk1 ) xk1 f (xk ) xk f (xk1 ) = f (xk ) f (xk1 ) f (xk ) f (xk1 ) (4)

Obsrvese que para arrancar se precisa de dos valores iniciales x0 y x1 . e Ejemplo. La siguiente gura ilustra la aplicacin del mtodo o e
f

x0

x3

x1

x2

Interpretacin. Geomtricamente, el mtodo no es ms que obtener xk+1 como el punto de o e e a corte con el eje de las x de la secante a la curva por los puntos xk1 y xk . Coste computacional. Slo es necesaria una nueva evaluacin de la funcin en cada iterao o o cin . o Convergencia. El mtodo es localmente convergente y la velocidad de convergencia es entre e lineal y cuadrtica (concretamente, el orden de convergencia es de al menos 1,618). a Por supuesto, si se le combina con el mtodo de la biseccin y se parte de un bracket se e o puede conseguir convergencia global.

10

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

2.3.2. El mtodo de la posicin falsa e o Exposicin del mtodo. o e Parte de un bracket inicial [a, b] y en cada paso se tiene un bracket formado por el ultimo punto xk y aquel de entre xk1 y xk2 que forme un bracket con xk . Como xk+1 se toma la interseccin con el eje x de la recta secante a f en los extremos del bracket. Ntese que como o o f tiene signo distinto en los extremos del bracket, xk+1 estar incluido siempre dentro del a bracket anterior. As se genera una sucesin de brackets encajados que convergen a una ra , o z s de la ecuacin f (x) = 0. Por ello, el mtodo es globalmente convergente. o e Interpretacin. Ntese que se tiene la misma idea que el mtodo de la secante que es aproo o e ximar la funcin f por una secante y tomar como nueva aproximacin a la ra la interseccin o o z o de dicha recta con el eje horizontal. La diferencia es que en el mtodo de la secante la secante e se calcula para los puntos xk y xk+1 , formen estos un bracket o no, mientras que en el mtodo e de la regla falsa se considera la secante correspondiente a los puntos xk y aquel de entre xk1 y xk2 que forme un bracket con el punto xk . Convergencia. El mtodo es globalmente convergente. Puesto que no siempre se aprovechan e los puntos calculados ms recientemente, la velocidad de convergencia es inferior al de la a secante. Sin embargo, es ms rpido que el mtodo de la biseccin. Se verica que el orden a a e o de convergencia est entre q = 1 y q = 1,618 aunque es dif de calcular anal a cil ticamente.

11

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

3. Mtodos de resolucin de un sistema de ecuaciones no e o lineales


3.1. Consideraciones generales
Como ya se ha dicho, la resolucin de sistemas de sistemas de varias ecuaciones no lineales o es mucho ms complicada que la resolucin de una sola ecuacin no lineal. En particular, no a o o existen algoritmos que garanticen convergencia global para sistemas de ecuaciones. Por ello, el empezar la iteracin con una estimacin inicial adecuada es crucial para que los mtodos o o e converjan a la ra deseada. z

3.2. Mtodo de Newton para sistemas de ecuaciones e


Exposicin del mtodo. o e Sea el sistema de ecuaciones F (x1 , .., xn ) = 0 donde F : Rn Rn es una funcin de clase o 1 de la que se sabe que tiene un cero en s = (s1 , ..., sn ). La idea del mtodo es una generalizacin de la idea correspondiente al mtodo de Newton e o e para una ecuacin. o Supongamos que se parte de x0 y que en la etapa k se tiene xk . Para obtener xk+1 se hace lo siguiente. Se aproxima F por F donde F es el polinomio de Taylor de orden 1 de la funcin en el entorno de xk . Entonces se toma como xk+1 la solucin del sistema F (x) = 0. o o Es decir se toma F (x) = F (xk ) + F (xk )(x xk ), donde F (xk ) denota a la matriz jacobiana (con dimensiones Rnn ) de F en el punto xk y ahora se resuelve el sistema F (x) = 0, es decir, F (xk )(x xk ) = F (xk ) Si F (xk ) es regular, entonces el sistema tiene solucin unica que est dada por o a x = xk F (xk ) Comentarios: Recurdese que dada F (x) = (F1 (x), ..., F1 (x)) se dene e F (x) :=
F1 x1 (x) F2 x1 (x) F1 x2 (x) F2 x2 (x) 1

F (xk )

. . .

. . .

.. .

F1 xn (x) F2 xn (x)

. . .

Fn x1 (x)

Fn x2 (x)

Fn xn (x)

12

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

En la prctica no se calcula la inversa de F (x) sino que se resuelve un sistema. En efecto, a se parte de x0 y en cada iteracin se hace xk+1 = xk + k donde k es la solucin del o o sistema F (xk )k = F (xk ) Ntese que por su propia construccin, el mtodo de Newton aplicado a un sistema lineal o o e Ax = b converge en una sola iteracin. o Ntese que para que se pueda aplicar el mtodo se debe cumplir que F (xk ) sea una o e matriz regular para todo k. Coste computacional. En cada iteracin hay que: o Llevar a cabo una nueva evaluacin de la funcin F y de la matriz jacobiana, es decir, n o o evaluaciones de las Fi y n2 evaluaciones de las derivadas parciales. Resolver un sistema lineal de dimensiones n n En denitiva, el mtodo es muy costoso. e Convergencia El mtodo de Newton, como sucede con todos los mtodos para sistemas de ecuaciones, e e no es globalmente convergente. Sin embargo se verica lo siguiente: Proposicin 3 Sea s un cero de una funcin F de clase C 1 . Entonces si la matriz jacobiana o o F (s) es regular, el mtodo de Newton est bien denido en un entorno de s (es decir, la matriz e a jacobiana en un entorno de s es regular) y adems converge localmente (es decir, existe un a entorno U de s tal que si x0 U se tiene que xk s) de forma al menos cuadrtica. a

3.3. Mtodos que no utilizan derivada e


En muchas ocasiones no se dispone de la matriz jacobiana de F o bien sta son muy e costosa de evaluar. Entonces se recurre a mtodos que imitan de alguna forma al mtodo de e e Newton pero no utilizan derivadas.

13

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

3.3.1. Mtodo de Newton utilizando diferencias nitas para evaluar la matriz e jacobiana En este mtodo las derivadas parciales se aproximan mediante diferencias nitas, es decir e Fi Fi (x + hej ) Fi (x) (x) xj h donde ej es el j-simo vector de la base cannica de Rn . e o Requiere n2 + n nuevas evaluaciones de F por paso, es decir n2 evaluaciones para calcular la matriz jacobiana, pues para cada i, j = 1, ..., n, Fi (xk + hej ) requiere una evaluacin y o luego n evaluaciones extra para calcular Fi (xk ). Esto es costoso computacionalmente y adems luego hay que consumir O(n3 ) ops. en a resolver el sistema. 3.3.2. Mtodo de Broyden e El mtodo de Broyden se puede considerar como una generalizacin del mtodo de la e o e secante para trabajar con sistemas de ecuaciones. La sucesin de matrices jacobianas se o sustituye por una sucesin Ak de matrices cada una de las cuales se obtiene de la anterior o sumndole una matriz de rango 1 y cuyo comportamiento imita en un cierto sentido el de las a matrices jacobianas. La especial relacin entre las Ak hace que se puede calcular fcilmente o a e o e A1 en trminos de A1 con lo que el mtodo resulta ser muy econmico desde el punto de k1 k vista computacional. Descripcin del mtodo. o e Buscamos imitar el mtodo de Newton para resolver sistemas de ecuaciones pero sin e utilizar informacin de las derivadas. o Sea el sistema no lineal de ecuaciones F (x) = 0 Para cada k, el algoritmo de Newton requiere calcular las matrices F (xk ). Nosotros buscamos una matriz Ak tal que Ak F (xk ). Para ello utilizaremos la informacin del o cambio en F al pasar de xk1 a xk . Si F fuese af es decir F (x) = Bx + c, se tendr F (x) = B y entonces n, a k, B(xk xk1 ) = F (xk ) F (xk1 ) Imitando este comportamiento nosotros forzaremos a que la matriz Ak que aproxima a F (xk ) cumpla la condicin anterior, es decir, forzamos a que se cumpla o Ak (xk xk1 ) = F (xk ) F (xk1 ) 14 (5)

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

es decir, si denimos pk := xk xk1 qk := F (xk ) F (xk1 ) la condicin es o Ak p k = qk a la que denominamos condicin cuasi-Newton. o Sin embargo (5) no determina la matriz Ak de forma un voca. Lo que haremos en el mtodo de Broyden es imponer que se cumpla la siguiente condicin adicional e o z L {pk } , Ak z = Ak1 z es decir, Ak se debe comportar en L {pk } como Ak1 . Con las condiciones (5) y (6) se tiene que Ak est denida de forma unica mediante a Ak = Ak1 + [qk Ak1 pk ] pT k pk
2

(6)

(7)

La condicin (6) no es arbitraria. De hecho, es muy razonable. En efecto, se demuestra o que si F fuese una funcin af la matriz Ak anterior cumplir o n, a Ak B
2

Ak1 B

es decir, Ak aproximar mejor (en norma dos) la matriz jacobiana de F que Ak1 . a De esta forma, en cada paso se actualizar A de acuerdo con (7) y habr que resolver el a a sistema Ak k = F (xk ) para luego hacer xk+1 = xk + k . Veamos una forma de economizar las n3 /3 ops. necesarias para resolver el sistema anterior. Nos basaremos en que Ak se calcula a partir de Ak1 sumndole una matriz a [qk Ak1 pk ] pT k pk
2 pT k pk

que se puede escribir en la forma xy T donde x := qk Ak1 pk y y := Haremos uso del siguiente resultado:

Proposicin 4 Frmula de modicacin de Sherman-Morrison-Woodbury. Sea A o o o nn regular y sean x, y Rn tales que y T A1 x = 1. Entonces: R 1. La matriz A + xy T es regular. 2. Se cumple que A + xy T
1

= A1 +

A1 xy T A1 1 + y T A1 x

15

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e


pT k pk

Aplicando lo anterior a la matriz Ak1 se tiene, tomando x = qk Ak1 pk y y = operando, que la matriz A1 k se puede calcular a partir de A1 k1 mediante

1 A1 = Ak1 + k

pk A1 qk pT A1 k k1 k1 pT A1 qk k k1

(8)

que, puesto que A1 es conocida de la iteracin anterior, slo requiere que en cada paso se o o k1 lleven acabo las multiplicaciones del segundo sumando, lo cual consume O(n2 ) ops. Es decir, como en este caso Ak se construye sumndole a Ak1 una matriz xy T (ntese a o que es una matriz de rango 1), somos capaces de calcular la inversa A1 consumiendo slo o k 2 ) ops. (en vez de las O(n3 ) ops. que requiere el clculo general de una inversa). Por ello, O(n a en vez de calcular k resolviendo el sistema Ak k = F (xk ) lo calculamos haciendo k = A1 F (xk ) k Para arrancar el algoritmo necesito x0 y A0 . El algoritmo queda entonces: Algoritmo de Broyden Paso 0. Denir x0 Rn y A0 Rnn . Hacer k = 1 y xk x0 . Paso 1. Evaluar pk = A1 F (xk ) k Paso 2. Si F (xk )
2

T ol parar, el problema est resuelto. a

Si no se cumple la condicin anterior, hacer o xk+1 = xk + pk qk = F (xk+1 ) F (xk ) A1 k+1 = A1 k + pk A1 qk pT A1 k k k pT A1 qk k k

k =k+1 y volver al paso 1. Comentarios: La unica matriz que hay que invertir es A0 . El resto se calcula mediante la frmula o anterior sin necesidad de invertirla expl citamente. As se ahorran operaciones. Para que cada paso est denido, la matriz Ak debe ser regular e 16

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

Convergencia del mtodo de Broyden e A este respecto tenemos el siguiente resultado: Proposicin 5 Sea F : Rn Rn de clase 1 que tiene un cero s, es decir, F (s) = 0. o a) Sea una norma vectorial y su norma matricial asociada. Existe un entorno U de s y una constante L tal que JF (x) JF (s) L x s , x U b) JF (s) es regular. Entonces si x0 y A0 estn sucientemente cerca de s y JF (s) respectivamente: a a) La iteracin denida por el mtodo de Broyden est bien denida es decir, las matrices o e a Ak son regulares para todo k. b) xk converge a s al menos de forma superlineal, es decir, l m
k xk+1 s xk s

=0

4. Resolucin de ecuaciones no lineales mediante Matlab o


fzero. z = fzero(fun,x0) calcula el cero de una funcin de una variable fun. o Si x0 es un escalar comienza la iteracin en el valor x0. o Si x0 es un vector con dos componentes, fzero supone que x0 es un intervalo en el que la funcin cambia de signo (si esto no es verdad Matlab da un mensaje de error). o Comentarios: A efectos de este comando, los ceros son puntos donde la funcin cruza, no simplemente o toca, el eje x. Adems, si fun no es continua fzero puede proporcionar como salida un valor que es un a punto de discontinuidad en vez de un cero. Ejemplo: Para buscar un cero de la funcin f (x) = 1 + sen(x) x2 en el entorno de x = 0 o se dene el function le: function z=ejemplo(x) z=1+sin(x)-x.2; y despus se ejecuta e z = fzero(@ejemplo,0) obtenindose e z = -0.6367 Sustituyendo en f (x) se comprueba inmediatamente que este valor verdaderamente es un cero.

17

Luis Sanz

Resolucin numrica de ecuaciones no lineales o e

fsolve. [z,fval] = fsolve(fun,x0) calcula z que es la solucin por m o nimos cuadrados a un sistema de ecuaciones F(x)=0 donde x es un vector, F(x) es una funcin vectorial denida o por la funcin fun y x0 es el vector correspondiente a la primera iteracin. fval es el valor o o de F en z, con lo que z es solucin del sistema si y slo si fval es cero. Ntese que aunque o o o el sistema no tenga solucin, el algoritmo proporciona una salida que minimizar (al menos o a localmente) el residuo r(x) = F (x) 2 2 Ejemplo: Para buscar posibles soluciones al sistema de dos ecuaciones y dos incgnitas o x2 y + x = 1 x y2 = 0 hay que construir el function le: function z=sistema(x) z=[x(1).2.*x(2)+x(1)-1;x(1)-x(2).2]; y luego ejecutar (en el caso en que se quiera comenzar a iterar en el entorno de (0, 0)) : [z,fval]=fsolve(@sistema,[0 0]) lo que proporciona z= [0.6540 0.8087] fval = 1.0e-009 *[0.9204; -0.6469] que indica que x = 0,6540, y = 0,8087 verdaderamente es solucin del sistema anterior. o Ejemplo: Por el contrario, en el caso del sistema x2 + 2y 2 = 0 x + y2 = 1 que evidentemente no tiene solucin, si se construye el function le: o function z=sistema2(x) z=[x(1).2+2*x(2).2;x(1)+x(2).2-1]; se ejecuta (en el caso en que se quiera comenzar a iterar en el entorno de (0, 0)) [z,fval]=fsolve(@sistema2,[0 0]) lo que proporciona: z =[ 0.5898 -0.0000] fval =[0.3478 -0.4102] que indica que x = 0,5898, y = 0 no es solucin del sistema anterior sino slo un m o o nimo local de la funcin residuo o error o r(x, y) = x2 + 2y 2
2

+ x + y2 1

18

También podría gustarte