Metodes Numerics de Resolucio d'Equacions Metodes d'Encaix Metodes Iteratius Bisecci o Newton Regula-Falsi Secant Metode de la Biseccio Suposem que f es contnua a l'interval [a0; b0] i que f (a0)f (b0) Anem a construir una successio d'intervals encaixats < 0. [a0; b0] [a1; b1] [a2; b2] de manera que es compleixin les hipotesi del teorema de Bolzano i per tant tots ells contindran la solucio de f (x) = 0. Per construir la successio, a partir de l'interval Ik = [ak ; bk ] denim Ik+1 de la segunet manera: mk = si f (mk ) = 6 0 denim Ik+1 = [ak+1; bk+1] = b k + ak 2 [mk ; bk ] si f (mk )f (bk ) [ak ; mk ] si f (ak )f (mk ) < 0 < 0 f (x) a Despres de longitud m1 m2 m3 b n passos tenim l'arrel dins l'interval In = [an; bn] que te 1 1 a ) = = (b0 a0) 1 n 1 2 2n Si prenem mn com una aproximacio de la solucio tenim 1 = mn en; on en n+1 (b0 a0) 2 que es una ta de l'error absolut. bn an = (bn EXEMPLE 1: Si tenim l'equacio f (x) = x e1=x = 0, despres d'avaluar la funcio en 0, 1 i 2;ens trobem amb un canvi de signe per a f (1) < 0 i f (2) > 0. Per tant, prendrem I0 =[1, 2] i aplicant el metode de la biseccio s'obtenen els seguents resultats: Iteracio 0 1 2 3 4 5 6 7 a 1.000000 1.500000 1.750000 1.750000 1.750000 1.750000 1.750000 1.757812 b 2.000000 2.000000 2.000000 1.875000 1.812500 1.781250 1.765625 1.765625 error absolut 0.500000 0.250000 0.125000 0.062500 0.031250 0.015625 0.007812 0.003906 ES: x = 1.761718 LA SOLUCIO La ta de l'error es 1/28 0.003906. L'arrel amb 6 decimals correctes es 1.763223 ; per tant, l'error absolut es de l'ordre de 0.00150 (menor que la ta i per tant correcte ). Per obtenir la solucio amb 6 decimals correctes caldria calcular 19 iteracions. Metode de la Regula{Falsi Sigui f es contnua a l'interval [a0; b0] tal que f (a0)f (b0) < 0. Com en el metode de la biseccio anem a construir una successio d'intervals encaixats [a0; b0] [a1; b1] [a2; b2] de manera que es compleixin les hipotesi del teorema de Bolzano i per tant tots ells contindran la solucio de f (x) = 0. Per construir la successio, a partir de l'interval Ik = [ak ; bk ] denim Ik+1 de la seguent manera: mk = ak si f (mk ) = 6 0 denim f (ak ) Ik+1 = [ak+1; bk+1] = bk ak f (bk ) f (ak ) [mk ; bk ] si f (mk )f (bk ) [ak ; mk ] si f (ak )f (mk ) < 0 < 0 f (x) m2 a m1 b Per tal de saber quan ens hem d'aturar considerem una aproximacio de l'error relatiu prenent mk a = mk mk 1 que anomenem error relatiu aproximat i imposem que a sigui mes petit que error relatiu maxim permes. EXEMPLE 2: Seguint amb l'equacio de l'exemple 1: f (x) = x e1=x =0 calculem que presenta a [1; 2] pel metode de la Regula-Falsi. La taula dels resultats amb l'error relatiu aproximat corresponent es: Iteracio a b c 1 2 3 4 5 6 7 8 9 10 11 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 2.000000 1.830264 1.783184 1.769252 1.765052 1.763778 1.763392 1.763274 1.763238 1.763228 1.763224 1.830264 1.783184 1.769252 1.765052 1.763778 1.763392 1.763274 1.763238 1.763228 1.763224 ES: LA SOLUCIO Signe de f (c) error relatiu aproximat + + 0.092738 + 0.026402 + 0.007874 + 0.002379 + 0.000721 + 0.000219 + 0.000066 + 0.000020 + 0.000006 0.000001 x = 1:763224 Han calgut 11 iteracions per arribar a l'aproximacio de la solucio amb la precisio desitjada ( l'error relatiu aproximat es menor que 10 6) EXEMPLE 3: Considerem ara l'equacio f (x) = x10 0:1 = 0 Vegem la taula dels resultats: Iteracio a b error relatiu aprox. 1 0.000000000000000 1.000000000000000 2 0.100000000000000 1.000000000000000 1.000000000000000 3 0.189999999919000 1.000000000000000 0.473684210301939 10 11 12 0.610368113098634 1.000000000000000 0.068422706361679 0.646796503736165 1.000000000000000 0.056321254717836 0.677990703027616 1.000000000000000 0.046009774399783 26 27 28 29 30 0.792874927694850 0.793291700974401 0.793589226651835 0.793801489840258 0.793952856001777 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 Aturat per arribar al maxim d'iteracions permeses 0.000735677268256 0.000525372040372 0.000374911437104 0.000267400844089 0.000190648802853 Metodes Iteratius Donada una equacio de la forma f (x) = 0 un metode iteratiu consisteix en transformar l'equacio en una equacio de la forma x = g (x) i partint d'una aproximacio inicial x0 construir la successio xn = g(xn 1) Teorema (Teorema del punt x) Sigui g una funcio continua a l'interval [a; b] tal que g (x) 2 [a; b] per a tot x 2 [a; b]. A mes a mes suposem que existeix g 0 en (a; b) i una constant positiva k < 1 tal que jg0(x)j 5 k; per a tot x 2 (a; b) Llavors, per a tot x 2 [a; b], la successio denida per 0 xn = g(xn 1) convergeix a l'unica solucio Corollari s de l'equacio x = g(x) a l'interval [a; b]. Si g satisfa les hipotesi del teorema anterior, les tes de l'error que resulten de utilitzar xn com aproximacio de s venen donades per: jxn jxn sj 5 kn maxfx0 a; b x0g kn sj 5 jx1 x0j per a tota n = 1 1 k Ordre de convergencia Un metode iteratiu xn = g (xn 1 ) te ordre de convergencia successio fxng convergeix a s i n jxn >1 jxn lim on s'anomena error asimptotic. +1 sj sj = si la Metode de Newton{Raphson Considerem l'equacio f (x) = 0, sigui r una solucio de l'equacio, suposem que f te derivada segona contnua a un entorn de r. Comencant en un punt inicial x0 construim una successio x1; x2; x3; : : : , on xn+1 es calcula de la forma seguent: donada la funcio f l'aproximem per la seva tangent en el punt (xn; f (xn)) i prenem xn+1 com la interseccio d'aquesta amb l'eix d'abscisses. Aix tenim xn)f 0(xn) = 0 f (xn) + (xn+1 i allant xn+1 trobem la formula d'iteracio del metode de Newton f (xn) f 0(xn) xn+1 = xn x0 x2 x1 f (x) Si escollim x0 sucientment a prop de r la successio aix construida convergeix vers r. La iteracio podem aturar-la quan l'error relatiu aproximat sigui mes petit que l'error que desitgem, es a dir xn+1 a = x n+1 xn i prendre xn+1 com aproximacio de r. ; EXEMPLE: Seguim amb la funcio f (x) = x Iteracio 0 1 2 3 4 ES: LA SOLUCIO e1=x = 0 x error relatiu aprox. 1.500000 1.739987 0.137925 1.763078 0.013097 1.763223 0.000082 1.763223 0.000000 x = 1:763223 Amb nomes 4 iteracions hem obtingut l'arrel amb un error relatiu aproximat inferior a 10 6. EXEMPLE: Considerem l'equacio f (x) = 5x4 localitzar gracament els zeros 6x3 + 0:2 = 0. Comencem per 10 8 6 4 2 –1 –0.5 0.5 x 1 1.5 observem que hi ha dues arrels una entre 0 i 0.5 i una altra entre 1 i 1.5. Comencem per calcular emprant el metode de Newton la primera de les arrels prenent x0 = 0:2. vegem que passa gracament 6 4 2 –0.2 0.2 0.4 0.6 0.8 1 1.2 1.4 els 5 primers iterats son: x -0.200000000 0.090909090 1.555260470 1.338148544 1.219922866 1.179927088 Error 3.200000000 0.941547353 0.162248000 0.096912420 0.033896821 no anem a la solucio desitjada, cal prendre un x0 mes proper a la solucio intentem-ho amb x0 = 0:5 el resultat que obtenim es: 0 –0.05 –0.1 –0.15 –0.2 x Error 0.5000000000 0.3812500000 0.3114754098 0.3634410374 0.04900096788 0.3628751065 0.001559574878 0.3628745223 0:1609922891 10 5 0.3628745223 0 i nalment prenem x0 = 1:5 per obtenir l'altre de les arrels 5 4 3 2 1 0 1.21.22 1.24 1.26 1.281.31.32 1.34 1.36 1.381.41.42 1.44 1.46 1.481.5 x Error 1.5 1.305092593 0.1493437386 1.205954857 0.08220683836 1.177612917 0.02406728017 1.175379014 0.001900580981 1.175365656 0.00001136497390 Metode de la Secant Considerem l'equacio f (x) = 0, sigui r una solucio de l'equacio. Comencant amb dos punts inicials x0 i x1 construim una successio x2; x3; x4; : : : , on xn+1 es calcula de la forma seguent: donada la funcio f l'aproximem per la recta que passa pels punts (xn; f (xn )) i (xn 1 ; f (xn 1)) i prenem xn+1 com la interseccio d'aquesta amb l'eix d'abscisses. Aix com en el metode de la Regula-Falsi tenim xn+1 = xn f (xn) xn xn 1 amb f (xn) = 6 f (xn 1) f (xn) f (xn 1) amb la diferencia que no es tenen en compte els signes en els extrems de l'interval. x1 x2 x4 x3 x0 f (x) Igualment, si escollim x0 i x1 sucientment a prop de r la successio aix construida convergeix vers r. La iteracio podem aturar-la quan l'error relatiu aproximat sigui mes petit que l'error que desitgem, es a dir x a = n+1 x n+1 xn i prendre xn+1 com aproximacio de r. ; Sistemes d'equacions no lineals Considerem el sistema d'equacions no lineals: F1(x1; x2; : : : ; xn) = 0 F2(x1; x2; : : : ; xn) = 0 ::: Fn(x1; x2; : : : ; xn) = 0 o expressat en forma vectorial F = (F1; F2; : : : ; Fn) F (x) = 0, amb x = (x1; x2; : : : ; xn) i Metode d'iteraci o Simple Considerem el sistema expressat de la la forma seguent x1 = G1(x1; x2; : : : ; xn) x2 = G2(x1; x2; : : : ; xn) ::: xn = Gn(x1; x2; : : : ; xn) o expressat en forma vectorial i sigui x(k+1) = G(x(k)) x = G(x), amb G = (G1; G2; : : : ; Gn) Teorema Sigui G una funcio de R n en R n , Sr (x(0)) un entorn de centre x(0) i radi r (Sr (x(0)) = fx 2 R n jkx x(0)k < rg) i 0 < m < 1 una constant tal que kG(x) 2. kx 1. (1) G(y)k mkx yk per a tot x; y 2 Sr (x(0)) x(0)k (1 m)r < r. Llavors, (a) x(k) 2 Sr (x(0)), per a tot k (b) G te un unic punt x x (c) lim k!1 (d) kx k x(k) = x. ( ) mk x k 1 kx m 2 N. 2 Sr (x (1) (0) ). x(0)k. EXEMPLE: Si fem servir el metode d'iteracio simple per resoldre: x1 = sin(x1 + x2) x2 = cos(x1 x2) tenim k x xk ( +1) 1 ( +1) 2 ! = k k sin(x + x ) k cos(x xk) ( ) 1 ( ) 1 ( ) 2 ( ) 2 ! i obtenim el resultat seguent: k 0 1 2 3 4 5 6 7 8 9 x1 1. 0.9092974268 0.9932534701 0.9329240076 0.9356349198 0.9349487614 0.9351131325 0.9350750470 0.9350836075 0.9350817358 x2 1. 1. 0.9958893410 0.9986150524 0.9978431191 0.9980656939 0.9980087876 0.9980227202 0.9980194493 0.9980201935 dk = kx(k) x(k 9:1 10 3:4 10 1:0 10 3:0 10 6:9 10 1:6 10 3:8 10 8:6 10 1:9 10 1) k1 2 2 2 3 4 4 5 6 6 igual que en els cas dels sistemes lineals podem intentar accelerar la convergencia fent k x xk ( +1) 1 ( +1) 2 ! = k k sin(x + x ) k cos(x xk) ( ) 1 ( +1) 1 metode que es coneix com a metode de Seidel. ( ) 2 ( ) 2 ! Metode de Newton Considerem el sistema: F1(x1; x2; : : : ; xn) = 0 F2(x1; x2; : : : ; xn) = 0 ::: Fn(x1; x2; : : : ; xn) = 0 o expressat en forma vectorial F (x) = 0. Suposem que F es diferenciable amb continutat. Sigui DF (x) la matriu jacobiana de F en el punt x 0 1 @F1 @F1 : : : @xn B @x.. 1 ... C DF (x) = @ . A @Fn : : : @Fn @x1 @xn Donat un punt inicial x(0) el metode de Newton es pot expressar com x k ( +1) =x k ( ) DF (x k ) ( ) 1 F (x(k)) normalment es segueixen els seguents passos per a la seva aplicacio 1: Avaluem DF (x(k)) 2: Resolem el sistema lineal DF (x(k))y (k) = 3: Fem el calcul x(k+1) = x(k) + y (k) : F (x(k)) Dicultats del metode (a) S'ha de avaluar la matriu jacobiana a cada pas. (b) S'ha de resoldre un sistema lineal a cada pas. El cost es pot reduir si avaluem la matriu jacobiana cada l passos i no en cada iteracio. 1: Avaluem DF (x(0)) 2: Resolem el sistema lineal DF (x(0))y (k) = F (x(k)) i calculem x(k+1) = x(k) + y (k) per k = 0; : : : ; l 3: Avaluem DF (x(l+1)) 4: Resolem el sistema lineal DF (x(l+1))y (k) = F (x(k)) i calculem x(k+1) = x(k) + y (k) per k = l + 1; : : : ; 2l Metodes Quasi-Newton Metode de Broyden Sigui x(0) una aproximacio inicial de la solucio de F (x) = 0. Prenem A0 = DF (x(0)), x(1) = x(0) A0 1F (x(0)), yi = F (x(i)) F (x(i 1)) i si = x(i) x(i 1). Llavors el metode es pot expressar com: Ai = Ai 1 + i yi x(i+1) = x(i) Ai 1si t ksik22 si Ai 1F (x(i)) Aixo ens evita calcular a cada pas la matriu jacobiana pero encara hem de resoldre un sistema lineal a cada iteracio. Cosa que tambe podem evitar fent servir la formula de inversio matricial de Sherman i Morrison Teorema Sigui A una matriu no singular i x i y dos vectors. Llavors si ytA 1x 6= 1, A + xyt sera no singular i A 1xytA 1 =A 1 + ytA 1x Prenent A = Ai 1 , x = (yi Ai 1 si )=ksik22 i y = si i aplicant la A + xyt 1 1 formula anterior el metode es pot escriure com: Ai = Ai 1 i 1 1 (si x(i+1) = x(i) Ai 11yi)stiAi 11 stiAi 11yi Ai 1F (x(i)) Metodes de Continuacio Donat el problema F (x) = 0 el considerem integrat en una famlia de problemes depenent d'un parametre que pren valors a l'interval [0; 1]. Per exemple G(x; ) = F (x) + (1 )F (x(0)) = 0; 01 per a un x(0) x. Quan = 0 la solucio es x( = 0) = x(0). Mentre que la solucio del problema original correspon al cas = 1. Amb un metode de continuacio d'intenta determinar x( = 1) resolguen una serie de problemes corresponents a 0 = 0 < 1 < 2 < < m = 1: L'aproximacio inicial de la solucio de iF (x) + (1 i)F (x(0)) = 0 seria la solucio x( = i 1) del problema i 1F (x) + (1 i 1)F (x(0)) = 0