Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
Luis Sanz
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
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
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
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
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
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
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
Luis Sanz
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
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
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
F (xk )
. . .
. . .
.. .
F1 xn (x) F2 xn (x)
. . .
Fn x1 (x)
Fn x2 (x)
Fn xn (x)
12
Luis Sanz
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
13
Luis Sanz
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
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
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
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
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
17
Luis Sanz
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