Métodos numéricos de resolución de ecuaciones

Anuncio
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
Descargar