Professional Documents
Culture Documents
f (x) = 0.
f (x) = 0
> fsolve(f(x)=0,x,0..1);
0.2632647979
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 5
Motivació
√
Càlcul d’una arrel quadrada: 62.41
x2 − 62.41 = 0.
Dades: X = [X1 , X2 ]T
Incògnites: Q = [Q1 , Q2 ]T
Sistema d’equacions:
L1 cos(Q1 ) + L2 cos(Q1 + Q2 ) − X1 = 0
L1 sin(Q1 ) + L2 sin(Q1 + Q2 ) − X2 = 0
En acabar el tema
haurieu de poder
reproduir aquesta
simulació.
Existeix una distància òptima entre els tubs del col·lector que
s’obté resolent l’equació no lineal
√
sinh( 16α1 ω 3 ) 4α2 ω + 3
f (ω) = √ − =0
16α1 ω 3 4α2 ω + 1
http : //www.deepseaanchors.com/
Paràmetres de disseny:
◦ w, h i b
Aquestes tres magnituds s’especifiquen a priori per raons
pràctiques i estètiques (la resta es calculen a partir d’aquestes
tres)
mètode de la bisecció
mètode de Newton
mètode de la secant
f (x) = 0
x0 → x1 → x2 → x3 → . . .
lim xk = α.
k→+∞
... x2 x1 x0
ex − 3x = 0 ?
Teorema (Bolzano)
Si f : [a, b] → R és contı́nua a l’interval [a, b] i és tal que
f (a) · f (b) < 0, aleshores existeix almenys un punt c ∈ (a, b)
tal que f (c) = 0.
f(a)· f(b)<0
f(b)
a
c b
f(a)
El mètode de la bisecció
a c consisteix en:
x1 b 1) dividir l’interval en dos
2) avaluar f (x1 )
3) reduir l’interval a
f(a)
α ∈ (a, x1 ) o α ∈ (x1 , b)
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 31
Mètode de la bisecció: algoritme
Sigui x0 una aproximació inicial al zero de la funció i a un valor
auxiliar tal que f (x0 )f (a) < 0. Llavors α ∈ interval{x0 , a}.
Algoritme:
x0 + a
1) càlcul del punt mig x1 =
2
2) avaluació de f (x1 )
.a
3) si f (x1 )f (a) ≤ 0, α ∈ inter{x1 , a} sino α ∈ inter{x1 , x0 }
a α a α
x1 x0 x1 x0
-
a
no cal fer res actualitzem a = x0
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 32
Mètode de la bisecció: algoritme
⇒ Repetint aquest procediment ens podem acostar a la
solució α tant com volguem
x0 , x1 , x2 , . . . , xk , xk+1 , . . .
1.5
0.5
x
–0.5
–1
x0
interval inicial
x0 a
1a iteració
x1 a
2a iteració
x2 a
3a iteració
a x3
4a iteració
x4 a
x0 , x1 , x2 , . . . −→ α
E = tolx · 10−n , n ≥ 1.
1.5
0.5
x
–0.5
–1
Per tant, només hem de calcular |r̃k | and |f (xk )| per cada
iteració i mirar si es verifiquen els criteris de convergència.
iteració 0 1 2 3
xk 0.5 1.25 1.625 1.8125
|r̃k | 0.6 0.230769 0.103448 0.054545
|f (xk )| 1.346574 0.721071 0.211050 0.077907
Mètode de la bisecció
Exemple: taula de pı́cnic
Considerem el disseny de la taula de pı́cnic on es vol
determinar l’angle θ tal que
f (θ) = w sin θ − h cos θ − b = 0
amb els paràmetres w = 0.75m, h = 0.7m i b = 0.1m.
Prenent com a aproximacions inicials x0 = 0 i a = 2 s’arriba a
l’aproximació del problema
θ = 0.84855811501620
en 35 iteracions (tolx = tolf = 0.5 · 10−10 ).
L’aproximació té 10 xifres significatives correctes, ja que
|α − 0.84855811501620| 1
|rk | = = 0.4 · 10−10 ≤ · 10−10 .
|α| 2
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 55
Convergència
Mètode de la bisecció
Convergència de l’error absolut
En el mètode de la bisecció, sabem que α ∈ interval{xk , a(k) }.
Per tant, podem acotar l’error absolut en l’iteració k per
|Ek | = |α − xk | ≤ long(inter{xk , a(k) }) = |xk − a(k) |.
Addicionalment, l’error absolut aproximat és
xk + a(k) |xk − a(k) |
|Ẽk | = |xk+1 − xk | =
− xk =
2 2
long(inter{xk , a(k) })
= .
2
Per tant, l’error absolut aproximat en cada iteració es divideix
per dos.
long(inter{xk+1 , a(k+1) }) 1 long(inter{xk , a(k) }) |Ẽk |
|Ẽk+1 | = = =
2 2 2 2
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 56
Convergència
Mètode de la bisecció
Convergència de l’error relatiu
En general l’error relatiu exacte no el podem calcular perquè
no coneixem α, i hem de calcular l’error relatiu aproximat.
Tot i això, en exemples acadèmics, es pot calcular tant
|α − xk | |Ek | |Ẽk | |xk+1 − xk |
|rk | = = com |r̃k | = = .
|α| |α| |xk+1 | |xk+1 |
Mètode de la bisecció
iter xk Ek 2Ẽk Ẽk rk r̃k
0 0.00000000 0.84855812 2.00000000 1.00000000 1.00000000 1.00000000
1 1.00000000 -0.15144188 -1.00000000 -0.50000000 -0.17846967 -1.00000000
2 0.50000000 0.34855812 0.50000000 0.25000000 0.41076517 0.33333333
3 0.75000000 0.09855812 0.25000000 0.12500000 0.11614775 0.14285714
4 0.87500000 -0.02644188 -0.12500000 -0.06250000 -0.03116096 -0.07692308
5 0.81250000 0.03605812 0.06250000 0.03125000 0.04249339 0.03703704
6 0.84375000 0.00480812 0.03125000 0.01562500 0.00566622 0.01818182
7 0.85937500 -0.01081688 -0.01562500 -0.00781250 -0.01274737 -0.00917431
8 0.85156250 -0.00300438 -0.00781250 -0.00390625 -0.00354058 -0.00460829
9 0.84765625 0.00090187 0.00390625 0.00195312 0.00106282 0.00229885
10 0.84960938 -0.00105126 -0.00195312 -0.00097656 -0.00123888 -0.00115075
11 0.84863281 -0.00007470 -0.00097656 -0.00048828 -0.00008803 -0.00057571
12 0.84814453 0.00041358 0.00048828 0.00024414 0.00048740 0.00028777
13 0.84838867 0.00016944 0.00024414 0.00012207 0.00019968 0.00014386
14 0.84851074 0.00004737 0.00012207 0.00006104 0.00005583 0.00007193
15 0.84857178 -0.00001366 -0.00006104 -0.00003052 -0.00001610 -0.00003596
16 0.84854126 0.00001686 0.00003052 0.00001526 0.00001986 0.00001798
17 0.84855652 0.00000160 0.00001526 0.00000763 0.00000188 0.00000899
18 0.84856415 -0.00000603 -0.00000763 -0.00000381 -0.00000711 -0.00000450
19 0.84856033 -0.00000222 -0.00000381 -0.00000191 -0.00000261 -0.00000225
20 0.84855843 -0.00000031 -0.00000191 -0.00000095 -0.00000037 -0.00000112
Observacions importants:
1. mètode lineal perquè |Ẽk | = |Ẽk−1 |/2 i |r̃k | ≈ |r̃k−1 |/2
2. cota per l’error absolut exacte |Ek | ≤ 2|Ẽk |
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 58
Convergència
Mètode de la bisecció
Gràfiques de convergència
Les gràfiques de convergència ens mostren com disminueix
l’error a mesura que es realitzen iteracions.
Error relatiu Error relatiu − escala logaritmica
1 0
error exacte error exacte
0.8 error aproximat error aproximat
log10(|rk|)
0.6
|rk|
−5
0.4
0.2
−10
0 10 20 30 0 10 20 30
iteracions iteracions
Mètode de la bisecció
Observació 1
Sabem que l’error del mètode de la bisecció es comporta com
C
|r̃k | ≈ =⇒ log10 (|r̃k |) ≈ log10 (C2−k ) = log10 (C)−k log10 (2).
2k
Error relatiu − escala logaritmica
Si representem les iteracions k 0
versus |r̃k |, obtenim una corba error exacte
error aproximat
de la forma y = 1/2k .
log10(|rk|)
En canvi, si representem k ver- −5
Mètode de la bisecció
Observació 2
Suposem que tenim una aproximació amb q xifres significatives
correctes, és a dir, que
1
|rk | < · 10−q
2
llavors
1 Error relatiu − escala logaritmica
log10 (|rk |) < log10 · 10−q
2 0
error exacte
1
+ log10 10−q
= log10
2 error aproximat
log10(|rk|)
= 0.3 − q
−5
Per tant, si log10 (|rk |) ≈ −10,
vol dir que tenim una aproxi-
mació amb aproximadament 10 −10
xifres significatives correctes. 0 10 20 30
x.s.c. iteracions
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 61
Mètode de Newton
Mètode de la bisecció
Avantatges Inconvenients
robustesa requisit de canvi de signe
control senzill precisió lentitud (lineal)
(longitud interval) (calen moltes iteracions)
Bisecció Newton
tècnica robusta no sempre convergeix
Mètode de Newton
Interpretació gràfica
Idea: aproximar la funció per la recta tangent i imposar que la
següent aproximació sigui el punt de tall de la recta amb
l’eix d’abscisses.
Recta tangent a f (x) que passa
pel punt (xk , f (xk ))
y(xk+1 ) = 0
Mètode de Newton
El mètode de Newton aproxima la funció f (x) per la recta
tangent que passa per (xk , f (xk ))
f (x) ≈ y(x) = f (xk ) + f 0 (xk )(x − xk )
i llavors
f (xk+1 ) = 0 ≈ y(xk+1 ) = 0.
f (xk )
xk+1 = xk −
f 0 (xk )
Mètode de Newton
Deducció analı́tica
El mètode de Newton també es pot deduir utilitzant una
aproximació mitjançant el polinomi de Taylor de la funció f (x).
Suposem que tenim una aproximació xk i que volem calcular la
següent aproximació xk+1 tal que
f (xk+1 ) = 0
Mètode de Newton
En particular, el mètode de Newton utilitza una aproximació
d’ordre 1 (recta) d’on
1
f (xk+1 ) = f (xk ) + f 0 (xk )(xk+1 − xk )+ f 00 (xk )(xk+1 − xk )2 + . . .
2
0
≈ f (xk ) + f (xk )(xk+1 − xk )
Per tant, imposant que f (xk+1 ) = 0, obtenim de nou
f (xk )
xk+1 = xk −
f 0 (xk )
Si no −→ Actualització
Actualització
7. k = k + 1
8. Tornar a 3
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 67
Mètode de Newton: exemple
Exercici Proposat
Considereu la funció f (x) = x3 − 6x2 + 9x − 6 que té un zero
en el punt α ≈ 4.1958233454456471528.
a) Realitzeu cinc iteracions del mètode de Newton
considerant l’aproximació inicial x0 = 5.
b) Feu el mateix procediment agafant com a aproximacions
inicials x0 = 3, x0 = 3.01, i x0 = 2.
c) Comenteu els resultats obtinguts.
En aquest cas, el mètode de Newton també convergeix, però com que f 0 (3.01) és
petit comencem divergint. Un cop estem a prop de la solució convergim ràpidament
(doblem el nombre de x.s.c. en cada iteració)
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 70
Mètode de Newton: exemple
x0 = 2
iter xk xk+1 |r̃k | |rk |
0 2.0000000000000000 0.6666666666666667 1.9999999999999998 0.5233355088290601
1 0.6666666666666667 1.6825396825396821 0.6037735849056602 0.8411118362763533
2 1.6825396825396821 0.5409515507582181 2.1103334118949673 0.5989965391736539
3 0.5409515507582181 1.3467794340239250 0.5983369384087222 0.8710738021548515
4 1.3467794340239250 -0.0015861274429498 850.0991313530403204 0.6790190331807497
5 -0.0015861274429498 0.6652575197497853 1.0023842307615649 1.0003780253152630
6 0.6652575197497853 1.6776492732238681 0.6034585235617287 0.8414476814254135
7 1.6776492732238681 0.5369739503618236 2.1242656596161416 0.6001620814077239
8 0.5369739503618236 1.3385465630767790 0.5988380492886726 0.8720217925893660
9 1.3385465630767790 -0.0274527535639983 49.7581895913040384 0.6809811918011984
10 -0.0274527535639983 0.6424810646116289 1.0427292804039185 1.0065428764044122
11 0.6424810646116289 1.6031641779006698 0.5992418783627310 0.8468760451249671
12 1.6031641779006698 0.4668979067398606 2.4336503864299770 0.6179142814387496
13 0.4668979067398606 1.2084301632611445 0.6136326939408223 0.8887231734275337
14 1.2084301632611445 -0.6851396170725661 2.7637721322034636 0.7119921255567554
15 -0.6851396170725661 0.1363543292061907 6.0247001401511753 1.1632908634764736
Mètode de Newton
Mètode de Newton
Mètode d’ordre p
Direm que un mètode té ordre de convergència p si
Observacions:
Els mètodes amb convergència d’ordre 1 s’anomenen
mètodes amb convergència lineal
Els mètodes amb convergència d’ordre 2 s’anomenen
mètodes amb convergència quadràtica
Perquè un mètode sigui convergent, cal que a l’iterar
l’error es vagi reduı̈nt. Per tant, si p = 1, és a dir, si
tenim un mètode lineal, aquest només serà convergent si
el seu FAC verifica 0 ≤ λ < 1
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 74
Convergència
Mètode de Newton
Recordem que en el mètode de la bisecció tenim que
|Ek−1 |
|Ek | ≈
2
per tant, és un mètode lineal amb FAC λ = 1/2.
Determinació de l’ordre p
|Ek | ≈ λ|Ek−1 |p ⇐⇒ log |Ek | ≈ log(λ) + p log |Ek−1 |
log |Ek | log(λ) log |Ek | log |rk |
⇐⇒ p ≈ − ⇐⇒ p ≈ ≈
log |Ek−1 | log |Ek−1 | log |Ek−1 | log |rk−1 |
| {z }
→0
(si convergeix)
Determinació del FAC λ (per a mètodes lineals)
Un cop sabem que p = 1, calculem el FAC segons
|Ek | |rk |
λ≈ ≈ .
|Ek−1 | |rk−1 |
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 75
Convergència
Mètode de Newton
Convergència
Afegim a la taula del mètode de Newton les aproximacions de
l’ordre de convergència
Mètode de Newton
Mètode de Newton
Gràfiques de convergència
−6
(aproximadament).
−8
1
−10 |rk−1 | < · 10−q
2
−12 ↓
0 1 2 3 4 λ −2q
x.s.c. iteracions
|rk | ≈ λ|rk−1 |2 < 10
4
Mètode de la secant
Interpretació gràfica
Idea: utilitzar l’esquema del mètode de Newton aproximant la
derivada de la funció pel pendent de la recta secant que
passa per les dues aproximacions anteriors
Recta secant a f (x) que
passa pels punts
(xk−1 , f (xk−1 )) i (xk , f (xk ))
y(x) = f (xk ) + sk (x − xk )
f (xk ) − f (xk−1 )
amb sk =
xk − xk−1
Busquem xk+1 tal que
y(xk+1 ) = 0
Mètode de la secant
El mètode de la secant aproxima la funció f (x) per la recta
secant que passa pels punts (xk−1 , f (xk−1 )) i (xk , f (xk ))
f (xk ) − f (xk−1 )
f (x) ≈ y(x) = f (xk ) + sk (x − xk ) sk =
xk − xk−1
i llavors
f (xk+1 ) = 0 ≈ y(xk+1 ) = 0.
Si no −→ Actualització
Actualització
7. k = k + 1
8. Tornar a 3
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 83
Mètode de la secant: exemple
Exercici Proposat
Considereu la funció f (x) = x3 − 6x2 + 9x − 6. Realitzeu cinc
iteracions del mètode de la secant considerant les
aproximacions inicials (x0 , x1 ) = (2, 3). Feu el mateix
considerant (x0 , x1 ) = (2, 5).
Mètode de la secant
Exemple: taula de pı́cnic
Volem determinar l’angle θ tal que w sin θ − h cos θ − b = 0
on w = 0.75m, h = 0.7m i b = 0.1m.
Prenent com a aproximacions inicials x0 = 0, x1 = 2 i
tolx = tolf = 0.5 · 10−10 convergim en només 5 iteracions
iter xk |rk | |r̃k | |f (xk )| x.s.c. pk p̃k
0 0.00000000000000000 1.0000 1.0000 0.80000 -1
1 2.00000000000000000 1.3569 1.0916 0.87328 -1 ∞ ∞
2 0.95620814377226071 0.12686 0.18467 0.10912 0 -6.7642 -19.2743
3 0.80715235417194120 0.48795e-01 0.49096e-01 0.42350e-01 1 1.4628 1.7843
4 0.84882667600454031 0.31649e-03 0.31594e-03 0.27420e-03 3 2.6682 2.6742
5 0.84855858247371374 0.55085e-06 0.55086e-06 0.47726e-06 5 1.7885 1.7881
6 0.84855811504055512 0.72512e-11 0.72511e-11 0.62824e-11 10 1.7798 1.7798
7 0.84855811504670808
Mètode de la secant
Gràfiques de convergència
−6 (aproximadament).
−8
1
|rk−1 | < · 10−q
−10 2
↓
0 1 2 3 4 5 6
iteracions λ −1.6q
|rk | ≈ λ|rk−1 |1.6 < 10
4
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 89
Comparació dels mètodes
El mètode de Newton és el més ràpid, en el sentit que
calen menys iteracions per aconseguir convergència
(convergència quadràtica), seguit del de la secant
(convergència superlineal) i, finalment, del de la bisecció
(convergència lineal).
−4
log (|r |)
k
−6
10
−8
−10
−12
0 5 10 15 20 25 30 35
iteracions
Mètode de Brent
Mètode de Brent
Referències:
. R. P. Brent, An algorithm with guaranteed convergence
for finding a zero of a function, Computer Journal 14,
1971, pp. 422–425.
http://web.comlab.ox.ac.uk/oucl/work/
richard.brent/pd/rpb005.pdf
. http://en.wikipedia.org/wiki/Brent’s method
. Numerical recipies
http://www.library.cornell.edu/nr/bookcpdf.html
Newton: convergència subòptima, lineal p = 1 enlloc de p = 2 amb FAC λ = 1/2 = 1 − 1/2, (m = 2).
iter xk |Ẽk | |p̃k | λ̃k
0 1.00000000000000000 0.56160551333041031 — —
1 0.43839448666958969 0.22841667670943605 2.559268 0.406721
2 0.20997780996015364 0.10693981097741102 1.513960 0.468179
3 0.10303799898274262 0.05197376434913063 1.322760 0.486010
4 0.05106423463361198 0.02564221280646581 1.238923 0.493368
5 0.02542202182714617 0.01273811405773286 1.190975 0.496763
6 0.01268390776941331 0.00634867876680661 1.159598 0.498400
7 0.00633522900260670 — — —
Exercici 2. Considereu
f (x) = −x5 + 3x4 − x3 − 5x2 + 6x − 2. Apliqueu el mètode
de Newton triant les aproximacions inicials de forma adequada
per a trobar aproximacions a les dues solucions de l’equació
f (x) = 0 que verifiquin els criteris d’aturada amb tolf = 10−4 .
Quin és l’ordre de convergència del mètode de Newton quan
convergeix a cada una de les dues arrels?
Newton per α = 1: convergència subòptima, lineal p = 1 enlloc de p = 2 amb FAC λ = 2/3 = 1 − 1/3,
(m = 3) =⇒ arrel de multiplicitat 3.
√
Newton per α = 2: convergència òptima, p = 2 =⇒ arrel simple.
El mètode de la bisecció convergeix com esperat, de forma lineal amb FAC λ = 1/2, mentre que els mètodes de
Newton i de la secant convergeixen de forma subòptima. Convergeixen linealment amb λ ≈ 0.8. Per tant, en
aquest cas, el mètode que convergeix més ràpid és el mètode de la bisecció que divideix l’error en dos a cada
iteració, enlloc de multiplicar-lo per 0.8.
Observem que el mètode de Newton convergeix amb λ ≈ 1 − 1/m per m = 5, és a dir, λ ≈ 4/5 = 0.8, ja que
α = 2 és una arrel de multiplicitat 5.